org.eclipse.xtext.common.types.util
Class ParameterizedTypeConformanceStrategy

java.lang.Object
  extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter<Parameter,Result>
      extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T>,TypeConformanceResult>
          extended by org.eclipse.xtext.common.types.util.AbstractConformanceVisitor<T>
              extended by org.eclipse.xtext.common.types.util.TypeConformanceStrategy<JvmParameterizedTypeReference>
                  extended by org.eclipse.xtext.common.types.util.ParameterizedTypeConformanceStrategy
All Implemented Interfaces:
ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference>,TypeConformanceResult>

public class ParameterizedTypeConformanceStrategy
extends TypeConformanceStrategy<JvmParameterizedTypeReference>

Author:
Sebastian Zarnekow - Initial contribution and API

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
 
Field Summary
 
Fields inherited from class org.eclipse.xtext.common.types.util.TypeConformanceStrategy
conformanceComputer
 
Constructor Summary
ParameterizedTypeConformanceStrategy(TypeConformanceComputer conformanceComputer)
           
 
Method Summary
protected  TypeConformanceResult areArgumentsConformant(JvmParameterizedTypeReference leftReference, JvmParameterizedTypeReference rightReference)
           
 TypeConformanceResult doVisitAnyTypeReference(JvmParameterizedTypeReference left, JvmAnyTypeReference right, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
           
 TypeConformanceResult doVisitGenericArrayTypeReference(JvmParameterizedTypeReference left, JvmGenericArrayTypeReference right, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
           
 TypeConformanceResult doVisitParameterizedTypeReference(JvmParameterizedTypeReference leftReference, JvmParameterizedTypeReference rightReference, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
           
 TypeConformanceResult doVisitTypeReference(JvmParameterizedTypeReference left, JvmTypeReference right, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
           
protected  TypeArgumentContext getBoundTypeParameters(JvmParameterizedTypeReference reference)
           
protected  TypeConformanceResult isConformant(JvmType leftType, JvmType rightType, JvmParameterizedTypeReference leftReference, JvmParameterizedTypeReference rightReference, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
           
protected  boolean isPrimitiveVoid(JvmType type)
           
protected  boolean isUnresolved(JvmType leftType)
           
protected  boolean isWideningConversion(JvmPrimitiveType leftType, JvmPrimitiveType rightType)
          See Java Language Specification §{5.1.2} Widening Primitive Conversion
protected  Primitives.Primitive primitiveKind(JvmPrimitiveType primitiveType)
           
 
Methods inherited from class org.eclipse.xtext.common.types.util.TypeConformanceStrategy
doVisitAnyTypeReference, doVisitCompoundTypeReference, doVisitCompoundTypeReference, doVisitDelegateTypeReference, doVisitDelegateTypeReference, doVisitGenericArrayTypeReference, doVisitMultiTypeReference, doVisitMultiTypeReference, doVisitParameterizedTypeReference, doVisitSpecializedTypeReference, doVisitSpecializedTypeReference, doVisitSynonymTypeReference, doVisitSynonymTypeReference, doVisitTypeReference, doVisitUnknownTypeReference, doVisitUnknownTypeReference, doVisitWildcardTypeReference, doVisitWildcardTypeReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractConformanceVisitor
handleNullReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParameterizedTypeConformanceStrategy

public ParameterizedTypeConformanceStrategy(TypeConformanceComputer conformanceComputer)
Method Detail

doVisitGenericArrayTypeReference

public TypeConformanceResult doVisitGenericArrayTypeReference(JvmParameterizedTypeReference left,
                                                              JvmGenericArrayTypeReference right,
                                                              TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
Overrides:
doVisitGenericArrayTypeReference in class TypeConformanceStrategy<JvmParameterizedTypeReference>

doVisitParameterizedTypeReference

public TypeConformanceResult doVisitParameterizedTypeReference(JvmParameterizedTypeReference leftReference,
                                                               JvmParameterizedTypeReference rightReference,
                                                               TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
Overrides:
doVisitParameterizedTypeReference in class TypeConformanceStrategy<JvmParameterizedTypeReference>

isPrimitiveVoid

protected boolean isPrimitiveVoid(JvmType type)

isConformant

protected TypeConformanceResult isConformant(JvmType leftType,
                                             JvmType rightType,
                                             JvmParameterizedTypeReference leftReference,
                                             JvmParameterizedTypeReference rightReference,
                                             TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)

isWideningConversion

protected boolean isWideningConversion(JvmPrimitiveType leftType,
                                       JvmPrimitiveType rightType)
See Java Language Specification §{5.1.2} Widening Primitive Conversion


primitiveKind

protected Primitives.Primitive primitiveKind(JvmPrimitiveType primitiveType)

areArgumentsConformant

protected TypeConformanceResult areArgumentsConformant(JvmParameterizedTypeReference leftReference,
                                                       JvmParameterizedTypeReference rightReference)

getBoundTypeParameters

protected TypeArgumentContext getBoundTypeParameters(JvmParameterizedTypeReference reference)

isUnresolved

protected boolean isUnresolved(JvmType leftType)

doVisitAnyTypeReference

public TypeConformanceResult doVisitAnyTypeReference(JvmParameterizedTypeReference left,
                                                     JvmAnyTypeReference right,
                                                     TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
Overrides:
doVisitAnyTypeReference in class TypeConformanceStrategy<JvmParameterizedTypeReference>

doVisitTypeReference

public TypeConformanceResult doVisitTypeReference(JvmParameterizedTypeReference left,
                                                  JvmTypeReference right,
                                                  TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param)
Overrides:
doVisitTypeReference in class TypeConformanceStrategy<JvmParameterizedTypeReference>