Add tests for lookup tracker with JS KLIB compiler

This commit is contained in:
Alexey Tsvetkov
2020-03-10 06:25:02 +03:00
parent 1c38466a22
commit 6acf9385bd
38 changed files with 625 additions and 3 deletions
@@ -0,0 +1 @@
package bar
@@ -0,0 +1,5 @@
==== INITIAL BUILD ====
Compiling files:
src/bar.kt(no lookups)
src/locals.kt
Exit code: OK
@@ -0,0 +1,49 @@
package local.declarations
import bar.*
/*p:local.declarations*/fun f(p: /*p:local.declarations p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:kotlin.comparisons p:kotlin.js*/Any) /*p:kotlin(Int)*/{
/*p:kotlin(Any) p:kotlin(String)*/p./*c:kotlin.Any*/toString()
val a = /*p:kotlin(Int)*/1
val b = /*p:kotlin(Int)*/a
fun localFun() = /*p:kotlin(Int)*/b
fun /*p:local.declarations p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:kotlin.comparisons p:kotlin.js*/Int.localExtFun() = /*p:kotlin(Int)*/localFun()
abstract class LocalI {
abstract var a: /*p:local.declarations p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:kotlin.comparisons p:kotlin.js*/Int
abstract fun foo()
}
class LocalC : LocalI() {
override var a = /*p:kotlin(Int)*/1
override fun foo() {}
var b = /*p:kotlin(String)*/"bbb"
fun bar() = /*p:kotlin(Int)*/b
}
val o = object {
val a = /*p:kotlin(String)*/"aaa"
fun foo(): LocalI = /*p:kotlin(Nothing)*/null as LocalI
}
/*p:kotlin(Int)*/localFun()
/*p:kotlin(Int)*/1./*c:kotlin.Int c:kotlin.Number*/localExtFun()
val c = LocalC()
/*p:kotlin(Int)*/c.a
/*p:kotlin(String)*/c.b
c.foo()
/*p:kotlin(Int)*/c.bar()
val i: LocalI = c
/*p:kotlin(Int)*/i.a
i.foo()
/*p:kotlin(String)*/o.a
val ii = o.foo()
/*p:kotlin(Int)*/ii.a
}