Class InferenceBlockingTypeParameterVisitor
java.lang.Object
org.openzen.zenscript.codemodel.type.InferenceBlockingTypeParameterVisitor
- All Implemented Interfaces:
TypeVisitor<Boolean>
Visitor to determine if a type has inference blocking type parameters.
This works by adding the known types to a map, and quering the map to see if a type has been seen before.
Types are first added to the map with a value of false, to indicate that it is currently being visited.
This is done to resolve circular types (see MyEnum extends Enum
After extra processing is done (such as ArrayTypeID checking its element's type to determine if it blocks),
the actual result of if the type blocks is inserted into the map.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitArray(ArrayTypeID array) visitAssoc(AssocTypeID assoc) visitBasic(BasicTypeID basic) visitDefinition(DefinitionTypeID definition) visitFunction(FunctionTypeID function) visitGeneric(GenericTypeID generic) visitInvalid(InvalidTypeID type) visitIterator(IteratorTypeID iterator) visitOptional(OptionalTypeID type) visitRange(RangeTypeID range)
-
Constructor Details
-
InferenceBlockingTypeParameterVisitor
-
-
Method Details
-
visitBasic
- Specified by:
visitBasicin interfaceTypeVisitor<Boolean>
-
visitArray
- Specified by:
visitArrayin interfaceTypeVisitor<Boolean>
-
visitAssoc
- Specified by:
visitAssocin interfaceTypeVisitor<Boolean>
-
visitGenericMap
- Specified by:
visitGenericMapin interfaceTypeVisitor<Boolean>
-
visitIterator
- Specified by:
visitIteratorin interfaceTypeVisitor<Boolean>
-
visitFunction
- Specified by:
visitFunctionin interfaceTypeVisitor<Boolean>
-
visitDefinition
- Specified by:
visitDefinitionin interfaceTypeVisitor<Boolean>
-
visitGeneric
- Specified by:
visitGenericin interfaceTypeVisitor<Boolean>
-
visitRange
- Specified by:
visitRangein interfaceTypeVisitor<Boolean>
-
visitOptional
- Specified by:
visitOptionalin interfaceTypeVisitor<Boolean>
-
visitInvalid
- Specified by:
visitInvalidin interfaceTypeVisitor<Boolean>
-