[FIR][LightTree] More fixes in diagnostic positioning

Keep tree padding for modifiers
More REFERENCE_EXPRESSIONS kinds
Fix source for some call expressions
This commit is contained in:
Andrey Zinovyev
2021-04-19 14:36:55 +03:00
committed by TeamCityServer
parent f3dc8dfb21
commit 0a68edf3bd
11 changed files with 50 additions and 21 deletions
@@ -4,7 +4,8 @@ package h
class Square() {
var size : Double =
<!UNRESOLVED_REFERENCE!>set<!>(<!UNRESOLVED_REFERENCE!>value<!>) {
<!SYNTAX!>$area<!> <!SYNTAX!>= size * size<!>
//in LT this LAMBDA_EXPRESSION get parsed lazyly, but doesn't got anywhere in FIR tree (as property doesn't have place for it)
<!SYNTAX{PSI}!>$area<!> <!SYNTAX{PSI}!>= size * size<!>
}
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var area : Double<!>
@@ -15,4 +16,4 @@ fun main() {
val s = Square()
s.size = 2.0
}
}
@@ -6,9 +6,9 @@ enum class Enum {
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
<!LOCAL_INTERFACE_NOT_ALLOWED, NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
enum class TestEnumClass {
OTHER_ENTRY
@@ -6,9 +6,9 @@ enum class Enum {
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
<!LOCAL_INTERFACE_NOT_ALLOWED, NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
enum class TestEnumClass {
OTHER_ENTRY
@@ -6,9 +6,9 @@ enum class Enum {
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
<!LOCAL_INTERFACE_NOT_ALLOWED, NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
enum class TestEnumClass {
OTHER_ENTRY
+3 -3
View File
@@ -6,13 +6,13 @@ package toplevelObjectDeclarations
<!NO_VALUE_FOR_PARAMETER!>class T : <!SUPERTYPE_NOT_INITIALIZED!>Foo<!> {}<!>
object A : <!SUPERTYPE_NOT_INITIALIZED!>Foo<!> {
<!NO_VALUE_FOR_PARAMETER{LT}!>object A : <!SUPERTYPE_NOT_INITIALIZED!>Foo<!> {
val x : Int = 2
fun test() : Int {
return x + foo(<!NO_VALUE_FOR_PARAMETER!>)<!>
return x + foo(<!NO_VALUE_FOR_PARAMETER{PSI}!>)<!>
}
}
}<!>
object B : A {}
@@ -25,5 +25,5 @@ val z = z
fun block(f : () -> Unit) = f()
fun bar3() = block{ <!UNRESOLVED_REFERENCE!>foo3<!>() // <-- missing closing curly bracket
fun foo3() = block{ bar3() }<!SYNTAX!><!>
fun foo3() = block{ bar3() }<!SYNTAX{PSI}!><!>