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:
Denis.Zharkov
2024-02-06 15:33:03 +01:00
committed by Space Team
parent 7fd46f1450
commit 81414d758d
160 changed files with 343 additions and 479 deletions
@@ -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,3 +1,4 @@
// FIR_IDENTICAL
/* Java interop */
// KNM_K2_IGNORE
@@ -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]