See: Description
Interface | Description |
---|---|
IConstructorLinkingCandidate |
A constructor linking candidate represents an actual or a possible
value of a
constructor call . |
IFeatureLinkingCandidate |
Exposes additional information about the linked feature if the to-be-linked
instance is an
XAbstractFeatureCall . |
ILinkingCandidate |
A linking candidate encapsulates a linked feature.
|
ITypeAssigner |
Allows to bulk-assign types for
identifiable elements ,
e.g. assign the types for the parametes of an inferred operation . |
ITypeComputationResult |
The result of the type computation for a given expression.
|
ITypeComputationState |
The current state of the type computation.
|
ITypeComputer |
The type computer is the central component when it comes to type inferrence for
expressions . |
ITypeExpectation |
Class | Description |
---|---|
AbstractClosureTypeHelper |
Base strategy to compute the type of lambda expressions.
|
ClosureTypeComputer |
Externalized strategy for closure type computation which allows for easier unit testing.
|
ClosureWithExpectationHelper |
Strategy to compute types for lambda expression that do have an expected type.
|
ClosureWithoutExpectationHelper |
Strategy to compute types for lambda expression that do not have an expected type
or that have an expected type which is not a SAM type.
|
NumberLiterals | |
SynonymTypesProvider |
The
SynonymTypesProvider allows to define automatic conversion rules
for specific types. |
SynonymTypesProvider.Acceptor |
Clients of the
SynonymTypesProvider may use a custom acceptor
to handle the available synonym types. |
UnknownClosureTypeHelper | |
XbaseTypeComputer |
Base implementation for the
ITypeComputer . |
ITypeComputer
-
The primary SPI. Clients implement this interface in order to compute types or expressions.
This is pretty much the only interface that is expected to be implemented by clients. It is
highly recommend to inherit from the
default implementation
.
ITypeComputationState
-
The state is passed around during the computation process. It allows to define expectations
for child expressions and trigger their type inference. Other aspects are validation,
querying for the current expected type and adding elements to the scope.
ITypeExpectation
-
One of the currently expected types. This can be evaluated in order to compute a type which
depends on the current context, e.g. a string
with one character may be a Character
, char
or string
.
ITypeComputationResult
-
The (possibly intermediate) result of a type computation for an expression. It offers a means to query
for the expected type which is the one that was finally picked from all expectations for that expression.
SynonymTypesProvider
-
Registers automatic conversions of existing types to others that do not depend
on the current context. By default these include conversions from iterables
to arrays and vice versa as well as boxing and unboxing semantics for primitives.
Synonyms are not considered to be retrieved for demand conversions, e.g. function type
conversion.
NumberLiterals
-
Type computation for XNumberLiteral
, e.g. which sort of concrete
syntax may yield a BigDecimal
or BigInteger
.
ClosureTypeComputer
-
The type computation of lambda expressions
is implemented in
this utility.
Linking candidates
-
These implement the Java'ish logic for feature linking in combination with extension method semantics,
precedences and the like.
ITypeAssigner
-
The type assigner allows to bulk-assign local variables that are defined on the same level. Good
use cases include parameters
of lambdas or methods.
ClosureTypeComputer
-
The type computation of lambda expressions
is implemented in
this utility.