Class Typing
java.lang.Object
org.checkerframework.framework.util.typeinference8.constraint.TypeConstraint
org.checkerframework.framework.util.typeinference8.constraint.Typing
- All Implemented Interfaces:
Constraint
,ReductionResult
Represents a constraint between two
AbstractType
. One of:
Constraint.Kind.TYPE_COMPATIBILITY
< S -> T >
: A type S is compatible in a loose invocation context with type TConstraint.Kind.SUBTYPE
< S <: T >
: A reference type S is a subtype of a reference type TConstraint.Kind.CONTAINED
< S <= T >
: A type argument S is contained by a type argument T.Constraint.Kind.TYPE_EQUALITY
< S = T >
: A type S is the same as a type T, or a type argument S is the same as type argument T.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.checkerframework.framework.util.typeinference8.constraint.Constraint
Constraint.Kind
Nested classes/interfaces inherited from interface org.checkerframework.framework.util.typeinference8.constraint.ReductionResult
ReductionResult.ReductionResultPair
-
Field Summary
Fields inherited from class org.checkerframework.framework.util.typeinference8.constraint.TypeConstraint
T
Fields inherited from interface org.checkerframework.framework.util.typeinference8.constraint.ReductionResult
UNCHECKED_CONVERSION
-
Constructor Summary
ConstructorDescriptionTyping
(AbstractType S, AbstractType t, Constraint.Kind kind) Creates a typing constraint.Typing
(AbstractType S, AbstractType t, Constraint.Kind kind, boolean covarTypeArg) Creates a typing constraint. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Apply the given instantiations to any type mentioned in this constraint -- meaning replace any mention of a variable ininstantiations
with its proper type.boolean
Returns a collection of all inference variables mentioned by this constraint.For lambda and method references constraints, input variables are roughly the inference variables mentioned by they function type's parameter types and return types.getKind()
Return the kind of constraint."The output variables of [expression] constraints are all inference variables mentioned by the type on the right-hand side of the constraint, T, that are not input variables."getS()
Return one of the abstract types in this constraint.int
hashCode()
reduce
(Java8InferenceContext context) Reduce this constraint what this means depends on the kind of constraint.toString()
Methods inherited from class org.checkerframework.framework.util.typeinference8.constraint.TypeConstraint
getInputVariablesForExpression, getT
-
Constructor Details
-
Typing
Creates a typing constraint.- Parameters:
S
- left hand side typet
- right hand side typekind
- the kind of constraint
-
Typing
Creates a typing constraint.- Parameters:
S
- left hand side typet
- right hand side typekind
- the kind of constraintcovarTypeArg
- whether the constraint is for a covariant type argument
-
-
Method Details
-
getS
Return one of the abstract types in this constraint.- Returns:
- one of the abstract types in this constraint
-
getKind
Description copied from interface:Constraint
Return the kind of constraint.- Returns:
- the kind of constraint
-
getInputVariables
Description copied from class:TypeConstraint
For lambda and method references constraints, input variables are roughly the inference variables mentioned by they function type's parameter types and return types. For conditional expression constraints and switch expression constraints, input variables are the union of the input variables of its subexpressions. For all other constraints, no input variables exist.Defined in JLS section 18.5.2.2
- Specified by:
getInputVariables
in classTypeConstraint
- Returns:
- input variables for this constraint
-
getOutputVariables
Description copied from class:TypeConstraint
"The output variables of [expression] constraints are all inference variables mentioned by the type on the right-hand side of the constraint, T, that are not input variables."As defined in JLS section 18.5.2.2
- Specified by:
getOutputVariables
in classTypeConstraint
- Returns:
- output variables for this constraint
-
getInferenceVariables
Description copied from class:TypeConstraint
Returns a collection of all inference variables mentioned by this constraint.- Overrides:
getInferenceVariables
in classTypeConstraint
- Returns:
- a collection of all inference variables mentioned by this constraint
-
applyInstantiations
public void applyInstantiations()Description copied from class:TypeConstraint
Apply the given instantiations to any type mentioned in this constraint -- meaning replace any mention of a variable ininstantiations
with its proper type.- Overrides:
applyInstantiations
in classTypeConstraint
-
reduce
Description copied from interface:Constraint
Reduce this constraint what this means depends on the kind of constraint. Reduction can produce new bounds and/or new constraints.Reduction is documented in JLS section 18.2
- Parameters:
context
- Java8InferenceContext- Returns:
- the result of reducing this constraint
-
toString
-
equals
- Overrides:
equals
in classTypeConstraint
-
hashCode
public int hashCode()- Overrides:
hashCode
in classTypeConstraint
-