Added/updated tests for LexicalScope.

This commit is contained in:
Svetlana Isakova
2014-03-05 19:32:10 +04:00
parent 2cfcd1783b
commit 006f3ccbe9
81 changed files with 1404 additions and 604 deletions
@@ -4,7 +4,7 @@ class Test {
}
---------------------
L0:
<START>
1 <START>
v(var x : Int;)
L1:
<END> NEXT:[<SINK>]
@@ -29,8 +29,8 @@ fun assignments() : Unit {
}
---------------------
L0:
<START>
mark({ var x = 1 x = 2 x += 2 x = if (true) 1 else 2 val y = true && false val z = false && true val t = Test(); t.x = 1 })
1 <START>
2 mark({ var x = 1 x = 2 x += 2 x = if (true) 1 else 2 val y = true && false val z = false && true val t = Test(); t.x = 1 })
v(var x = 1)
r(1)
w(x)
@@ -72,7 +72,7 @@ L5:
r(t)
w(t.x)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -18,23 +18,23 @@ fun lazyBooleans(a : Boolean, b : Boolean) : Unit {
}
---------------------
L0:
<START>
1 <START>
v(a : Boolean)
w(a)
v(b : Boolean)
w(b)
mark({ if (a) { 1 } else { 2 } 3 if (a && b) 5 else 6 7 if (a || b) 8 else 9 10 if (a) 11 12 if (a) else 13 14 })
2 mark({ if (a) { 1 } else { 2 } 3 if (a && b) 5 else 6 7 if (a || b) 8 else 9 10 if (a) 11 12 if (a) else 13 14 })
mark(if (a) { 1 } else { 2 })
r(a)
jf(L2) NEXT:[mark({ 2 }), mark({ 1 })]
mark({ 1 })
3 mark({ 1 })
r(1)
jmp(L3) NEXT:[r(3)]
2 jmp(L3) NEXT:[r(3)]
L2:
mark({ 2 }) PREV:[jf(L2)]
3 mark({ 2 }) PREV:[jf(L2)]
r(2)
L3:
r(3) PREV:[jmp(L3), r(2)]
2 r(3) PREV:[jmp(L3), r(2)]
mark(if (a && b) 5 else 6)
r(a)
jf(L4) NEXT:[jf(L5), r(b)]
@@ -78,7 +78,7 @@ L12:
L13:
r(14) PREV:[jmp(L13), r(13)]
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,8 +4,8 @@ fun blockAndAndMismatch() : Boolean {
}
---------------------
L0:
<START>
mark({ false || (return false) })
1 <START>
2 mark({ false || (return false) })
r(false)
jt(L2) NEXT:[mark((return false)), r(false || (return false))]
mark((return false))
@@ -14,7 +14,7 @@ L0:
L2:
r(false || (return false)) PREV:[jt(L2)]
L1:
<END> NEXT:[<SINK>] PREV:[ret(*) L1, r(false || (return false))]
1 <END> NEXT:[<SINK>] PREV:[ret(*) L1, r(false || (return false))]
error:
<ERROR> PREV:[]
sink:
@@ -4,14 +4,14 @@ fun Int.bar(c: C) {
}
---------------------
L0:
<START>
1 <START>
v(c: C)
w(c)
mark({ this = c })
2 mark({ this = c })
r(c)
unsupported(BINARY_EXPRESSION : this = c)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -2,7 +2,7 @@
class JetToken
---------------------
L0:
<START>
1 <START>
L1:
<END> NEXT:[<SINK>]
error:
@@ -59,8 +59,8 @@ public open class JetKeywordCompletionContributor() {
}
---------------------
L0:
<START>
mark({ val inTopLevel = 1.0 BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() })
1 <START>
2 mark({ val inTopLevel = 1.0 BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() })
v(val inTopLevel = 1.0)
r(1.0)
w(inTopLevel)
@@ -217,7 +217,7 @@ L0:
call(add, add)
call(registerAll, registerAll)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -227,7 +227,7 @@ sink:
val ABSTRACT_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val ABSTRACT_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -243,7 +243,7 @@ sink:
val FINAL_KEYWORD OPEN_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val FINAL_KEYWORD OPEN_KEYWORD = JetToken())
L1:
<END> NEXT:[<SINK>]
@@ -256,7 +256,7 @@ sink:
val OPEN_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val OPEN_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -272,7 +272,7 @@ sink:
val INTERNAL_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val INTERNAL_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -288,7 +288,7 @@ sink:
val PRIVATE_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val PRIVATE_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -304,7 +304,7 @@ sink:
val PROTECTED_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val PROTECTED_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -320,7 +320,7 @@ sink:
val PUBLIC_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val PUBLIC_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -336,7 +336,7 @@ sink:
val CLASS_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val CLASS_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -352,7 +352,7 @@ sink:
val ENUM_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val ENUM_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -368,7 +368,7 @@ sink:
val FUN_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val FUN_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -384,7 +384,7 @@ sink:
val GET_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val GET_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -400,7 +400,7 @@ sink:
val SET_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val SET_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -416,7 +416,7 @@ sink:
val TRAIT_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val TRAIT_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -432,7 +432,7 @@ sink:
val VAL_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val VAL_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -448,7 +448,7 @@ sink:
val VAR_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val VAR_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -464,7 +464,7 @@ sink:
val TYPE_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val TYPE_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -480,7 +480,7 @@ sink:
val IMPORT_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val IMPORT_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -496,7 +496,7 @@ sink:
val PACKAGE_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val PACKAGE_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -512,7 +512,7 @@ sink:
val OVERRIDE_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val OVERRIDE_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -528,7 +528,7 @@ sink:
val IN_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val IN_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -544,7 +544,7 @@ sink:
val OUT_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val OUT_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -560,7 +560,7 @@ sink:
val OBJECT_KEYWORD = JetToken()
---------------------
L0:
<START>
1 <START>
v(val OBJECT_KEYWORD = JetToken())
mark(JetToken())
call(JetToken, <init>)
@@ -4,16 +4,16 @@ fun invoke(f: () -> Unit) {
}
---------------------
L0:
<START>
1 <START>
v(f: () -> Unit)
w(f)
mark({ (f)() })
2 mark({ (f)() })
mark((f)())
mark((f))
r(f)
call((f), <for expression (f)>)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,15 +4,15 @@ fun test(s: String?) {
}
---------------------
L0:
<START>
1 <START>
v(s: String?)
w(s)
mark({ s?.length })
2 mark({ s?.length })
mark(s?.length)
r(s)
r(length)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,14 +4,14 @@ fun foo(s: String) {
}
---------------------
L0:
<START>
1 <START>
v(s: String)
w(s)
mark({ s. })
2 mark({ s. })
mark(s.)
r(s)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,13 +4,13 @@ fun Function0<Unit>.foo() {
}
---------------------
L0:
<START>
mark({ this() })
1 <START>
2 mark({ this() })
mark(this())
r(this)
call(this, <for expression this>)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,17 +4,17 @@ fun test(a: Any) {
}
---------------------
L0:
<START>
1 <START>
v(a: Any)
w(a)
mark({ a.foo() })
2 mark({ a.foo() })
mark(a.foo())
mark(foo())
error(foo, No resolved call)
error(foo, No resolved call)
r(a)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
@@ -4,13 +4,13 @@ fun main(arg : Array<String>) {
}
---------------------
L0:
<START>
1 <START>
v(arg : Array<String>)
w(arg)
mark({ a })
2 mark({ a })
error(a, No resolved call)
L1:
<END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink: