From 72b09ff32378788d0c3a4ca914053392418eb451 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 9 Jun 2020 16:04:02 +0300 Subject: [PATCH] FIR: Rename FirSuperTypeScope and reuse it for type parameter type It would allow ConeKotlinType.scope return FirTypeScope and thus pulling down org.jetbrains.kotlin.fir.scopes.FirScope#processOverriddenFunctions (See the following commits) --- .../kotlin/fir/java/JavaScopeProvider.kt | 4 +-- .../kotlin/fir/resolve/ScopeUtils.kt | 19 +++++++----- .../kotlin/fir/scopes/KotlinScopeProvider.kt | 4 +-- .../scopes/impl/FirIntegerLiteralTypeScope.kt | 22 ++++++++++---- ...peScope.kt => FirTypeIntersectionScope.kt} | 26 ++++++---------- .../casts/intersectionTypeMultipleBounds.kt | 3 +- .../conflictingReturnType.fir.kt | 2 +- .../flexibleTypes.fir.kt | 19 ------------ .../flexibleTypes.kt | 1 + .../mostSpecific.fir.kt | 13 -------- .../multipleBoundsMemberScope/mostSpecific.kt | 1 + .../properties.fir.kt | 6 ++-- .../propertiesConflict.fir.kt | 6 ++-- .../validTypeParameters.fir.kt | 13 -------- .../validTypeParameters.kt | 1 + .../javaProperties/KotlinOverridesJava.fir.kt | 4 +-- .../diagnostics/notLinked/dfa/pos/12.fir.kt | 30 +++++++++---------- .../diagnostics/notLinked/dfa/pos/13.fir.kt | 30 +++++++++---------- 18 files changed, 83 insertions(+), 121 deletions(-) rename compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/{FirSuperTypeScope.kt => FirTypeIntersectionScope.kt} (93%) delete mode 100644 compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.fir.kt delete mode 100644 compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.fir.kt delete mode 100644 compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.fir.kt diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt index 93b76f892d3..1b413bd12e0 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.fir.java.scopes.JavaClassEnhancementScope import org.jetbrains.kotlin.fir.java.scopes.JavaClassUseSiteMemberScope import org.jetbrains.kotlin.fir.java.scopes.JavaOverrideChecker import org.jetbrains.kotlin.fir.resolve.* -import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScopeProvider +import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.* import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol @@ -89,7 +89,7 @@ class JavaScopeProvider( } JavaClassUseSiteMemberScope( regularClass, useSiteSession, - FirSuperTypeScope.prepareOverrideAwareSupertypeScope( + FirTypeIntersectionScope.prepareIntersectionScope( useSiteSession, JavaOverrideChecker( useSiteSession, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt index f51642f321c..a21c3efe1c8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt @@ -6,19 +6,20 @@ package org.jetbrains.kotlin.fir.resolve import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap -import org.jetbrains.kotlin.fir.scopes.FirScope -import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope +import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.impl.FirIntegerLiteralTypeScope import org.jetbrains.kotlin.fir.scopes.impl.FirStandardOverrideChecker -import org.jetbrains.kotlin.fir.scopes.impl.FirSuperTypeScope +import org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope import org.jetbrains.kotlin.fir.scopes.scope import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl -fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { +fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope? { return when (this) { is ConeKotlinErrorType -> null is ConeClassLikeType -> { @@ -32,7 +33,9 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession) is ConeTypeParameterType -> { // TODO: support LibraryTypeParameterSymbol or get rid of it val fir = lookupTag.toSymbol().fir - FirCompositeScope( + FirTypeIntersectionScope.prepareIntersectionScope( + useSiteSession, + FirStandardOverrideChecker(useSiteSession), fir.bounds.mapNotNullTo(mutableListOf()) { it.coneTypeUnsafe().scope(useSiteSession, scopeSession) } @@ -40,7 +43,7 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession) } is ConeRawType -> lowerBound.scope(useSiteSession, scopeSession) is ConeFlexibleType -> lowerBound.scope(useSiteSession, scopeSession) - is ConeIntersectionType -> FirSuperTypeScope.prepareSupertypeScope( + is ConeIntersectionType -> FirTypeIntersectionScope.prepareIntersectionScope( useSiteSession, FirStandardOverrideChecker(useSiteSession), intersectedTypes.mapNotNullTo(mutableListOf()) { @@ -59,7 +62,7 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession) FirIntegerLiteralTypeScope.SCOPE_SESSION_KEY ) { FirIntegerLiteralTypeScope(useSiteSession, isUnsigned) - } as FirScope + } as FirTypeScope } else -> null } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/KotlinScopeProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/KotlinScopeProvider.kt index c0098eb8d2f..338fa48bbe5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/KotlinScopeProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/KotlinScopeProvider.kt @@ -61,7 +61,7 @@ class KotlinScopeProvider( } FirClassUseSiteMemberScope( useSiteSession, - FirSuperTypeScope.prepareOverrideAwareSupertypeScope( + FirTypeIntersectionScope.prepareIntersectionScope( useSiteSession, FirStandardOverrideChecker(useSiteSession), scopes ), decoratedDeclaredMemberScope @@ -100,7 +100,7 @@ internal fun FirClass<*>.scope( scopeSession: ScopeSession, skipPrivateMembers: Boolean, classId: ClassId? = this.classId -): FirScope { +): FirTypeScope { val basicScope = scopeProvider.getUseSiteMemberScope( this, useSiteSession, scopeSession ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt index a2e5e915178..04f01027b5c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerLiteralTypeScope.kt @@ -5,20 +5,25 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.descriptors.EffectiveVisibility import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.resolve.scopeSessionKey -import org.jetbrains.kotlin.fir.scopes.FirScope +import org.jetbrains.kotlin.fir.scopes.FirTypeScope +import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.CallableId -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.ConeIntegerLiteralType import org.jetbrains.kotlin.fir.types.ConeIntegerLiteralTypeImpl import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef @@ -29,7 +34,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.util.OperatorNameConventions -class FirIntegerLiteralTypeScope(private val session: FirSession, val isUnsigned: Boolean) : FirScope() { +class FirIntegerLiteralTypeScope(private val session: FirSession, val isUnsigned: Boolean) : FirTypeScope() { sealed class ILTKey { object Signed : ILTKey() object Unsigned : ILTKey() @@ -40,7 +45,7 @@ class FirIntegerLiteralTypeScope(private val session: FirSession, val isUnsigned val UNARY_OPERATOR_NAMES = FirIntegerOperator.Kind.values().filter { it.unary }.map { it.operatorName } private val ALL_OPERATORS = FirIntegerOperator.Kind.values().map { it.operatorName to it }.toMap() - val SCOPE_SESSION_KEY = scopeSessionKey() + val SCOPE_SESSION_KEY = scopeSessionKey() } private val BINARY_OPERATOR_SYMBOLS = BINARY_OPERATOR_NAMES.map { name -> @@ -90,6 +95,11 @@ class FirIntegerLiteralTypeScope(private val session: FirSession, val isUnsigned override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) { } + + override fun processOverriddenFunctions( + functionSymbol: FirFunctionSymbol<*>, + processor: (FirFunctionSymbol<*>) -> ProcessorAction + ): ProcessorAction = ProcessorAction.NEXT } @OptIn(FirImplementationDetail::class) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSuperTypeScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt similarity index 93% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSuperTypeScope.kt rename to compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt index ae7a250ab96..85efc7148cb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSuperTypeScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt @@ -11,9 +11,9 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor -import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker import org.jetbrains.kotlin.fir.scopes.FirScope +import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.ConeFlexibleType @@ -27,10 +27,10 @@ import org.jetbrains.kotlin.utils.addToStdlib.flattenTo import java.util.* import kotlin.collections.HashSet -class FirSuperTypeScope private constructor( +class FirTypeIntersectionScope private constructor( session: FirSession, overrideChecker: FirOverrideChecker, - private val scopes: List, + private val scopes: List, ) : AbstractFirOverrideScope(session, overrideChecker) { private val absentFunctions = mutableSetOf() @@ -253,22 +253,14 @@ class FirSuperTypeScope private constructor( } companion object { - fun prepareSupertypeScope( - session: FirSession, - overrideChecker: FirOverrideChecker, - scopes: List - ): FirScope { - scopes.singleOrNull()?.let { return it } - - return FirSuperTypeScope(session, overrideChecker, scopes) - } - - // This methods is needed just to preserve the possibility to move - // org.jetbrains.kotlin.fir.scopes.FirScope.processOverriddenFunctions to FirOverrideAwareScope - fun prepareOverrideAwareSupertypeScope( + fun prepareIntersectionScope( session: FirSession, overrideChecker: FirOverrideChecker, scopes: List - ): FirTypeScope = prepareSupertypeScope(session, overrideChecker, scopes) as FirTypeScope + ): FirTypeScope { + scopes.singleOrNull()?.let { return it } + + return FirTypeIntersectionScope(session, overrideChecker, scopes) + } } } diff --git a/compiler/testData/codegen/box/casts/intersectionTypeMultipleBounds.kt b/compiler/testData/codegen/box/casts/intersectionTypeMultipleBounds.kt index 4cc2b761bae..24d05d21812 100644 --- a/compiler/testData/codegen/box/casts/intersectionTypeMultipleBounds.kt +++ b/compiler/testData/codegen/box/casts/intersectionTypeMultipleBounds.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR interface A { fun foo(): Any? fun bar(): String @@ -20,4 +19,4 @@ class C : A, B { override fun bar() = "ok" } -fun box(): String = bar(C()) \ No newline at end of file +fun box(): String = bar(C()) diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/conflictingReturnType.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/conflictingReturnType.fir.kt index 21c273e3c1b..77df8bbf37d 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/conflictingReturnType.fir.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/conflictingReturnType.fir.kt @@ -9,5 +9,5 @@ interface B { } fun test(x: T) where T : B, T : A { - x.foo() + x.foo() } diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.fir.kt deleted file mode 100644 index 48dbfbe7bbc..00000000000 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.fir.kt +++ /dev/null @@ -1,19 +0,0 @@ -// !CHECK_TYPE -// FILE: A.java -public interface A { - String foo(); -} - -// FILE: main.kt - -interface B { - fun foo(): String? -} - -interface C { - fun foo(): String -} - -fun test(x: T) where T : B, T : A, T : C { - x.foo().checkType { _() } -} diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.kt index 275d06f6eac..2af2cb980e2 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/flexibleTypes.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !CHECK_TYPE // FILE: A.java public interface A { diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.fir.kt deleted file mode 100644 index 60fb0f2154b..00000000000 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.fir.kt +++ /dev/null @@ -1,13 +0,0 @@ -// !CHECK_TYPE - -interface A { - fun foo(): CharSequence? -} - -interface B { - fun foo(): String -} - -fun test(x: T) where T : B, T : A { - x.foo().checkType { _() } -} diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.kt index d636e50ce2c..2e45d3a0a51 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/mostSpecific.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !CHECK_TYPE interface A { diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/properties.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/properties.fir.kt index 24de5e835b9..d9160c9c5cf 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/properties.fir.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/properties.fir.kt @@ -12,8 +12,8 @@ interface B: A { } fun test(a: T) where T : B, T : C { - a.foo = "" - a.foo = null + a.foo = "" + a.foo = null - a.foo.checkType { _() } + a.foo.checkType { _() } } diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/propertiesConflict.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/propertiesConflict.fir.kt index a026254004d..08eb7ea9461 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/propertiesConflict.fir.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/propertiesConflict.fir.kt @@ -12,8 +12,8 @@ interface B: A { } fun test(a: T) where T : B, T : C { - a.foo = "" - a.foo = null + a.foo = "" + a.foo = null - a.foo.checkType { _() } + a.foo.checkType { _() } } diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.fir.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.fir.kt deleted file mode 100644 index dec6653fa20..00000000000 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.fir.kt +++ /dev/null @@ -1,13 +0,0 @@ -// !CHECK_TYPE - -interface A { - fun foo(): E -} - -interface B { - fun foo(): W -} - -fun test(x: T) where T : B, T : A { - x.foo().checkType { _() } -} diff --git a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.kt b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.kt index ecb4c6ac2c4..8df6d99eea7 100644 --- a/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.kt +++ b/compiler/testData/diagnostics/tests/generics/multipleBoundsMemberScope/validTypeParameters.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !CHECK_TYPE interface A { diff --git a/compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/KotlinOverridesJava.fir.kt b/compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/KotlinOverridesJava.fir.kt index 783f074519a..99d47ef1928 100644 --- a/compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/KotlinOverridesJava.fir.kt +++ b/compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/KotlinOverridesJava.fir.kt @@ -22,9 +22,9 @@ fun foo(k: KotlinClass) { useString(k.something3) k.setSomething4("") - k.something4 += "" + k.something4 += "" k.setSomething4(null) - k.something4 = null + k.something4 = null useString(k.getSomething5()) useString(k.something5) diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt index d6337c1d442..1bebdfc9a4f 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt @@ -3766,31 +3766,31 @@ class Case61_3: InterfaceWithTypeParameter1, Case61_1, Case61_2 { fun T.case_61() where T : InterfaceWithTypeParameter1?, T: Case61_3?, T: Case61_1?, T: Case61_2? { if (this != null) { - this.test1() - this.test2() - this.ip1test1() + this.test1() + this.test2() + this.ip1test1() this.test4() - test1() - test2() - ip1test1() + test1() + test2() + ip1test1() test4() apply { this - test1() - test2() - ip1test1() + test1() + test2() + ip1test1() test4() - this.test1() - this.test2() - this.ip1test1() + this.test1() + this.test2() + this.ip1test1() this.test4() } also { it - it.test1() - it.test2() - it.ip1test1() + it.test1() + it.test2() + it.ip1test1() it.test4() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt index 676803ccb62..856f27e7993 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt @@ -4305,31 +4305,31 @@ class Case61_3: InterfaceWithTypeParameter1, Case61_1, Case61_2 { fun T.case_61(x: T) where T : InterfaceWithTypeParameter1?, T: Case61_3?, T: Case61_1?, T: Case61_2? { if (x != null) { - x.ip1test1() - x.test2() - x.ip1test1() + x.ip1test1() + x.test2() + x.ip1test1() x.test4() - x.ip1test1() - x.test2() - x.ip1test1() + x.ip1test1() + x.test2() + x.ip1test1() x.test4() x.apply { this - ip1test1() - test2() - ip1test1() + ip1test1() + test2() + ip1test1() test4() - this.ip1test1() - this.test2() - this.ip1test1() + this.ip1test1() + this.test2() + this.ip1test1() this.test4() } x.also { it - it.ip1test1() - it.test2() - it.ip1test1() + it.ip1test1() + it.test2() + it.ip1test1() it.test4() } }