public ParametricStructure(GenericType base) { if (base == null) throw new NullPointerException(); fBase= base; fParameters= new ParametricStructure[base.getTypeParameters().length]; }
public ParametricStructure(GenericType base) { if (base == null) throw new NullPointerException(); fBase= base; fParameters= new ParametricStructure[base.getTypeParameters().length]; }
public ParametricStructure(GenericType base) { if (base == null) throw new NullPointerException(); fBase= base; fParameters= new ParametricStructure[base.getTypeParameters().length]; }
public void makeElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; makeElementVariable(expressionCv, typeVariable, i); if (typeVariable.getBounds().length != 0) { //TODO: create subtype constraints for bounds } } } makeElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
public void makeElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; makeElementVariable(expressionCv, typeVariable, i); if (typeVariable.getBounds().length != 0) { //TODO: create subtype constraints for bounds } } } makeElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
public void makeElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; makeElementVariable(expressionCv, typeVariable, i); if (typeVariable.getBounds().length != 0) { //TODO: create subtype constraints for bounds } } } makeElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
public void makeFixedElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); TType[] typeArguments= null; if (type.isParameterizedType()) typeArguments= ((ParameterizedType) type).getTypeArguments(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeVariable, i); TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); // if (typeVariable.getBounds().length != 0) { // //TODO: create subtype constraints for bounds // } } } makeFixedElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
public void makeFixedElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); TType[] typeArguments= null; if (type.isParameterizedType()) typeArguments= ((ParameterizedType) type).getTypeArguments(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeVariable, i); TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); // if (typeVariable.getBounds().length != 0) { // //TODO: create subtype constraints for bounds // } } } makeFixedElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
public void makeFixedElementVariables(ConstraintVariable2 expressionCv, TType type) { if (isAGenericType(type)) { GenericType genericType= (GenericType) type.getTypeDeclaration(); TType[] typeParameters= genericType.getTypeParameters(); TType[] typeArguments= null; if (type.isParameterizedType()) typeArguments= ((ParameterizedType) type).getTypeArguments(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeVariable= (TypeVariable) typeParameters[i]; CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeVariable, i); TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); // if (typeVariable.getBounds().length != 0) { // //TODO: create subtype constraints for bounds // } } } makeFixedElementVariablesFromSupertypes(expressionCv, type.getTypeDeclaration()); }
private void makeSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) { typeArguments= ((ParameterizedType) supertype).getTypeArguments(); } TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type referenceTypeArgument= typeParameter.getErasure(); } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); } else { makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); } } } makeElementVariablesFromSupertypes(expressionCv, supertype); }
private void makeFixedSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) typeArguments= ((ParameterizedType) supertype).getTypeArguments(); TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); } else { CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); } } } makeFixedElementVariablesFromSupertypes(expressionCv, supertype); }
private void makeFixedSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) typeArguments= ((ParameterizedType) supertype).getTypeArguments(); TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); } else { CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); } } } makeFixedElementVariablesFromSupertypes(expressionCv, supertype); }
private void makeSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) { typeArguments= ((ParameterizedType) supertype).getTypeArguments(); } TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type referenceTypeArgument= typeParameter.getErasure(); } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); if (referenceTypeArgumentCv != null) { setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); continue; } } makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); } } makeElementVariablesFromSupertypes(expressionCv, supertype); }
private void makeSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) { typeArguments= ((ParameterizedType) supertype).getTypeArguments(); } TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type referenceTypeArgument= typeParameter.getErasure(); } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); if (referenceTypeArgumentCv != null) { setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); continue; } } makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); } } makeElementVariablesFromSupertypes(expressionCv, supertype); }
private void makeFixedSupertypeElementVariables(ConstraintVariable2 expressionCv, TType supertype) { if (supertype.isParameterizedType() || supertype.isRawType()) { TType[] typeArguments= null; if (supertype.isParameterizedType()) typeArguments= ((ParameterizedType) supertype).getTypeArguments(); TypeVariable[] typeParameters= ((GenericType) supertype.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < typeParameters.length; i++) { TypeVariable typeParameter= typeParameters[i]; TType referenceTypeArgument; if (typeArguments == null) { // raw type continue; // do not consider } else { referenceTypeArgument= typeArguments[i]; } if (referenceTypeArgument.isTypeVariable()) { CollectionElementVariable2 referenceTypeArgumentCv= getElementVariable(expressionCv, (TypeVariable) referenceTypeArgument); setElementVariable(expressionCv, referenceTypeArgumentCv, typeParameter); } else { CollectionElementVariable2 elementCv= makeElementVariable(expressionCv, typeParameter, CollectionElementVariable2.NOT_DECLARED_TYPE_VARIABLE_INDEX); createEqualsConstraint(elementCv, makeImmutableTypeVariable(referenceTypeArgument)); } } } makeFixedElementVariablesFromSupertypes(expressionCv, supertype); }
TypeVariable[] typeParameters= ((GenericType) declaredParameterType.getTypeDeclaration()).getTypeParameters(); for (int ta= 0; ta < typeArguments.length; ta++) { TType typeArgument= typeArguments[ta];
TypeVariable[] typeParameters= ((GenericType) declaredParameterType.getTypeDeclaration()).getTypeParameters(); for (int ta= 0; ta < typeArguments.length; ta++) { TType typeArgument= typeArguments[ta];
referenceTypeArguments= ((ParameterizedType) reference).getTypeArguments(); TType[] referenceTypeParameters= ((GenericType) reference.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < referenceTypeParameters.length; i++) { TypeVariable referenceTypeParameter= (TypeVariable) referenceTypeParameters[i];
referenceTypeArguments= ((ParameterizedType) reference).getTypeArguments(); TType[] referenceTypeParameters= ((GenericType) reference.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < referenceTypeParameters.length; i++) { TypeVariable referenceTypeParameter= (TypeVariable) referenceTypeParameters[i];
referenceTypeArguments= ((ParameterizedType) reference).getTypeArguments(); TType[] referenceTypeParameters= ((GenericType) reference.getTypeDeclaration()).getTypeParameters(); for (int i= 0; i < referenceTypeParameters.length; i++) { TypeVariable referenceTypeParameter= (TypeVariable) referenceTypeParameters[i];