[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");
|
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")
|
@TestMetadata("noParameterForName.kt")
|
||||||
public void testNoParameterForName() throws Exception {
|
public void testNoParameterForName() throws Exception {
|
||||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/noParameterForName.kt");
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("noParameterForName.kt")
|
@TestMetadata("noParameterForName.kt")
|
||||||
public void testNoParameterForName() throws Exception {
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("noParameterForName.kt")
|
@TestMetadata("noParameterForName.kt")
|
||||||
public void testNoParameterForName() throws Exception {
|
public void testNoParameterForName() throws Exception {
|
||||||
|
|||||||
+7
-5
@@ -38,11 +38,13 @@ private class FirDeclarationsResolveTransformerForArgumentAnnotations(
|
|||||||
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): FirStatement {
|
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): FirStatement {
|
||||||
regularClass.transformAnnotations(this, data)
|
regularClass.transformAnnotations(this, data)
|
||||||
context.withContainingClass(regularClass) {
|
context.withContainingClass(regularClass) {
|
||||||
regularClass
|
context.withRegularClass(regularClass, components) {
|
||||||
.transformTypeParameters(transformer, data)
|
regularClass
|
||||||
.transformSuperTypeRefs(transformer, data)
|
.transformTypeParameters(transformer, data)
|
||||||
.transformDeclarations(transformer, data)
|
.transformSuperTypeRefs(transformer, data)
|
||||||
.transformCompanionObject(transformer, data)
|
.transformDeclarations(transformer, data)
|
||||||
|
.transformCompanionObject(transformer, data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return regularClass
|
return regularClass
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -731,6 +731,12 @@ public class DiagnosisCompilerFirTestdataTestGenerated extends AbstractDiagnosis
|
|||||||
runTest("compiler/fir/analysis-tests/testData/resolve/arguments/namedArrayInAnnotation.kt");
|
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
|
@Test
|
||||||
@TestMetadata("noParameterForName.kt")
|
@TestMetadata("noParameterForName.kt")
|
||||||
public void testNoParameterForName() throws Exception {
|
public void testNoParameterForName() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user