Rename ConstraintSystemImpl -> ConstraintSystemBuilderImpl
This commit is contained in:
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt;
|
|||||||
import org.jetbrains.kotlin.resolve.calls.context.CallResolutionContext;
|
import org.jetbrains.kotlin.resolve.calls.context.CallResolutionContext;
|
||||||
import org.jetbrains.kotlin.resolve.calls.context.CheckArgumentTypesMode;
|
import org.jetbrains.kotlin.resolve.calls.context.CheckArgumentTypesMode;
|
||||||
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext;
|
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext;
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImplKt;
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImplKt;
|
||||||
import org.jetbrains.kotlin.resolve.calls.model.MutableDataFlowInfoForArguments;
|
import org.jetbrains.kotlin.resolve.calls.model.MutableDataFlowInfoForArguments;
|
||||||
import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults;
|
import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults;
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
||||||
@@ -99,7 +99,7 @@ public class ArgumentTypeResolver {
|
|||||||
@NotNull KotlinType expectedType
|
@NotNull KotlinType expectedType
|
||||||
) {
|
) {
|
||||||
if (FunctionPlaceholdersKt.isFunctionPlaceholder(actualType)) {
|
if (FunctionPlaceholdersKt.isFunctionPlaceholder(actualType)) {
|
||||||
KotlinType functionType = ConstraintSystemImplKt.createTypeForFunctionPlaceholder(actualType, expectedType);
|
KotlinType functionType = ConstraintSystemBuilderImplKt.createTypeForFunctionPlaceholder(actualType, expectedType);
|
||||||
return KotlinTypeChecker.DEFAULT.isSubtypeOf(functionType, expectedType);
|
return KotlinTypeChecker.DEFAULT.isSubtypeOf(functionType, expectedType);
|
||||||
}
|
}
|
||||||
return KotlinTypeChecker.DEFAULT.isSubtypeOf(actualType, expectedType);
|
return KotlinTypeChecker.DEFAULT.isSubtypeOf(actualType, expectedType);
|
||||||
|
|||||||
+2
-2
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext
|
|||||||
import org.jetbrains.kotlin.resolve.calls.context.ResolutionResultsCache
|
import org.jetbrains.kotlin.resolve.calls.context.ResolutionResultsCache
|
||||||
import org.jetbrains.kotlin.resolve.calls.context.TemporaryTraceAndCache
|
import org.jetbrains.kotlin.resolve.calls.context.TemporaryTraceAndCache
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystem
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystem
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.RECEIVER_POSITION
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.RECEIVER_POSITION
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.VALUE_PARAMETER_POSITION
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.VALUE_PARAMETER_POSITION
|
||||||
@@ -53,7 +53,7 @@ class GenericCandidateResolver(private val argumentTypeResolver: ArgumentTypeRes
|
|||||||
val candidateCall = context.candidateCall
|
val candidateCall = context.candidateCall
|
||||||
val candidate = candidateCall.candidateDescriptor
|
val candidate = candidateCall.candidateDescriptor
|
||||||
|
|
||||||
val builder = ConstraintSystemImpl()
|
val builder = ConstraintSystemBuilderImpl()
|
||||||
|
|
||||||
// If the call is recursive, e.g.
|
// If the call is recursive, e.g.
|
||||||
// fun foo<T>(t : T) : T = foo(t)
|
// fun foo<T>(t : T) : T = foo(t)
|
||||||
|
|||||||
+3
-3
@@ -20,8 +20,8 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.FilteredAnnotations
|
import org.jetbrains.kotlin.descriptors.annotations.FilteredAnnotations
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.EQUAL
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.EQUAL
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.SUB_TYPE
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.SUB_TYPE
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.Bound
|
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.Bound
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind.*
|
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind.*
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
||||||
@@ -41,7 +41,7 @@ import org.jetbrains.kotlin.types.typeUtil.getNestedArguments
|
|||||||
import org.jetbrains.kotlin.types.typeUtil.isDefaultBound
|
import org.jetbrains.kotlin.types.typeUtil.isDefaultBound
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
public class ConstraintSystemImpl : ConstraintSystem.Builder {
|
public class ConstraintSystemBuilderImpl : ConstraintSystem.Builder {
|
||||||
|
|
||||||
data class Constraint(val kind: ConstraintKind, val subtype: KotlinType, val superType: KotlinType, val position: ConstraintPosition)
|
data class Constraint(val kind: ConstraintKind, val subtype: KotlinType, val superType: KotlinType, val position: ConstraintPosition)
|
||||||
|
|
||||||
+4
-4
@@ -18,8 +18,8 @@ package org.jetbrains.kotlin.resolve.calls.inference
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.EQUAL
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.EQUAL
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.SUB_TYPE
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.SUB_TYPE
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.TYPE_BOUND_POSITION
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.TYPE_BOUND_POSITION
|
||||||
@@ -38,7 +38,7 @@ class ConstraintSystemSnapshot(
|
|||||||
private val externalTypeParameters: Set<TypeParameterDescriptor>,
|
private val externalTypeParameters: Set<TypeParameterDescriptor>,
|
||||||
private val usedInBounds: Map<TypeParameterDescriptor, MutableList<TypeBounds.Bound>>,
|
private val usedInBounds: Map<TypeParameterDescriptor, MutableList<TypeBounds.Bound>>,
|
||||||
private val errors: List<ConstraintError>,
|
private val errors: List<ConstraintError>,
|
||||||
private val initialConstraints: List<ConstraintSystemImpl.Constraint>,
|
private val initialConstraints: List<ConstraintSystemBuilderImpl.Constraint>,
|
||||||
private val originalToVariables: Map<TypeParameterDescriptor, TypeParameterDescriptor>,
|
private val originalToVariables: Map<TypeParameterDescriptor, TypeParameterDescriptor>,
|
||||||
private val variablesToOriginal: Map<TypeParameterDescriptor, TypeParameterDescriptor>
|
private val variablesToOriginal: Map<TypeParameterDescriptor, TypeParameterDescriptor>
|
||||||
) : ConstraintSystem {
|
) : ConstraintSystem {
|
||||||
@@ -166,7 +166,7 @@ class ConstraintSystemSnapshot(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun toBuilder(filterConstraintPosition: (ConstraintPosition) -> Boolean): ConstraintSystem.Builder {
|
override fun toBuilder(filterConstraintPosition: (ConstraintPosition) -> Boolean): ConstraintSystem.Builder {
|
||||||
val result = ConstraintSystemImpl()
|
val result = ConstraintSystemBuilderImpl()
|
||||||
for ((typeParameter, typeBounds) in allTypeParameterBounds) {
|
for ((typeParameter, typeBounds) in allTypeParameterBounds) {
|
||||||
result.allTypeParameterBounds.put(typeParameter, typeBounds.filter(filterConstraintPosition))
|
result.allTypeParameterBounds.put(typeParameter, typeBounds.filter(filterConstraintPosition))
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -17,8 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.resolve.calls.inference
|
package org.jetbrains.kotlin.resolve.calls.inference
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.EQUAL
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.EQUAL
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl.ConstraintKind.SUB_TYPE
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl.ConstraintKind.SUB_TYPE
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.Bound
|
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.Bound
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind
|
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind.*
|
import org.jetbrains.kotlin.resolve.calls.inference.TypeBounds.BoundKind.*
|
||||||
@@ -39,7 +39,7 @@ data class ConstraintContext(
|
|||||||
val derivedFrom: Set<TypeParameterDescriptor>? = null,
|
val derivedFrom: Set<TypeParameterDescriptor>? = null,
|
||||||
val initial: Boolean = false)
|
val initial: Boolean = false)
|
||||||
|
|
||||||
fun ConstraintSystemImpl.incorporateBound(newBound: Bound) {
|
fun ConstraintSystemBuilderImpl.incorporateBound(newBound: Bound) {
|
||||||
val typeVariable = newBound.typeVariable
|
val typeVariable = newBound.typeVariable
|
||||||
val typeBounds = getTypeBounds(typeVariable)
|
val typeBounds = getTypeBounds(typeVariable)
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ fun ConstraintSystemImpl.incorporateBound(newBound: Bound) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ConstraintSystemImpl.addConstraintFromBounds(old: Bound, new: Bound) {
|
private fun ConstraintSystemBuilderImpl.addConstraintFromBounds(old: Bound, new: Bound) {
|
||||||
if (old == new) return
|
if (old == new) return
|
||||||
|
|
||||||
val oldType = old.constrainingType
|
val oldType = old.constrainingType
|
||||||
@@ -81,7 +81,7 @@ private fun ConstraintSystemImpl.addConstraintFromBounds(old: Bound, new: Bound)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ConstraintSystemImpl.generateNewBound(bound: Bound, substitution: Bound) {
|
private fun ConstraintSystemBuilderImpl.generateNewBound(bound: Bound, substitution: Bound) {
|
||||||
// Let's have a bound 'T <=> My<R>', and a substitution 'R <=> Type'.
|
// Let's have a bound 'T <=> My<R>', and a substitution 'R <=> Type'.
|
||||||
// Here <=> means lower_bound, upper_bound or exact_bound constraint.
|
// Here <=> means lower_bound, upper_bound or exact_bound constraint.
|
||||||
// Then a new bound 'T <=> My<_/in/out Type>' can be generated.
|
// Then a new bound 'T <=> My<_/in/out Type>' can be generated.
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystem;
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystem;
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl;
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
@@ -185,7 +185,7 @@ public class TypeIntersector {
|
|||||||
};
|
};
|
||||||
processAllTypeParameters(withParameters, Variance.INVARIANT, processor);
|
processAllTypeParameters(withParameters, Variance.INVARIANT, processor);
|
||||||
processAllTypeParameters(expected, Variance.INVARIANT, processor);
|
processAllTypeParameters(expected, Variance.INVARIANT, processor);
|
||||||
ConstraintSystem.Builder constraintSystem = new ConstraintSystemImpl();
|
ConstraintSystem.Builder constraintSystem = new ConstraintSystemBuilderImpl();
|
||||||
constraintSystem.registerTypeVariables(parameters.keySet(), new Function1<TypeParameterDescriptor, TypeParameterDescriptor>() {
|
constraintSystem.registerTypeVariables(parameters.keySet(), new Function1<TypeParameterDescriptor, TypeParameterDescriptor>() {
|
||||||
@Override
|
@Override
|
||||||
public TypeParameterDescriptor invoke(TypeParameterDescriptor descriptor) {
|
public TypeParameterDescriptor invoke(TypeParameterDescriptor descriptor) {
|
||||||
|
|||||||
+3
-3
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.diagnostics.rendering.Renderers
|
|||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.resolve.TypeResolver
|
import org.jetbrains.kotlin.resolve.TypeResolver
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintContext
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.SPECIAL
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.SPECIAL
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
@@ -76,7 +76,7 @@ abstract public class AbstractConstraintSystemTest() : KotlinLiteFixture() {
|
|||||||
val constraintsFile = File(filePath)
|
val constraintsFile = File(filePath)
|
||||||
val constraintsFileText = constraintsFile.readLines()
|
val constraintsFileText = constraintsFile.readLines()
|
||||||
|
|
||||||
val builder = ConstraintSystemImpl()
|
val builder = ConstraintSystemBuilderImpl()
|
||||||
|
|
||||||
val variables = parseVariables(constraintsFileText)
|
val variables = parseVariables(constraintsFileText)
|
||||||
val fixVariables = constraintsFileText.contains("FIX_VARIABLES")
|
val fixVariables = constraintsFileText.contains("FIX_VARIABLES")
|
||||||
@@ -96,7 +96,7 @@ abstract public class AbstractConstraintSystemTest() : KotlinLiteFixture() {
|
|||||||
MyConstraintKind.SUBTYPE -> builder.addSubtypeConstraint(firstType, secondType, context.position)
|
MyConstraintKind.SUBTYPE -> builder.addSubtypeConstraint(firstType, secondType, context.position)
|
||||||
MyConstraintKind.SUPERTYPE -> builder.addSupertypeConstraint(firstType, secondType, context.position)
|
MyConstraintKind.SUPERTYPE -> builder.addSupertypeConstraint(firstType, secondType, context.position)
|
||||||
MyConstraintKind.EQUAL -> builder.addConstraint(
|
MyConstraintKind.EQUAL -> builder.addConstraint(
|
||||||
ConstraintSystemImpl.ConstraintKind.EQUAL, firstType, secondType, context)
|
ConstraintSystemBuilderImpl.ConstraintKind.EQUAL, firstType, secondType, context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ package org.jetbrains.kotlin.idea.util
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||||
@@ -116,7 +116,7 @@ class FuzzyType(
|
|||||||
return if (type.checkInheritance(otherType.type)) TypeSubstitutor.EMPTY else null
|
return if (type.checkInheritance(otherType.type)) TypeSubstitutor.EMPTY else null
|
||||||
}
|
}
|
||||||
|
|
||||||
val builder = ConstraintSystemImpl()
|
val builder = ConstraintSystemBuilderImpl()
|
||||||
builder.registerTypeVariables(freeParameters)
|
builder.registerTypeVariables(freeParameters)
|
||||||
builder.registerTypeVariables(otherType.freeParameters)
|
builder.registerTypeVariables(otherType.freeParameters)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user