Incorporation tests
This commit is contained in:
@@ -369,7 +369,7 @@ public object Renderers {
|
|||||||
val renderBound = { bound: Bound ->
|
val renderBound = { bound: Bound ->
|
||||||
val arrow = if (bound.kind == LOWER_BOUND) ">: " else if (bound.kind == UPPER_BOUND) "<: " else ":= "
|
val arrow = if (bound.kind == LOWER_BOUND) ">: " else if (bound.kind == UPPER_BOUND) "<: " else ":= "
|
||||||
val renderer = if (short) DescriptorRenderer.SHORT_NAMES_IN_TYPES else DescriptorRenderer.FQ_NAMES_IN_TYPES
|
val renderer = if (short) DescriptorRenderer.SHORT_NAMES_IN_TYPES else DescriptorRenderer.FQ_NAMES_IN_TYPES
|
||||||
val renderedBound = arrow + renderer.renderType(bound.constrainingType)
|
val renderedBound = arrow + renderer.renderType(bound.constrainingType) + if (!bound.isProper) "*" else ""
|
||||||
if (short) renderedBound else renderedBound + '(' + bound.position + ')'
|
if (short) renderedBound else renderedBound + '(' + bound.position + ')'
|
||||||
}
|
}
|
||||||
val typeVariableName = typeBounds.typeVariable.getName()
|
val typeVariableName = typeBounds.typeVariable.getName()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
fun foo<T, P: T>() = 42
|
fun foo<T, P, E>() = 42
|
||||||
|
|
||||||
interface A
|
interface A
|
||||||
interface B : A
|
interface B : A
|
||||||
@@ -7,4 +7,7 @@ interface C : B
|
|||||||
interface Consumer<in T>
|
interface Consumer<in T>
|
||||||
interface Producer<out T>
|
interface Producer<out T>
|
||||||
|
|
||||||
interface My<T>
|
interface My<T>
|
||||||
|
interface Successor<T> : My<T>
|
||||||
|
|
||||||
|
interface Two<T, P>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P := Consumer<T>*, := Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P <: Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P >: Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P := Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P <: Consumer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P >: Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P := Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P <: Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P >: Consumer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P := Producer<T>*, := Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P <: Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P >: Producer<T>*, >: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P := Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P <: Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P >: Producer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P := Producer<T>*, >: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P <: Producer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P >: Producer<T>*, >: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P := My<T>*, := My<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=My<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P <: My<T>*, <: My<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=My<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P >: My<T>*, >: My<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=My<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P := My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
EQUAL P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P <: My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P >: My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P := My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
EQUAL P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P <: My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUBTYPE P My<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P >: My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE T Int
|
||||||
|
SUPERTYPE P My<T>
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
|
SUBTYPE Int T
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := T*, := E*, >: Int, := Int
|
||||||
|
P <: My<T>*, >: Successor<E>*, >: Successor<T>*, <: My<E>*, <: My<Int>, >: Successor<Int>, := Successor<Int>
|
||||||
|
E := T*, := E*, >: Int, := Int
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Successor<Int>
|
||||||
|
E=Int
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
|
SUBTYPE Int T
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
SUBTYPE Int T
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int, := T*, := E*, := Int
|
||||||
|
P <: My<T>*, >: Successor<E>*, >: Successor<T>*, <: My<E>*, <: My<Int>, >: Successor<Int>, := Successor<Int>
|
||||||
|
E := T*, >: Int, := E*, := Int
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Successor<Int>
|
||||||
|
E=Int
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
SUBTYPE Int T
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE Int T
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
|
SUBTYPE P My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int, := T*, := E*, := Int
|
||||||
|
P >: Successor<E>*, <: My<T>*, >: Successor<T>*, <: My<E>*, <: My<Int>, >: Successor<Int>, := Successor<Int>
|
||||||
|
E := T*, >: Int, := E*, := Int
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Successor<Int>
|
||||||
|
E=Int
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
VARIABLES T P E
|
||||||
|
FIX_VARIABLES
|
||||||
|
|
||||||
|
SUBTYPE Int T
|
||||||
|
SUBTYPE Successor<E> P
|
||||||
|
SUBTYPE P My<T>
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T My<P>
|
||||||
|
EQUAL P Two<T,P>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := My<P>*
|
||||||
|
P := Two<T, P>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=???
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL T My<P>
|
||||||
|
EQUAL P Two<T,P>
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
VARIABLES T
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL T My<T>
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int, := My<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: true
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: true
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T
|
||||||
|
|
||||||
|
EQUAL T Int
|
||||||
|
EQUAL T My<T>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P := Consumer<T>*, := Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P <: Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P >: Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
compiler/testData/constraintSystem/severalVariables/reversed/contravariant/varEqDepSuper.constraints
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
EQUAL T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P := Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P <: Consumer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P >: Consumer<T>*, >: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P := Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
compiler/testData/constraintSystem/severalVariables/reversed/contravariant/varSuperDepEq.constraints
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P <: Consumer<T>*, <: Consumer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Consumer<Int>
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P >: Consumer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Consumer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P := Producer<T>*, := Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P <: Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T := Int
|
||||||
|
P >: Producer<T>*, >: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
EQUAL T Int
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P := Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P <: Producer<T>*, <: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T <: Int
|
||||||
|
P >: Producer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUPERTYPE P Producer<T>
|
||||||
|
SUBTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P := Producer<T>*, >: Producer<Int>
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: false
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: true
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=Producer<Int>
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
EQUAL P Producer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
|
|
||||||
|
type parameter bounds:
|
||||||
|
T >: Int
|
||||||
|
P <: Producer<T>*
|
||||||
|
|
||||||
|
status:
|
||||||
|
-hasCannotCaptureTypesError: false
|
||||||
|
-hasConflictingConstraints: false
|
||||||
|
-hasContradiction: false
|
||||||
|
-hasErrorInConstrainingTypes: false
|
||||||
|
-hasTypeConstructorMismatch: false
|
||||||
|
-hasTypeInferenceIncorporationError: false
|
||||||
|
-hasUnknownParameters: true
|
||||||
|
-hasViolatedUpperBound: false
|
||||||
|
-isSuccessful: false
|
||||||
|
|
||||||
|
result:
|
||||||
|
T=Int
|
||||||
|
P=???
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
VARIABLES T P
|
||||||
|
|
||||||
|
SUBTYPE P Producer<T>
|
||||||
|
SUPERTYPE T Int
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user