Implement recovery for incomplete expression before declaration

It's needed when declarations are parsed as a part of previous expression
(see tests)

Currently we apply this kind of recovery in a conservative way,
only when declaration starts at the next line, and while
the condition could be relaxed, there's no need to do this

 #KT-4948 Fixed
 #KT-7118 Fixed
This commit is contained in:
Denis Zharkov
2016-07-13 18:32:47 +03:00
parent 06a659e6e7
commit 4725dd3028
14 changed files with 623 additions and 30 deletions
@@ -0,0 +1,21 @@
fun foo(x: Any?) {
x ?:
val foo = 1
x ?:
fun bar() = 2
x ?:
fun String.() = 3
}
class A {
val z = null ?:
val x = 4
val y = null ?:
fun baz() = 5
val q = null ?:
fun String.() = 6
}