[LL FIR] add tests for nested class as annotation argument
^KT-62587
This commit is contained in:
committed by
Space Team
parent
5298d79dec
commit
bbd09c6272
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
// FIR_IDENTICAL
|
||||
annotation class Anno(val number: Int)
|
||||
|
||||
class Outer {
|
||||
companion object {
|
||||
const val CONSTANT_FROM_COMPANION = 42
|
||||
|
||||
@Anno(CONSTANT_FROM_COMPANION)
|
||||
class Nested
|
||||
}
|
||||
}
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// LL_FIR_DIVERGENCE
|
||||
// KT-62587
|
||||
// LL_FIR_DIVERGENCE
|
||||
// FIR_IDENTICAL
|
||||
annotation class Anno(val number: Int)
|
||||
|
||||
class Outer {
|
||||
companion object {
|
||||
const val CONSTANT_FROM_COMPANION = 42
|
||||
|
||||
@Anno(<!UNRESOLVED_REFERENCE!>CONSTANT_FROM_COMPANION<!>)
|
||||
class Nested
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(Nested::class)
|
||||
class Nested<@Special(Nested::class) T> : @Special(Nested::class) Interface
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// LL_FIR_DIVERGENCE
|
||||
// KT-62587
|
||||
// LL_FIR_DIVERGENCE
|
||||
// FIR_IDENTICAL
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>Nested<!>::class<!>)
|
||||
class Nested<@Special(Nested::class) T> : @Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>Nested<!>::class<!>) Interface
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ARGUMENT_TYPE_MISMATCH, NO_COMPANION_OBJECT!>Nested<!>)
|
||||
class Nested<@Special(<!ARGUMENT_TYPE_MISMATCH, NO_COMPANION_OBJECT!>Nested<!>) T> : @Special(<!ARGUMENT_TYPE_MISMATCH, NO_COMPANION_OBJECT!>Nested<!>) Interface
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!NO_COMPANION_OBJECT!>Nested<!>)
|
||||
class Nested<@Special(<!NO_COMPANION_OBJECT!>Nested<!>) T> : @Special(<!NO_COMPANION_OBJECT!>Nested<!>) Interface
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// LL_FIR_DIVERGENCE
|
||||
// KT-62587
|
||||
// LL_FIR_DIVERGENCE
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!UNRESOLVED_REFERENCE!>Nested<!>)
|
||||
class Nested<@Special(<!ARGUMENT_TYPE_MISMATCH, NO_COMPANION_OBJECT!>Nested<!>) T> : @Special(<!UNRESOLVED_REFERENCE!>Nested<!>) Interface
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
object Outer {
|
||||
@Special(Nested::class)
|
||||
object Nested : @Special(Nested::class) Interface
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// LL_FIR_DIVERGENCE
|
||||
// KT-62587
|
||||
// LL_FIR_DIVERGENCE
|
||||
// FIR_IDENTICAL
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
object Outer {
|
||||
@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>Nested<!>::class<!>)
|
||||
object Nested : @Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>Nested<!>::class<!>) Interface
|
||||
}
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(Outer.Nested::class)
|
||||
class Nested<@Special(Outer.Nested::class) T> : @Special(Outer.Nested::class) Interface
|
||||
}
|
||||
compiler/testData/diagnostics/tests/annotations/qualifiedNestedClassAsIsAsAnnotationParameter.fir.kt
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ARGUMENT_TYPE_MISMATCH!>Outer.<!NO_COMPANION_OBJECT!>Nested<!><!>)
|
||||
class Nested<@Special(<!ARGUMENT_TYPE_MISMATCH!>Outer.<!NO_COMPANION_OBJECT!>Nested<!><!>) T> : @Special(<!ARGUMENT_TYPE_MISMATCH!>Outer.<!NO_COMPANION_OBJECT!>Nested<!><!>) Interface
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(Outer.<!NO_COMPANION_OBJECT!>Nested<!>)
|
||||
class Nested<@Special(Outer.<!NO_COMPANION_OBJECT!>Nested<!>) T> : @Special(Outer.<!NO_COMPANION_OBJECT!>Nested<!>) Interface
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>)
|
||||
class Nested<@Special(NestedNested::class) T> : @Special(NestedNested::class) Interface {
|
||||
class NestedNested
|
||||
}
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>)
|
||||
class Nested<@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>) T> : @Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>) Interface {
|
||||
class NestedNested
|
||||
}
|
||||
}
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// LL_FIR_DIVERGENCE
|
||||
// KT-62587
|
||||
// LL_FIR_DIVERGENCE
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE)
|
||||
annotation class Special(val why: KClass<*>)
|
||||
|
||||
interface Interface
|
||||
|
||||
class Outer {
|
||||
@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>)
|
||||
class Nested<@Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>) T> : @Special(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>NestedNested<!>::class<!>) Interface {
|
||||
class NestedNested
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user