K2: repeat K1 representation for flexible type parameters
This commit changes the behavior of KT-59138 effectively declining it in 2.0. However, we plan to implement KT-59138 behavior under a feature flag in 2.0 (see KT-66447), and switch this feature on version 2.x. Also, this commit implements the LC resolution about postponing KT-57014 change. We don't have KT-57014 described behavior in 2.0 anymore. However, we plan to implement a deprecation warning here, see KT-65578. After this commit, 6 diagnostic tests become incorrectly broken: - 5 tests from PurelyImplementedCollection group - a test platformTypes/nullableTypeArgument.kt This commit also breaks currently fixed-in-k2 KT-50134 (it is fixed again in the following commits), as well as KT-58933 (it will remain not fixed till we enable KT-59138 behavior again). #KT-65596 In Progress #KT-57014 In Progress #KT-58933 Submitted
This commit is contained in:
committed by
Space Team
parent
7fd46f1450
commit
81414d758d
+3
-3
@@ -7,13 +7,13 @@ KtSuccessCallInfo:
|
||||
signature = KtFunctionLikeSignature:
|
||||
receiverType = null
|
||||
returnType = java.util.Comparator<kotlin.Int!>
|
||||
symbol = kotlin/Comparator(function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>): java.util.Comparator<T>
|
||||
symbol = kotlin/Comparator(function: kotlin.Function2<T!, T!, kotlin.Int>): java.util.Comparator<T>
|
||||
valueParameters = [
|
||||
KtVariableLikeSignature:
|
||||
name = function
|
||||
receiverType = null
|
||||
returnType = kotlin.Function2<kotlin.Int!, kotlin.Int!, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<T!, T!, kotlin.Int>
|
||||
callableIdIfNonLocal = null
|
||||
]
|
||||
callableIdIfNonLocal = kotlin/Comparator
|
||||
@@ -25,6 +25,6 @@ KtSuccessCallInfo:
|
||||
name = function
|
||||
receiverType = null
|
||||
returnType = kotlin.Function2<kotlin.Int!, kotlin.Int!, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<T!, T!, kotlin.Int>
|
||||
callableIdIfNonLocal = null)
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@ KtApplicableCallCandidateInfo:
|
||||
signature = KtFunctionLikeSignature:
|
||||
receiverType = null
|
||||
returnType = java.util.Comparator<kotlin.Int!>
|
||||
symbol = kotlin/Comparator(function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>): java.util.Comparator<T>
|
||||
symbol = kotlin/Comparator(function: kotlin.Function2<T!, T!, kotlin.Int>): java.util.Comparator<T>
|
||||
valueParameters = [
|
||||
KtVariableLikeSignature:
|
||||
name = function
|
||||
receiverType = null
|
||||
returnType = kotlin.Function2<kotlin.Int!, kotlin.Int!, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<T!, T!, kotlin.Int>
|
||||
callableIdIfNonLocal = null
|
||||
]
|
||||
callableIdIfNonLocal = kotlin/Comparator
|
||||
@@ -25,7 +25,7 @@ KtApplicableCallCandidateInfo:
|
||||
name = function
|
||||
receiverType = null
|
||||
returnType = kotlin.Function2<kotlin.Int!, kotlin.Int!, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<ft<T & Any, T?>, ft<T & Any, T?>, kotlin.Int>
|
||||
symbol = function: kotlin.Function2<T!, T!, kotlin.Int>
|
||||
callableIdIfNonLocal = null)
|
||||
}
|
||||
isInBestCandidates = true
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
open fun hello()
|
||||
|
||||
open fun <T : kotlin.Any!> method(vararg classes: java.lang.Class<out (T & kotlin.Any..T?)>!)
|
||||
open fun <T : kotlin.Any!> method(vararg classes: java.lang.Class<out T!>!)
|
||||
|
||||
@java.lang.Override
|
||||
open fun getActualRandomNumber(): kotlin.Int
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ KtFunctionSymbol:
|
||||
receiverParameter: null
|
||||
returnType: KtFlexibleType:
|
||||
annotationsList: []
|
||||
type: ft<java/lang/Class<out ft<T & Any, T?>>, java/lang/Class<out ft<T & Any, T?>>?>
|
||||
type: ft<java/lang/Class<out T!>, java/lang/Class<out T!>?>
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingFileSymbol: null
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ override operator fun iterator(): kotlin.collections.MutableIterator<test.SomeCl
|
||||
|
||||
fun toArray(): kotlin.Array<kotlin.Any!>!
|
||||
|
||||
fun <T : kotlin.Any!> toArray(p0: kotlin.Array<(T & kotlin.Any..T?)>!): kotlin.Array<(T & kotlin.Any..T?)>!
|
||||
fun <T : kotlin.Any!> toArray(p0: kotlin.Array<T!>!): kotlin.Array<T!>!
|
||||
|
||||
override fun add(p0: test.SomeClass!): kotlin.Boolean
|
||||
|
||||
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
Resolved to:
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: (T!, T!) -> kotlin.Int): java.util.Comparator<T>
|
||||
@@ -1,2 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: ((T & kotlin.Any..T?), (T & kotlin.Any..T?)) -> kotlin.Int): java.util.Comparator<T>
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: (T!, T!) -> kotlin.Int): java.util.Comparator<T>
|
||||
Vendored
-2
@@ -1,2 +0,0 @@
|
||||
Resolved to:
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: (T!, T!) -> kotlin.Int): java.util.Comparator<T>
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: ((T & kotlin.Any..T?), (T & kotlin.Any..T?)) -> kotlin.Int): java.util.Comparator<T>
|
||||
0: (in java.util) <T : kotlin.Any!> Comparator(function: (T!, T!) -> kotlin.Int): java.util.Comparator<T>
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
Resolved to:
|
||||
0: (in java.util) open class HashMap<K : kotlin.Any!, V : kotlin.Any!> : java.util.AbstractMap<K!, V!>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableMap<K, V>
|
||||
@@ -1,2 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in java.util) open class HashMap<K : kotlin.Any!, V : kotlin.Any!> : java.util.AbstractMap<(K & kotlin.Any..K?), (V & kotlin.Any..V?)>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableMap<K, V>
|
||||
0: (in java.util) open class HashMap<K : kotlin.Any!, V : kotlin.Any!> : java.util.AbstractMap<K!, V!>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableMap<K, V>
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
Resolved to:
|
||||
0: (in java.util) open class HashSet<E : kotlin.Any!> : java.util.AbstractSet<E!>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableSet<E>
|
||||
@@ -1,2 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in java.util) open class HashSet<E : kotlin.Any!> : java.util.AbstractSet<(E & kotlin.Any..E?)>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableSet<E>
|
||||
0: (in java.util) open class HashSet<E : kotlin.Any!> : java.util.AbstractSet<E!>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableSet<E>
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
constructor(c: kotlin.collections.(Mutable)Collection<out (E & kotlin.Any..E?)>!)
|
||||
constructor(c: kotlin.collections.(Mutable)Collection<out E!>!)
|
||||
+1
-1
@@ -39,7 +39,7 @@ KtConstructorSymbol:
|
||||
receiverParameter: null
|
||||
returnType: KtFlexibleType:
|
||||
annotationsList: []
|
||||
type: ft<kotlin/collections/MutableCollection<out ft<E & Any, E?>>, kotlin/collections/Collection<out ft<E & Any, E?>>?>
|
||||
type: ft<kotlin/collections/MutableCollection<out E!>, kotlin/collections/Collection<out E!>?>
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingFileSymbol: null
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
PsiJetFileStubImpl[package=test]
|
||||
KotlinStub$PACKAGE_DIRECTIVE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=test]
|
||||
KotlinStub$IMPORT_LIST
|
||||
KotlinStub$CLASS[classId=test/OuterClassesWithFlexibleArgs, fqName=test.OuterClassesWithFlexibleArgs, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=OuterClassesWithFlexibleArgs, superNames=[]]
|
||||
KotlinStub$MODIFIER_LIST[public final]
|
||||
KotlinStub$TYPE_PARAMETER_LIST
|
||||
KotlinStub$TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=K]
|
||||
KotlinStub$TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=L]
|
||||
KotlinStub$PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=OuterClassesWithFlexibleArgs]
|
||||
KotlinStub$MODIFIER_LIST[public]
|
||||
KotlinStub$VALUE_PARAMETER_LIST
|
||||
KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=k]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=K]
|
||||
KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=l]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=L]
|
||||
KotlinStub$CLASS_BODY
|
||||
KotlinStub$PROPERTY[fqName=test.OuterClassesWithFlexibleArgs.baz, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=baz]
|
||||
KotlinStub$MODIFIER_LIST[public final]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: d.JavaClass.InnerClass<L & Any .. L?>?
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=d]
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=JavaClass]
|
||||
KotlinStub$TYPE_ARGUMENT_LIST
|
||||
KotlinStub$TYPE_PROJECTION[projectionKind=NONE]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$INTERSECTION_TYPE
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: K?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=K]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=Any]
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=InnerClass]
|
||||
KotlinStub$TYPE_ARGUMENT_LIST
|
||||
KotlinStub$TYPE_PROJECTION[projectionKind=NONE]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$INTERSECTION_TYPE
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: L?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=L]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=Any]
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/* Java interop */
|
||||
// KNM_K2_IGNORE
|
||||
|
||||
|
||||
+5
-15
@@ -56,7 +56,7 @@ KotlinStub$CLASS[classId=test/TypeParametersInFlexibleTypes, fqName=test.TypePar
|
||||
KotlinStub$PROPERTY[fqName=test.TypeParametersInFlexibleTypes.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=bar]
|
||||
KotlinStub$MODIFIER_LIST[public final]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: kotlin.collections.Collection<A & Any .. A?>?
|
||||
KotlinStub$USER_TYPE ft: kotlin.collections.Collection<A .. A?>?
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
@@ -65,13 +65,8 @@ KotlinStub$CLASS[classId=test/TypeParametersInFlexibleTypes, fqName=test.TypePar
|
||||
KotlinStub$TYPE_ARGUMENT_LIST
|
||||
KotlinStub$TYPE_PROJECTION[projectionKind=NONE]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$INTERSECTION_TYPE
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: A?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=A]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=Any]
|
||||
KotlinStub$USER_TYPE ft: A?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=A]
|
||||
KotlinStub$PROPERTY[fqName=test.TypeParametersInFlexibleTypes.baz, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=baz]
|
||||
KotlinStub$MODIFIER_LIST[public final]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
@@ -95,10 +90,5 @@ KotlinStub$CLASS[classId=test/TypeParametersInFlexibleTypes, fqName=test.TypePar
|
||||
KotlinStub$MODIFIER_LIST[public final]
|
||||
KotlinStub$VALUE_PARAMETER_LIST
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$INTERSECTION_TYPE
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE ft: A?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=A]
|
||||
KotlinStub$TYPE_REFERENCE
|
||||
KotlinStub$USER_TYPE
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=Any]
|
||||
KotlinStub$USER_TYPE ft: A?
|
||||
KotlinStub$REFERENCE_EXPRESSION[referencedName=A]
|
||||
Vendored
+1
-1
@@ -2,5 +2,5 @@ FILE: [ResolvedTo(BODY_RESOLVE)] functionWithImplicitType.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] T> checkSubtype([ResolvedTo(BODY_RESOLVE)] t: R|T|): R|T| {
|
||||
^checkSubtype R|<local>/t|
|
||||
}
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val ab: R|kotlin/collections/List<kotlin/Int>?| = R|/checkSubtype|<R|kotlin/collections/List<kotlin/Int>?|>(Q|java/util/Collections|.R|java/util/Collections.emptyList|<R|kotlin/Int|>())
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val ab: R|kotlin/collections/List<kotlin/Int>?| = R|/checkSubtype|<R|kotlin/collections/List<kotlin/Int>?|>(Q|java/util/Collections|.R|java/util/Collections.emptyList|<R|kotlin/Int!|>())
|
||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/collections/List<kotlin/Int>?|
|
||||
|
||||
Reference in New Issue
Block a user