[FIR] Properly create class scopes while resolving of annotations arguments
This commit is contained in:
committed by
teamcityserver
parent
4c58954967
commit
60195114c1
+5
@@ -621,6 +621,11 @@ public class LazyBodyIsNotTouchedTilContractsPhaseTestGenerated extends Abstract
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/namedArrayInAnnotation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nestedClassInAnnotationArgument.kt")
|
||||
public void testNestedClassInAnnotationArgument() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/nestedClassInAnnotationArgument.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("noParameterForName.kt")
|
||||
public void testNoParameterForName() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/noParameterForName.kt");
|
||||
|
||||
Vendored
+26
@@ -0,0 +1,26 @@
|
||||
FILE: nestedClassInAnnotationArgument.kt
|
||||
public final annotation class Ann : R|kotlin/Annotation| {
|
||||
public constructor(kClass: R|kotlin/reflect/KClass<*>|): R|Ann| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val kClass: R|kotlin/reflect/KClass<*>| = R|<local>/kClass|
|
||||
public get(): R|kotlin/reflect/KClass<*>|
|
||||
|
||||
}
|
||||
public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@R|Ann|(<getClass>(Q|A.EmptyList|)) public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public final object EmptyList : R|kotlin/Any| {
|
||||
private constructor(): R|A.EmptyList| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class Ann(val kClass: KClass<*>)
|
||||
|
||||
class A {
|
||||
@Ann(EmptyList::class)
|
||||
fun foo() {}
|
||||
|
||||
object EmptyList
|
||||
}
|
||||
+6
@@ -731,6 +731,12 @@ public class FirDiagnosticTestGenerated extends AbstractFirDiagnosticTest {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/namedArrayInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nestedClassInAnnotationArgument.kt")
|
||||
public void testNestedClassInAnnotationArgument() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/nestedClassInAnnotationArgument.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("noParameterForName.kt")
|
||||
public void testNoParameterForName() throws Exception {
|
||||
|
||||
+6
@@ -731,6 +731,12 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/namedArrayInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nestedClassInAnnotationArgument.kt")
|
||||
public void testNestedClassInAnnotationArgument() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/nestedClassInAnnotationArgument.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("noParameterForName.kt")
|
||||
public void testNoParameterForName() throws Exception {
|
||||
|
||||
+7
-5
@@ -38,11 +38,13 @@ private class FirDeclarationsResolveTransformerForArgumentAnnotations(
|
||||
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): FirStatement {
|
||||
regularClass.transformAnnotations(this, data)
|
||||
context.withContainingClass(regularClass) {
|
||||
regularClass
|
||||
.transformTypeParameters(transformer, data)
|
||||
.transformSuperTypeRefs(transformer, data)
|
||||
.transformDeclarations(transformer, data)
|
||||
.transformCompanionObject(transformer, data)
|
||||
context.withRegularClass(regularClass, components) {
|
||||
regularClass
|
||||
.transformTypeParameters(transformer, data)
|
||||
.transformSuperTypeRefs(transformer, data)
|
||||
.transformDeclarations(transformer, data)
|
||||
.transformCompanionObject(transformer, data)
|
||||
}
|
||||
}
|
||||
return regularClass
|
||||
}
|
||||
|
||||
+6
@@ -731,6 +731,12 @@ public class DiagnosisCompilerFirTestdataTestGenerated extends AbstractDiagnosis
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/namedArrayInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nestedClassInAnnotationArgument.kt")
|
||||
public void testNestedClassInAnnotationArgument() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/nestedClassInAnnotationArgument.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("noParameterForName.kt")
|
||||
public void testNoParameterForName() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user