FIR2IR: make sources of qualified accesses & calls closer to PSI2IR
#KT-60111 Fixed
This commit is contained in:
committed by
Space Team
parent
7c66a3dc65
commit
b7b7dd1000
+2
-2
@@ -17,10 +17,10 @@ annotation class AnnotationWithAnnotation(val anno: Annotation)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class AnnotationWithAnnotationWithAnnotation(val anno: AnnotationWithAnnotation)
|
||||
|
||||
@AnnotationWithAnnotation(Annotation("Str" <!EVALUATED("String")!>+ "ing"<!>))
|
||||
@AnnotationWithAnnotation(Annotation(<!EVALUATED("String")!>"Str" + "ing"<!>))
|
||||
class A
|
||||
|
||||
@AnnotationWithAnnotationWithAnnotation(AnnotationWithAnnotation(Annotation("Str" <!EVALUATED("String")!>+ "ing"<!>)))
|
||||
@AnnotationWithAnnotationWithAnnotation(AnnotationWithAnnotation(Annotation(<!EVALUATED("String")!>"Str" + "ing"<!>)))
|
||||
class B
|
||||
|
||||
// MODULE: main
|
||||
|
||||
Vendored
+19
-19
@@ -28,29 +28,29 @@ annotation class BinaryAnnotation(val str: String)
|
||||
|
||||
// 1. CLASS
|
||||
// 8. CONSTRUCTOR
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
class A @BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) constructor(val i: Int) {
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) constructor() : this(0)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
class A @BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) constructor(val i: Int) {
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) constructor() : this(0)
|
||||
}
|
||||
|
||||
// 2. ANNOTATION_CLASS
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
annotation class Anno
|
||||
|
||||
// 3. TYPE_PARAMETER
|
||||
fun <@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) T, U> fooWithTypeParam(a: T, b: U) {}
|
||||
fun <@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) T, U> fooWithTypeParam(a: T, b: U) {}
|
||||
|
||||
// 4. PROPERTY
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
val prop: Int = 0
|
||||
|
||||
// 5. FIELD
|
||||
enum class SomeEnum {
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) A,
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) A,
|
||||
B;
|
||||
}
|
||||
|
||||
@field:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@field:BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
var x: Int = 5
|
||||
|
||||
object Delegate {
|
||||
@@ -58,42 +58,42 @@ object Delegate {
|
||||
operator fun setValue(instance: Any?, property: Any, value: String) {}
|
||||
}
|
||||
|
||||
@delegate:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@delegate:BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
val p: String by Delegate
|
||||
|
||||
|
||||
// 7. VALUE_PARAMETER
|
||||
fun @receiver:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) String.myExtension() { }
|
||||
fun foo(@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) a: Int) { }
|
||||
fun @receiver:BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) String.myExtension() { }
|
||||
fun foo(@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) a: Int) { }
|
||||
|
||||
val @receiver:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) String.a: Int
|
||||
val @receiver:BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) String.a: Int
|
||||
get() = 0
|
||||
|
||||
class WithConstructorArgumentAnnotation(
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
val a: Int
|
||||
)
|
||||
|
||||
@setparam:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@setparam:BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
var setParamProp: Int = 0
|
||||
get() = field + 1
|
||||
set(x: Int) { field = x * 2 }
|
||||
|
||||
var mutablePropWithAnnotationOnSetterParam = 0
|
||||
set(@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) x: Int) { field = x * 2 }
|
||||
set(@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) x: Int) { field = x * 2 }
|
||||
|
||||
// 9. FUNCTION
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
fun bar() {}
|
||||
|
||||
// 10. PROPERTY_GETTER
|
||||
// 11. PROPERTY_SETTER
|
||||
var b: Int
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) get() = 0
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) set(value) {}
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) get() = 0
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>) set(value) {}
|
||||
|
||||
// 15. TYPEALIAS
|
||||
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
@BinaryAnnotation(<!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
typealias C = Int
|
||||
|
||||
// MODULE: main
|
||||
|
||||
+2
-2
@@ -13,10 +13,10 @@ annotation class AnnotationWithVararg(vararg val array: String)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class AnnotationWithArray(val array: Array<String>)
|
||||
|
||||
@AnnotationWithVararg("Str" <!EVALUATED("String")!>+ "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>)
|
||||
@AnnotationWithVararg(<!EVALUATED("String")!>"Str" + "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>)
|
||||
class A
|
||||
|
||||
@AnnotationWithArray(["Str" <!EVALUATED("String")!>+ "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>])
|
||||
@AnnotationWithArray([<!EVALUATED("String")!>"Str" + "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>])
|
||||
class B
|
||||
|
||||
// MODULE: main
|
||||
|
||||
Vendored
+1
-1
@@ -22,7 +22,7 @@ annotation class IntegerNumberValid(
|
||||
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class AnnotationWithDefault(val str: String = "Str" <!EVALUATED("String")!>+ "ing"<!>)
|
||||
annotation class AnnotationWithDefault(val str: String = <!EVALUATED("String")!>"Str" + "ing"<!>)
|
||||
|
||||
@AnnotationWithDefault()
|
||||
class A
|
||||
|
||||
+2
-2
@@ -18,8 +18,8 @@ annotation class Nested(val a: TypeAnnotation)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class NestedArray(val a: Array<TypeAnnotation>)
|
||||
|
||||
val a: @Nested(TypeAnnotation("Int" <!EVALUATED("IntAnno")!>+ "Anno"<!>)) Int = 1
|
||||
val b: @NestedArray([TypeAnnotation("Element1" <!EVALUATED("Element1Anno")!>+ "Anno"<!>), TypeAnnotation("Element2" <!EVALUATED("Element2Anno")!>+ "Anno"<!>)]) Int = 1
|
||||
val a: @Nested(TypeAnnotation(<!EVALUATED("IntAnno")!>"Int" + "Anno"<!>)) Int = 1
|
||||
val b: @NestedArray([TypeAnnotation(<!EVALUATED("Element1Anno")!>"Element1" + "Anno"<!>), TypeAnnotation(<!EVALUATED("Element2Anno")!>"Element2" + "Anno"<!>)]) Int = 1
|
||||
|
||||
// MODULE: main
|
||||
// FILE: main.kt
|
||||
|
||||
+16
-16
@@ -16,39 +16,39 @@ open class A
|
||||
interface B
|
||||
//class C : @TypeAnnotation("AClass" + "Anno") A(), @TypeAnnotation("BInterface" + "Anno") B
|
||||
|
||||
val a: @TypeAnnotation("Int" <!EVALUATED("IntAnno")!>+ "Anno"<!>) Int = 1
|
||||
var b: @TypeAnnotation("List" <!EVALUATED("ListAnno")!>+ "Anno"<!>) List<
|
||||
@TypeAnnotation("Pair" <!EVALUATED("PairAnno")!>+ "Anno"<!>)Pair<
|
||||
@TypeAnnotation("PairInt1" <!EVALUATED("PairInt1Anno")!>+ "Anno"<!>) Int,
|
||||
@TypeAnnotation("PairInt2" <!EVALUATED("PairInt2Anno")!>+ "Anno"<!>) Int
|
||||
val a: @TypeAnnotation(<!EVALUATED("IntAnno")!>"Int" + "Anno"<!>) Int = 1
|
||||
var b: @TypeAnnotation(<!EVALUATED("ListAnno")!>"List" + "Anno"<!>) List<
|
||||
@TypeAnnotation(<!EVALUATED("PairAnno")!>"Pair" + "Anno"<!>)Pair<
|
||||
@TypeAnnotation(<!EVALUATED("PairInt1Anno")!>"PairInt1" + "Anno"<!>) Int,
|
||||
@TypeAnnotation(<!EVALUATED("PairInt2Anno")!>"PairInt2" + "Anno"<!>) Int
|
||||
>
|
||||
>? = null
|
||||
|
||||
fun foo(a: @TypeAnnotation("String" <!EVALUATED("StringAnno")!>+ "Anno"<!>) String): @TypeAnnotation("Any" <!EVALUATED("AnyAnno")!>+ "Anno"<!>) Any {
|
||||
val b : @TypeAnnotation("Double" <!EVALUATED("DoubleAnno")!>+ "Anno"<!>) Double = 1.0
|
||||
fun foo(a: @TypeAnnotation(<!EVALUATED("StringAnno")!>"String" + "Anno"<!>) String): @TypeAnnotation(<!EVALUATED("AnyAnno")!>"Any" + "Anno"<!>) Any {
|
||||
val b : @TypeAnnotation(<!EVALUATED("DoubleAnno")!>"Double" + "Anno"<!>) Double = 1.0
|
||||
return b
|
||||
}
|
||||
|
||||
fun <T: @TypeAnnotation("SuperT" <!EVALUATED("SuperTAnno")!>+ "Anno"<!>) Any> bar(a: @TypeAnnotation("T" <!EVALUATED("TAnno")!>+ "Anno"<!>) T) {}
|
||||
fun <T: @TypeAnnotation(<!EVALUATED("SuperTAnno")!>"SuperT" + "Anno"<!>) Any> bar(a: @TypeAnnotation(<!EVALUATED("TAnno")!>"T" + "Anno"<!>) T) {}
|
||||
|
||||
fun example(computeAny: @TypeAnnotation("Fun" <!EVALUATED("FunAnno")!>+ "Anno"<!>) () -> Any) {
|
||||
fun example(computeAny: @TypeAnnotation(<!EVALUATED("FunAnno")!>"Fun" + "Anno"<!>) () -> Any) {
|
||||
// val memoizedFoo: @TypeAnnotation("LocalDelegate" + "Anno") Any by lazy(computeAny)
|
||||
}
|
||||
|
||||
typealias Fun = @TypeAnnotation("TypeAlias" <!EVALUATED("TypeAliasAnno")!>+ "Anno"<!>) (Int, Int) -> Int
|
||||
typealias Fun = @TypeAnnotation(<!EVALUATED("TypeAliasAnno")!>"TypeAlias" + "Anno"<!>) (Int, Int) -> Int
|
||||
|
||||
fun memberAccess() {
|
||||
bar<@TypeAnnotation("Float" <!EVALUATED("FloatAnno")!>+ "Anno"<!>) Float>(1.0f)
|
||||
bar<@TypeAnnotation(<!EVALUATED("FloatAnno")!>"Float" + "Anno"<!>) Float>(1.0f)
|
||||
}
|
||||
|
||||
val typeOperator = 1L as @TypeAnnotation("Long" <!EVALUATED("LongAnno")!>+ "Anno"<!>) Long
|
||||
val typeOperator = 1L as @TypeAnnotation(<!EVALUATED("LongAnno")!>"Long" + "Anno"<!>) Long
|
||||
|
||||
fun withVararg(vararg args: @TypeAnnotation("Byte" <!EVALUATED("ByteAnno")!>+ "Anno"<!>) Byte) {}
|
||||
fun withVararg(vararg args: @TypeAnnotation(<!EVALUATED("ByteAnno")!>"Byte" + "Anno"<!>) Byte) {}
|
||||
|
||||
fun withAnonymousObject() {
|
||||
object {
|
||||
fun bar() {
|
||||
val a: @TypeAnnotation("InsideObject" <!EVALUATED("InsideObjectAnno")!>+ "Anno"<!>) A? = null
|
||||
val a: @TypeAnnotation(<!EVALUATED("InsideObjectAnno")!>"InsideObject" + "Anno"<!>) A? = null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,8 +70,8 @@ fun functionWithLambda(action: (Int, String) -> Any) {
|
||||
// }
|
||||
//}
|
||||
|
||||
val inProjection: MutableList<in @TypeAnnotation("InProjection" <!EVALUATED("InProjectionAnno")!>+ "Anno"<!>) String> = mutableListOf()
|
||||
val outProjection: MutableList<out @TypeAnnotation("OutProjection" <!EVALUATED("OutProjectionAnno")!>+ "Anno"<!>) String> = mutableListOf()
|
||||
val inProjection: MutableList<in @TypeAnnotation(<!EVALUATED("InProjectionAnno")!>"InProjection" + "Anno"<!>) String> = mutableListOf()
|
||||
val outProjection: MutableList<out @TypeAnnotation(<!EVALUATED("OutProjectionAnno")!>"OutProjection" + "Anno"<!>) String> = mutableListOf()
|
||||
|
||||
// MODULE: main
|
||||
// FILE: main.kt
|
||||
|
||||
Reference in New Issue
Block a user