This is NOT part of any supported API. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.
| Modifier and Type | Class and Description |
|---|---|
| pack-priv abstract class | Infer.
This solver uses an heuristic to pick the best leaf - the heuristic tries to select the node that has maximal probability to contain one or more inference variables in a given list |
| protected static class | |
| pack-priv class | Infer.
Bound-check incorporation action. |
| pack-priv class | Infer.
Check that the inferred type conforms to all bounds. |
| pack-priv class | Infer.
Perform pairwise comparison between common generic supertypes of two upper bounds. |
| pack-priv static enum | Infer.
There are two kinds of dependencies between inference variables. |
| pack-priv static interface | Infer.
Functional interface for defining inference callbacks. |
| pack-priv static enum | Infer.
This enumeration defines the sequence of steps to be applied when the graph solver is used. |
| pack-priv class | Infer.
This is the graph inference solver - the solver organizes all inference variables in a given inference context by bound dependencies - in the general case, such dependencies would lead to a cyclic directed graph (hence the name); the dependency info is used to build an acyclic graph, where all cyclic variables are bundled together. |
| pack-priv static interface | Infer.
Graph inference strategy - act as an input to the inference solver; a strategy is composed of two ingredients: (i) find a node to solve in the inference graph, and (ii) tell th engine when we are done fixing inference variables |
| pack-priv class | |
| public abstract class | Infer.
This class is the root of all incorporation actions. |
| pack-priv static record | Infer.
This class encapsulates a basic incorporation operation; incorporation operations takes two type operands and a kind. |
| pack-priv static enum | Infer.
Three kinds of basic operation are supported as part of an incorporation step: (i) subtype check, (ii) same type check and (iii) bound addition (either upper/lower/eq bound). |
| pack-priv class | Infer.
This class models an incorporation engine. |
| public static class | Infer.
This exception class is design to store a list of diagnostics corresponding to inference errors that can arise during a method applicability check. |
| pack-priv static enum | Infer.
The inference process can be thought of as a sequence of steps. |
| pack-priv abstract class | Infer.
Simple solver strategy class that locates all leaves inside a graph and picks the first leaf as the next node to solve |
| public class | Infer.
A partially inferred method/constructor type; such a type can be checked multiple times against different targets. |
| pack-priv class | Infer.
Perform propagation of bounds. |
| pack-priv class | Infer.
Replace undetvars in bounds and check that the inferred type conforms to all bounds. |
| Modifier and Type | Field and Description |
|---|---|
| public static final Type | anyPoly
A value for prototypes that admit any type, including polymorphic ones. |
| pack-priv Check | |
| private final String | dependenciesFolder
folder in which the inference dependency graphs should be written. |
| pack-priv JCDiagnostic. | |
| private final boolean | |
| pack-priv final InferenceContext | |
| private final boolean | |
| pack-priv Types. | |
| pack-priv Map | incorporationCache
an incorporation cache keeps track of all executed incorporation-related operations |
| pack-priv Infer. | |
| protected static final Context. | |
| pack-priv Log | |
| pack-priv static final int | MAX_INCORPORATION_STEPS
max number of incorporation rounds. |
| private List | pendingGraphs
List of graphs awaiting to be dumped to a file. |
| pack-priv Resolve | |
| pack-priv Symtab | |
| pack-priv Types |
| Modifier and Type | Method and Description |
|---|---|
| private Type | |
| private boolean | |
| pack-priv void | doIncorporation(InferenceContext inferenceContext, Warner warn)
Check bounds and perform incorporation. |
| pack-priv boolean | doIncorporationOp(Infer.
|
| private void | dumpGraphsIfNeeded(JCDiagnostic.
|
| pack-priv Infer. | |
| private Type | generateReferenceToTargetConstraint(JCTree tree, Type.
|
| pack-priv Type | generateReturnConstraints(JCTree tree, Attr.
Generate constraints from the generic method's return type. |
| pack-priv JCDiagnostic. | |
| private List | |
| public static Infer | |
| pack-priv void | instantiateAsUninferredVars(List<Type> vars, InferenceContext inferenceContext)
Infer cyclic inference variables as described in 15.12.2.8. |
| public Type | instantiateFunctionalInterface(JCDiagnostic.
This method is used to infer a suitable target SAM in case the original SAM type contains one or more wildcards. |
| pack-priv Type | instantiateMethod(Env<AttrContext> env, List<Type> tvars, Type.
Main inference entry point - instantiate a generic method type using given argument types and (possibly) an expected target-type. |
| public Type | instantiatePatternType(Type expressionType, Symbol.
Infer record type for pattern matching. |
| private List | |
| pack-priv Type | instantiatePolymorphicSignatureInstance(Env<AttrContext> env, Symbol.
Compute a synthetic method type corresponding to the requested polymorphic method signature. |
| private boolean | |
| private void | |
| pack-priv void | reportBoundError(Type.
Incorporation error: mismatch between two (or more) bounds of same kind. |
| pack-priv void | reportBoundError(Type.
Incorporation error: mismatch between two (or more) bounds of different kinds. |
| pack-priv void | reportInstError(Type.
Incorporation error: mismatch between inferred type and given bound. |
| private List | |
| private boolean |