FIR: support resolving to objects

This commit is contained in:
Simon Ogorodnik
2019-04-09 20:21:47 +03:00
committed by Mikhail Glukhikh
parent b38f3a1272
commit c6aff9380b
21 changed files with 160 additions and 61 deletions
+3 -3
View File
@@ -23,7 +23,7 @@ FILE: enum.kt
public final enum entry FIRST : R|SomeEnum| {
public constructor(): R|SomeEnum.FIRST| {
super<R|SomeEnum|>(<Unresolved name: O1>#)
super<R|SomeEnum|>(R|/O1|)
}
public final override fun check(y: R|Some|): R|kotlin/Boolean| {
@@ -34,11 +34,11 @@ FILE: enum.kt
public final enum entry SECOND : R|SomeEnum| {
public constructor(): R|SomeEnum.SECOND| {
super<R|SomeEnum|>(<Unresolved name: O2>#)
super<R|SomeEnum|>(R|/O2|)
}
public final override fun check(y: R|Some|): R|kotlin/Boolean| {
^check ==(R|<local>/y|, <Unresolved name: O2>#)
^check ==(R|<local>/y|, R|/O2|)
}
}
@@ -0,0 +1,12 @@
object A
val A = 10
fun foo() = A
fun bar() {
val A = ""
val b = A
}
@@ -0,0 +1,14 @@
FILE: objectVsProperty.kt
public final object A : R|kotlin/Any| {
public constructor(): super<R|kotlin/Any|>()
}
public final val A: R|kotlin/Int| = Int(10)
public get(): R|kotlin/Int|
public final fun foo(): R|kotlin/Int| {
^foo R|/A|
}
public final fun bar(): R|kotlin/Unit| {
lval A: R|kotlin/String| = String()
lval b: R|kotlin/String| = R|<local>/A|
}
@@ -0,0 +1,6 @@
object A {
fun foo() = this
}
fun use() = A
fun bar() = A.foo()
@@ -0,0 +1,15 @@
FILE: objects.kt
public final object A : R|kotlin/Any| {
public constructor(): super<R|kotlin/Any|>()
public final fun foo(): R|A| {
^foo this#
}
}
public final fun use(): R|A| {
^use R|/A|
}
public final fun bar(): R|A| {
^bar R|/A|.R|/A.foo|()
}
@@ -1,5 +1,5 @@
FILE: reflectionClass.kt
public final val javaClass: R|java/lang/Class<kotlin/String>| = <getClass>(<Unresolved name: String>#).<Unresolved name: java>#
public final val javaClass: R|java/lang/Class<kotlin/String>| = <getClass>(R|kotlin/String|).<Unresolved name: java>#
public get(): R|java/lang/Class<kotlin/String>|
public final val kotlinClass: R|kotlin/reflect/KClass<kotlin/String>| = <getClass>(<Unresolved name: String>#)
public final val kotlinClass: R|kotlin/reflect/KClass<kotlin/String>| = <getClass>(R|kotlin/String|)
public get(): R|kotlin/reflect/KClass<kotlin/String>|