| BuiltInTypeRelations |
relations for built-in SymTypes
these are the primitives, boxed primitives and String
delegate of SymTypeRelations
|
| FunctionRelations |
calculates, e.g., whether a function can be called given specified arguments,
one may assume this functionality ought to be in SymTypeOfFunction,
however, it relies on other functionality in SymTypeRelations,
and the behaviour of SymTypeClasses
should not be dependent on the current type system
(or one would need to pass the SymTypeRelations to the SymTypes)
delegate of SymTypeRelations
|
| LValueRelations |
Whether an expression is an LValue,
s.
|
| MapBasedTypeCheck3 |
A default implementation of the TypeCheck3 interface.
|
| NominalSuperTypeCalculator |
|
| OOWithinScopeBasicSymbolsResolver |
contains the code to derive / synthesize the type of a single name,
but is "OO-aware", e.g., constructors are filtered out.
|
| OOWithinTypeBasicSymbolsResolver |
resolves within a type,
unlike WithinTypeBasicSymbolsResolver,
we further filter by "OO-rules",
e.g., a constructor cannot be called like other methods
|
| SIUnitTypeRelations |
calculates, e.g., the product or inverse of SymTypeOfSIUnits
one may assume this functionality ought to be in SymTypeOfSIUnit,
however, it relies on other functionality in SymTypeRelations,
and the behaviour of SymTypeClasses
should not be dependent on the current type system
(or one would need to pass the SymTypeRelations to the SymTypes)
delegate of SymTypeRelations
|
| SymTypeBoxingVisitor |
Boxes SymTypeExpressions,
including, but not limited to, Java primitive boxing
e.g., int -> java.lang.Integer
e.g., List -> java.util.List
Usage:
calculate(symType)
|
| SymTypeCollectionVisitor |
Collects contained SymTypeExpressions based on a predicate, e.g.,
type: (List<A>, Set<List<C>>) -> void
predicate: isList
result: List<A>, List<C>
Usage:
calculate(mySymType, predicate)
|
| SymTypeCompatibilityCalculator |
checks for compatibility between SymTypes
delegate of SymTypeRelations
|
| SymTypeDeepCloneVisitor |
clones SymTypeExpressions
its main usage is to be derived from,
to generate SymTypeExpressions, which are "not quite" clones,
e.g., boxing of SymTypes
Usage:
calculate(mySymType)
|
| SymTypeExpressionComparator |
A Helper to create (Tree)Maps.
|
| SymTypeLubCalculator |
calculates the least upper bound of a collection of SymTypes
delegate of SymTypeRelations
|
| SymTypeNormalizeVisitor |
tries to normalize SymTypeExpressions,
including, but not limited to, unions and intersections
e.g., (A|A|B) -> A, if A extends B
Usage:
calculate(symType)
|
| SymTypePredicateVisitor |
a visitor that is a predicate over SymTypeExpressions
|
| SymTypePrintFullNameVisitor |
prints SymTypeExpressions with their full name
s.
|
| SymTypePrintVisitor |
prints SymTypeExpressions
s.
|
| SymTypeRelationsDefaultDelegatee |
Default implementation of SymTypeRelations.
|
| SymTypeUnboxingVisitor |
Unboxes SymTypeExpressions,
including, but not limited to, Java primitive unboxing
e.g., java.lang.Integer -> int
e.g., java.util.List -> List
Usage:
calculate(symType)
|
| TypeContextCalculator |
provides context information for an expression.
|
| TypeVisitorLifting |
Offers functions to lift functions that occur in the type check visitors.
|
| TypeVisitorOperatorCalculator |
Implementation of common operators for type visitors,
e.g., multiply, add, etc.
|
| WithinScopeBasicSymbolsResolver |
contains the code to derive / synthesize the type of a single name.
|
| WithinTypeBasicSymbolsResolver |
resolves within a type,
but in a more type correct way than our resolve algorithm,
as some additions cannot be (simply) added to it.
|