[compiler] introduce dedicated Fir declaration for dangling modifier lists (KTIJ-23008)

ensure fir annotations are included in FirDanglingModifierList and resolved,
dedicated DanglingTopLevelModifierListStructureElement exists for top
level lists only, class level lists are processed by containing structure
element
This commit is contained in:
Anna Kozlova
2022-11-18 18:12:58 +01:00
committed by teamcity
parent d788adcbb5
commit 15b1e429d7
70 changed files with 895 additions and 48 deletions
@@ -1,22 +0,0 @@
annotation class Ann
annotation class Ann2
class C {
fun foo() {
class Local {
@Ann0
@Ann @Ann3
@Ann2(1)
@Ann4<!SYNTAX!><!>
}
}
@Ann0
@Ann @Ann3
@Ann2(1)
@Ann4<!SYNTAX!><!>
}
@Ann0
@Ann @Ann3
@Ann2(1)
@Ann4<!SYNTAX!><!>
@@ -1,6 +1,7 @@
// FIR_IDENTICAL
annotation class Ann
annotation class Ann2
interface I {}
class C {
fun foo() {
class Local {
@@ -9,6 +10,12 @@ class C {
@Ann2(<!TOO_MANY_ARGUMENTS!>1<!>)
@<!UNRESOLVED_REFERENCE!>Ann4<!><!SYNTAX!><!>
}
val i = object : I {
@<!UNRESOLVED_REFERENCE!>Ann0<!>
@Ann @<!UNRESOLVED_REFERENCE!>Ann3<!>
@Ann2(<!TOO_MANY_ARGUMENTS!>1<!>)
@<!UNRESOLVED_REFERENCE!>Ann4<!><!SYNTAX!><!>
}
}
@<!UNRESOLVED_REFERENCE!>Ann0<!>
@Ann @<!UNRESOLVED_REFERENCE!>Ann3<!>
@@ -21,3 +21,10 @@ public final class C {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface I {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}