From a99578c354c00ef8cbce45c8011c1a7401966603 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 21 Mar 2018 13:11:56 +0300 Subject: [PATCH] FIR: handle unresolved modality as questionable --- .../kotlin/fir/builder/RawFirBuilder.kt | 4 ++-- .../src/org/jetbrains/kotlin/fir/FirRenderer.kt | 12 +++++++++++- .../fir/declarations/FirMemberDeclaration.kt | 2 +- .../kotlin/fir/declarations/FirResolvedClass.kt | 3 +++ .../fir/declarations/FirResolvedTypeAlias.kt | 3 +++ .../impl/FirAbstractCallableMember.kt | 2 +- .../impl/FirAbstractMemberDeclaration.kt | 2 +- .../kotlin/fir/declarations/impl/FirClassImpl.kt | 2 +- .../declarations/impl/FirMemberFunctionImpl.kt | 2 +- .../declarations/impl/FirMemberPropertyImpl.kt | 2 +- .../declarations/impl/FirResolvedClassImpl.kt | 5 +++++ .../impl/FirResolvedTypeAliasImpl.kt | 4 ++++ .../testData/fir/rawBuilder/declarations/F.txt | 2 +- .../declarations/NestedOfAliasedType.txt | 4 ++-- .../rawBuilder/declarations/NestedSuperType.txt | 4 ++-- .../fir/rawBuilder/declarations/complexTypes.txt | 8 ++++---- .../fir/rawBuilder/declarations/derivedClass.txt | 4 ++-- .../fir/rawBuilder/declarations/enums.txt | 16 ++++++++-------- .../fir/rawBuilder/declarations/enums2.txt | 12 ++++++------ .../rawBuilder/declarations/functionTypes.txt | 6 +++--- .../rawBuilder/declarations/genericFunctions.txt | 4 ++-- .../fir/rawBuilder/declarations/nestedClass.txt | 6 +++--- .../fir/rawBuilder/declarations/simpleClass.txt | 16 ++++++++-------- .../fir/rawBuilder/declarations/simpleFun.txt | 2 +- .../rawBuilder/declarations/simpleTypeAlias.txt | 4 ++-- .../declarations/typeAliasWithGeneric.txt | 4 ++-- .../declarations/typeParameterVsNested.txt | 6 +++--- .../rawBuilder/declarations/typeParameters.txt | 12 ++++++------ .../testData/fir/resolve/NestedOfAliasedType.txt | 2 +- .../testData/fir/resolve/NestedSuperType.txt | 2 +- .../fir/resolve/multifile/NestedSuperType.txt | 4 ++-- compiler/testData/fir/resolve/simpleClass.txt | 14 +++++++------- .../testData/fir/resolve/simpleTypeAlias.txt | 2 +- 33 files changed, 101 insertions(+), 76 deletions(-) diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 9e97a91e141..8a1efe20d50 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -45,7 +45,7 @@ class RawFirBuilder(val session: FirSession) { } } - private val KtDeclaration.modality: Modality + private val KtDeclaration.modality: Modality? get() { val modifierType = modalityModifierType() return when (modifierType) { @@ -53,7 +53,7 @@ class RawFirBuilder(val session: FirSession) { KtTokens.SEALED_KEYWORD -> Modality.SEALED KtTokens.ABSTRACT_KEYWORD -> Modality.ABSTRACT KtTokens.OPEN_KEYWORD -> Modality.OPEN - else -> Modality.FINAL // FIX ME + else -> null } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index e67315d336b..9ae8a2ae527 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -106,6 +106,16 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() { else -> toString() } + private fun FirMemberDeclaration.modalityAsString(): String { + return modality?.name?.toLowerCase() ?: run { + if (this is FirCallableMember && this.isOverride) { + "open?" + } else { + "final?" + } + } + } + override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration) { memberDeclaration.annotations.renderAnnotations() if (memberDeclaration.typeParameters.isNotEmpty()) { @@ -113,7 +123,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() { memberDeclaration.typeParameters.renderSeparated() print("> ") } - print(memberDeclaration.visibility.asString() + " " + memberDeclaration.modality.name.toLowerCase() + " ") + print(memberDeclaration.visibility.asString() + " " + memberDeclaration.modalityAsString() + " ") if (memberDeclaration is FirCallableMember && memberDeclaration.isOverride) { print("override ") } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt index bdfae6d0fc6..4521ba2a042 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor interface FirMemberDeclaration : FirTypeParameterContainer, FirNamedDeclaration, FirAnnotationContainer { val visibility: Visibility - val modality: Modality + val modality: Modality? override fun accept(visitor: FirVisitor, data: D): R = visitor.visitMemberDeclaration(this, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedClass.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedClass.kt index 65024595329..3ebfe13ea98 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedClass.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedClass.kt @@ -5,10 +5,13 @@ package org.jetbrains.kotlin.fir.declarations +import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirDescriptorOwner import org.jetbrains.kotlin.fir.visitors.FirVisitor interface FirResolvedClass : FirClass, FirDescriptorOwner { + override val modality: Modality + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedClass(this, data) } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedTypeAlias.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedTypeAlias.kt index 95d7f7dea07..2e65c2ef77c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedTypeAlias.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedTypeAlias.kt @@ -5,10 +5,13 @@ package org.jetbrains.kotlin.fir.declarations +import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirDescriptorOwner import org.jetbrains.kotlin.fir.visitors.FirVisitor interface FirResolvedTypeAlias : FirTypeAlias, FirDescriptorOwner { + override val modality: Modality + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedTypeAlias(this, data) } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractCallableMember.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractCallableMember.kt index fb4b44daa0f..dc51b4a9667 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractCallableMember.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractCallableMember.kt @@ -21,7 +21,7 @@ abstract class FirAbstractCallableMember( psi: PsiElement?, name: Name, visibility: Visibility, - modality: Modality, + modality: Modality?, final override val isOverride: Boolean, final override var receiverType: FirType?, final override var returnType: FirType diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractMemberDeclaration.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractMemberDeclaration.kt index da233832a0b..ac47ff33605 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractMemberDeclaration.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAbstractMemberDeclaration.kt @@ -18,7 +18,7 @@ abstract class FirAbstractMemberDeclaration( psi: PsiElement?, name: Name, final override val visibility: Visibility, - final override val modality: Modality + final override val modality: Modality? ) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirMemberDeclaration { final override val typeParameters = mutableListOf() } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt index f266c71c7e8..850156fb9f6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt @@ -22,7 +22,7 @@ open class FirClassImpl( psi: PsiElement?, name: Name, visibility: Visibility, - modality: Modality, + modality: Modality?, final override val classKind: ClassKind, final override val isInner: Boolean, final override val isCompanion: Boolean, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberFunctionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberFunctionImpl.kt index ee7d3302590..7e2c7f64436 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberFunctionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberFunctionImpl.kt @@ -23,7 +23,7 @@ class FirMemberFunctionImpl( psi: PsiElement?, name: Name, visibility: Visibility, - modality: Modality, + modality: Modality?, isOverride: Boolean, override val isOperator: Boolean, override val isInfix: Boolean, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberPropertyImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberPropertyImpl.kt index ea9fe18bdb6..0e7d06e74d1 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberPropertyImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirMemberPropertyImpl.kt @@ -23,7 +23,7 @@ class FirMemberPropertyImpl( psi: PsiElement?, name: Name, visibility: Visibility, - modality: Modality, + modality: Modality?, isOverride: Boolean, override val isConst: Boolean, receiverType: FirType?, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedClassImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedClassImpl.kt index 101892abeac..a598c544f52 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedClassImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedClassImpl.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.fir.declarations.impl +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirBasedDescriptor import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirResolvedClass @@ -17,6 +19,9 @@ class FirResolvedClassImpl(val delegate: FirClass, override val descriptor: FirB descriptor.bind(this) } + override val modality: Modality + get() = delegate.modality ?: if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL + override fun accept(visitor: FirVisitor, data: D): R { return super.accept(visitor, data) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedTypeAliasImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedTypeAliasImpl.kt index 8a6add0bc85..7664e35d75f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedTypeAliasImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedTypeAliasImpl.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.declarations.impl +import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirBasedDescriptor import org.jetbrains.kotlin.fir.declarations.FirResolvedTypeAlias import org.jetbrains.kotlin.fir.declarations.FirTypeAlias @@ -13,6 +14,9 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor class FirResolvedTypeAliasImpl(val delegate: FirTypeAlias, override val descriptor: FirBasedDescriptor) : FirResolvedTypeAlias, FirTypeAlias by delegate { + override val modality: Modality + get() = delegate.modality ?: Modality.FINAL + init { descriptor.bind(this) } diff --git a/compiler/testData/fir/rawBuilder/declarations/F.txt b/compiler/testData/fir/rawBuilder/declarations/F.txt index 30143e6164a..06ba4f52f3e 100644 --- a/compiler/testData/fir/rawBuilder/declarations/F.txt +++ b/compiler/testData/fir/rawBuilder/declarations/F.txt @@ -1,5 +1,5 @@ FILE: F.kt public? open class A() { } - public? final class B() : A { + public? final? class B() : A { } diff --git a/compiler/testData/fir/rawBuilder/declarations/NestedOfAliasedType.txt b/compiler/testData/fir/rawBuilder/declarations/NestedOfAliasedType.txt index 3e0ec055264..fd797732fbf 100644 --- a/compiler/testData/fir/rawBuilder/declarations/NestedOfAliasedType.txt +++ b/compiler/testData/fir/rawBuilder/declarations/NestedOfAliasedType.txt @@ -5,8 +5,8 @@ FILE: NestedOfAliasedType.kt } public? final typealias TA = A - public? final class B() : TA { - public? final class NestedInB() : Nested { + public? final? class B() : TA { + public? final? class NestedInB() : Nested { } } diff --git a/compiler/testData/fir/rawBuilder/declarations/NestedSuperType.txt b/compiler/testData/fir/rawBuilder/declarations/NestedSuperType.txt index 0c91eb38958..9e55929fca7 100644 --- a/compiler/testData/fir/rawBuilder/declarations/NestedSuperType.txt +++ b/compiler/testData/fir/rawBuilder/declarations/NestedSuperType.txt @@ -7,8 +7,8 @@ FILE: NestedSuperType.kt } } - public? final class Your() : My { - public? final class NestedThree() : NestedOne { + public? final? class Your() : My { + public? final? class NestedThree() : NestedOne { } } diff --git a/compiler/testData/fir/rawBuilder/declarations/complexTypes.txt b/compiler/testData/fir/rawBuilder/declarations/complexTypes.txt index 3d5dee9339b..ba2c91b12af 100644 --- a/compiler/testData/fir/rawBuilder/declarations/complexTypes.txt +++ b/compiler/testData/fir/rawBuilder/declarations/complexTypes.txt @@ -1,11 +1,11 @@ FILE: complexTypes.kt - public? final class C() { - public? final class D(inner) { + public? final? class C() { + public? final? class D(inner) { } } - public? final interface Test() { - public? final property x(val): a.b.C.D, *> + public? final? interface Test() { + public? final? property x(val): a.b.C.D, *> public? get(): a.b.C.D, *> } diff --git a/compiler/testData/fir/rawBuilder/declarations/derivedClass.txt b/compiler/testData/fir/rawBuilder/declarations/derivedClass.txt index 2c464f20c50..b984dbefd10 100644 --- a/compiler/testData/fir/rawBuilder/declarations/derivedClass.txt +++ b/compiler/testData/fir/rawBuilder/declarations/derivedClass.txt @@ -3,10 +3,10 @@ FILE: derivedClass.kt public? constructor(x: T) } - public? final class Derived() : Base { + public? final? class Derived() : Base { public? constructor(x: T)STUB } - public? final function create(x: T): Derived { + public? final? function create(x: T): Derived { STUB } diff --git a/compiler/testData/fir/rawBuilder/declarations/enums.txt b/compiler/testData/fir/rawBuilder/declarations/enums.txt index c7e7086593c..25cf5c23b74 100644 --- a/compiler/testData/fir/rawBuilder/declarations/enums.txt +++ b/compiler/testData/fir/rawBuilder/declarations/enums.txt @@ -1,5 +1,5 @@ FILE: enums.kt - public? final enum class Order() { + public? final? enum class Order() { public? final enum entry FIRST() { } @@ -10,34 +10,34 @@ FILE: enums.kt } } - public? final enum class Planet() { + public? final? enum class Planet() { public? constructor(m: Double, r: Double) public? final enum entry MERCURY() : Planet { - public? final override function sayHello(): { + public? open? override function sayHello(): { } } public? final enum entry VENERA() : Planet { - public? final override function sayHello(): { + public? open? override function sayHello(): { } } public? final enum entry EARTH() : Planet { - public? final override function sayHello(): { + public? open? override function sayHello(): { } } - public? final property g(val): Double = STUB + public? final? property g(val): Double = STUB public? get(): Double public? abstract function sayHello(): - public? final object Companion(companion) { - public? final const property G(val): = STUB + public? final? object Companion(companion) { + public? final? const property G(val): = STUB public? get(): } diff --git a/compiler/testData/fir/rawBuilder/declarations/enums2.txt b/compiler/testData/fir/rawBuilder/declarations/enums2.txt index 780b0fd40b8..96872380478 100644 --- a/compiler/testData/fir/rawBuilder/declarations/enums2.txt +++ b/compiler/testData/fir/rawBuilder/declarations/enums2.txt @@ -1,22 +1,22 @@ FILE: enums2.kt - public? final interface Some() { + public? final? interface Some() { } - public? final object O1() : Some { + public? final? object O1() : Some { } - public? final object O2() : Some { + public? final? object O2() : Some { } - public? final enum class SomeEnum() { + public? final? enum class SomeEnum() { public? constructor(x: Some) public? final enum entry FIRST() : SomeEnum { - public? final override function check(y: Some): Boolean { + public? open? override function check(y: Some): Boolean { STUB } } public? final enum entry SECOND() : SomeEnum { - public? final override function check(y: Some): Boolean { + public? open? override function check(y: Some): Boolean { STUB } diff --git a/compiler/testData/fir/rawBuilder/declarations/functionTypes.txt b/compiler/testData/fir/rawBuilder/declarations/functionTypes.txt index ddaa3f01c7a..7724d145f5b 100644 --- a/compiler/testData/fir/rawBuilder/declarations/functionTypes.txt +++ b/compiler/testData/fir/rawBuilder/declarations/functionTypes.txt @@ -1,9 +1,9 @@ FILE: functionTypes.kt - public? final function simpleRun(f: ( (: T): Unit )): Unit { + public? final? function simpleRun(f: ( (: T): Unit )): Unit { STUB } - public? final function simpleMapList.(f: ( (: T): R )): R { + public? final? function simpleMapList.(f: ( (: T): R )): R { } - public? final function simpleWith(t: T, f: ( T.(): Unit )): Unit { + public? final? function simpleWith(t: T, f: ( T.(): Unit )): Unit { STUB } diff --git a/compiler/testData/fir/rawBuilder/declarations/genericFunctions.txt b/compiler/testData/fir/rawBuilder/declarations/genericFunctions.txt index a70e7d8e334..909b4c05547 100644 --- a/compiler/testData/fir/rawBuilder/declarations/genericFunctions.txt +++ b/compiler/testData/fir/rawBuilder/declarations/genericFunctions.txt @@ -1,7 +1,7 @@ FILE: genericFunctions.kt - public? final interface Any() { + public? final? interface Any() { } - public? final inline function safeAsAny.(): T? { + public? final? inline function safeAsAny.(): T? { STUB } public? abstract class Summator() { diff --git a/compiler/testData/fir/rawBuilder/declarations/nestedClass.txt b/compiler/testData/fir/rawBuilder/declarations/nestedClass.txt index 801754239e9..c94e3145b97 100644 --- a/compiler/testData/fir/rawBuilder/declarations/nestedClass.txt +++ b/compiler/testData/fir/rawBuilder/declarations/nestedClass.txt @@ -3,13 +3,13 @@ FILE: nestedClass.kt public? constructor(s: String) } - public? final class Outer() { - public? final class Derived() : Base { + public? final? class Outer() { + public? final? class Derived() : Base { public? constructor(s: String)STUB } - public? final object Obj() : Base { + public? final? object Obj() : Base { } } diff --git a/compiler/testData/fir/rawBuilder/declarations/simpleClass.txt b/compiler/testData/fir/rawBuilder/declarations/simpleClass.txt index 6dab3348747..7e0fc7ed641 100644 --- a/compiler/testData/fir/rawBuilder/declarations/simpleClass.txt +++ b/compiler/testData/fir/rawBuilder/declarations/simpleClass.txt @@ -1,26 +1,26 @@ FILE: simpleClass.kt - public? final interface SomeInterface() { - public? final function foo(x: Int, y: String): String + public? final? interface SomeInterface() { + public? final? function foo(x: Int, y: String): String - public? final property bar(val): Boolean + public? final? property bar(val): Boolean public? get(): Boolean } - public? final class SomeClass() : SomeInterface { - private final property baz(val): = STUB + public? final? class SomeClass() : SomeInterface { + private final? property baz(val): = STUB public? get(): - public? final override function foo(x: Int, y: String): String { + public? open? override function foo(x: Int, y: String): String { } - public? final override property bar(var): Boolean + public? open? override property bar(var): Boolean public? get(): { STUB } public? set(value: Boolean): { } - public? final property fau(var): Double + public? final? property fau(var): Double public? get(): Double public? set(value: Double): R/kotlin.Unit/ diff --git a/compiler/testData/fir/rawBuilder/declarations/simpleFun.txt b/compiler/testData/fir/rawBuilder/declarations/simpleFun.txt index 6baf97e4021..03b21587eef 100644 --- a/compiler/testData/fir/rawBuilder/declarations/simpleFun.txt +++ b/compiler/testData/fir/rawBuilder/declarations/simpleFun.txt @@ -1,3 +1,3 @@ FILE: simpleFun.kt - public? final function foo(): { + public? final? function foo(): { } diff --git a/compiler/testData/fir/rawBuilder/declarations/simpleTypeAlias.txt b/compiler/testData/fir/rawBuilder/declarations/simpleTypeAlias.txt index 092c1c9a097..cc32e8c96a3 100644 --- a/compiler/testData/fir/rawBuilder/declarations/simpleTypeAlias.txt +++ b/compiler/testData/fir/rawBuilder/declarations/simpleTypeAlias.txt @@ -1,6 +1,6 @@ FILE: simpleTypeAlias.kt - public? final interface B() { + public? final? interface B() { } public? final typealias C = B - public? final class D() : C { + public? final? class D() : C { } diff --git a/compiler/testData/fir/rawBuilder/declarations/typeAliasWithGeneric.txt b/compiler/testData/fir/rawBuilder/declarations/typeAliasWithGeneric.txt index d69a2d6dfeb..cc6bd819142 100644 --- a/compiler/testData/fir/rawBuilder/declarations/typeAliasWithGeneric.txt +++ b/compiler/testData/fir/rawBuilder/declarations/typeAliasWithGeneric.txt @@ -1,8 +1,8 @@ FILE: typeAliasWithGeneric.kt public? open class A() { } - public? final interface B() { + public? final? interface B() { } public? final typealias C = B - public? final class D() : C { + public? final? class D() : C { } diff --git a/compiler/testData/fir/rawBuilder/declarations/typeParameterVsNested.txt b/compiler/testData/fir/rawBuilder/declarations/typeParameterVsNested.txt index e6144f07438..ef6e4f21622 100644 --- a/compiler/testData/fir/rawBuilder/declarations/typeParameterVsNested.txt +++ b/compiler/testData/fir/rawBuilder/declarations/typeParameterVsNested.txt @@ -1,8 +1,8 @@ FILE: typeParameterVsNested.kt - public? final interface Some() { + public? final? interface Some() { } public? abstract class My() { - public? final class T(inner) { + public? final? class T(inner) { } public? abstract property x(val): T @@ -16,7 +16,7 @@ FILE: typeParameterVsNested.kt public? abstract property z(val): test.My.T public? get(): test.My.T - public? final class Some() : T { + public? final? class Some() : T { } } diff --git a/compiler/testData/fir/rawBuilder/declarations/typeParameters.txt b/compiler/testData/fir/rawBuilder/declarations/typeParameters.txt index 026fdee2a79..6b5672752c4 100644 --- a/compiler/testData/fir/rawBuilder/declarations/typeParameters.txt +++ b/compiler/testData/fir/rawBuilder/declarations/typeParameters.txt @@ -1,20 +1,20 @@ FILE: typeParameters.kt - public? final interface List() { - public? final operator function get(index: Int): T + public? final? interface List() { + public? final? operator function get(index: Int): T - public? final infix function concat(other: List): List + public? final? infix function concat(other: List): List } public? final typealias StringList = List public? final typealias AnyList = List<*> public? abstract class AbstractList() : List { } - public? final class SomeList() : AbstractList { - public? final override function get(index: Int): Int { + public? final? class SomeList() : AbstractList { + public? open? override function get(index: Int): Int { STUB } - public? final override function concat(other: List): List { + public? open? override function concat(other: List): List { STUB } diff --git a/compiler/testData/fir/resolve/NestedOfAliasedType.txt b/compiler/testData/fir/resolve/NestedOfAliasedType.txt index 9d7853c3e98..5338f57d0b0 100644 --- a/compiler/testData/fir/resolve/NestedOfAliasedType.txt +++ b/compiler/testData/fir/resolve/NestedOfAliasedType.txt @@ -6,7 +6,7 @@ FILE: NestedOfAliasedType.kt } (resolved) public? final typealias TA = R/.A/ (resolved) public? final class B() : R/.TA = .A/ { - public? final class NestedInB() : R/.A.Nested/ { + public? final? class NestedInB() : R/.A.Nested/ { } } diff --git a/compiler/testData/fir/resolve/NestedSuperType.txt b/compiler/testData/fir/resolve/NestedSuperType.txt index 06ef67e622c..b6894af8aad 100644 --- a/compiler/testData/fir/resolve/NestedSuperType.txt +++ b/compiler/testData/fir/resolve/NestedSuperType.txt @@ -8,7 +8,7 @@ FILE: NestedSuperType.kt } (resolved) public? final class Your() : R/p.My/ { - public? final class NestedThree() : R/p.My.NestedOne/ { + public? final? class NestedThree() : R/p.My.NestedOne/ { } } diff --git a/compiler/testData/fir/resolve/multifile/NestedSuperType.txt b/compiler/testData/fir/resolve/multifile/NestedSuperType.txt index 9742e83f54b..bc4eb4b1674 100644 --- a/compiler/testData/fir/resolve/multifile/NestedSuperType.txt +++ b/compiler/testData/fir/resolve/multifile/NestedSuperType.txt @@ -1,9 +1,9 @@ FILE: NestedSuperType.kt (resolved) public? final class A() : R/b.B/ { - public? final class NestedInA1() : R/b.B.NestedInB/ { + public? final? class NestedInA1() : R/b.B.NestedInB/ { } - public? final class NestedInA2() : R/c.C.NestedInC/ { + public? final? class NestedInA2() : R/c.C.NestedInC/ { } } diff --git a/compiler/testData/fir/resolve/simpleClass.txt b/compiler/testData/fir/resolve/simpleClass.txt index 631cce28a29..a303fc1a7bb 100644 --- a/compiler/testData/fir/resolve/simpleClass.txt +++ b/compiler/testData/fir/resolve/simpleClass.txt @@ -1,26 +1,26 @@ FILE: simpleClass.kt - (resolved) public? final interface SomeInterface() { - public? final function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/ + (resolved) public? abstract interface SomeInterface() { + public? final? function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/ - public? final property bar(val): R/error: Failed to resolve qualified type/ + public? final? property bar(val): R/error: Failed to resolve qualified type/ public? get(): R/error: Failed to resolve qualified type/ } (resolved) public? final class SomeClass() : R/.SomeInterface/ { - private final property baz(val): R/error: Not supported: FirImplicitTypeImpl/ = STUB + private final? property baz(val): R/error: Not supported: FirImplicitTypeImpl/ = STUB public? get(): R/error: Not supported: FirImplicitTypeImpl/ - public? final override function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/ { + public? open? override function foo(x: R/error: Failed to resolve qualified type/, y: R/error: Failed to resolve qualified type/): R/error: Failed to resolve qualified type/ { } - public? final override property bar(var): R/error: Failed to resolve qualified type/ + public? open? override property bar(var): R/error: Failed to resolve qualified type/ public? get(): R/error: Not supported: FirImplicitTypeImpl/ { STUB } public? set(value: R/error: Failed to resolve qualified type/): R/error: Not supported: FirImplicitTypeImpl/ { } - public? final property fau(var): R/error: Failed to resolve qualified type/ + public? final? property fau(var): R/error: Failed to resolve qualified type/ public? get(): R/error: Failed to resolve qualified type/ public? set(value: R/error: Failed to resolve qualified type/): R/kotlin.Unit/ diff --git a/compiler/testData/fir/resolve/simpleTypeAlias.txt b/compiler/testData/fir/resolve/simpleTypeAlias.txt index 4071d40a18b..4ce5113dcd4 100644 --- a/compiler/testData/fir/resolve/simpleTypeAlias.txt +++ b/compiler/testData/fir/resolve/simpleTypeAlias.txt @@ -1,5 +1,5 @@ FILE: simpleTypeAlias.kt - (resolved) public? final interface B() { + (resolved) public? abstract interface B() { } (resolved) public? final typealias C = R/.B/ (resolved) public? final class D() : R/.C = .B/ {