[FIR] Implement RESOLUTION_TO_CLASSIFIER

This commit is contained in:
Ivan Kochurkin
2021-06-30 18:33:20 +03:00
parent 2574dc907c
commit d4e1cded59
51 changed files with 88 additions and 483 deletions
@@ -1,32 +0,0 @@
class Outer1 {
class Nested
class C1 { val b = Nested() }
class C2(val b: Any = Nested())
inner class C3 { val b = Nested() }
inner class C4(val b: Any = Nested())
inner class Inner
class C5 { val b = Inner() }
class C6(val b: Any = Inner())
inner class C7 { val b = Inner() }
inner class C8(val b: Any = Inner())
}
class Outer2 {
class Nested {
fun foo() = Outer2()
fun bar() = Inner()
}
inner class Inner {
fun foo() = Outer2()
fun bar() = Nested()
}
fun foo() {
Nested()
Inner()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class Outer1 {
class Nested
@@ -1,36 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// SKIP_TXT
// FILE: Outer.kt
package abc
class Outer {
inner class Inner() {
constructor(x: Int) : this() {}
}
companion object {
fun baz() {
Inner()
Inner(1)
}
}
}
fun foo() {
Outer.<!UNRESOLVED_REFERENCE!>Inner<!>()
Outer.<!UNRESOLVED_REFERENCE!>Inner<!>(1)
}
// FILE: imported.kt
import abc.Outer
import abc.Outer.Inner
fun bar() {
Inner()
Inner(1)
with(Outer()) {
Inner()
Inner(1)
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
// SKIP_TXT
// FILE: Outer.kt
@@ -12,8 +12,8 @@ class Outer {
fun baz() {
// Diagnostic here could be better (why can't I call the constructor above?)
Inner()
Inner(1)
Inner(<!NO_VALUE_FOR_PARAMETER!>)<!>
Inner(<!ARGUMENT_TYPE_MISMATCH!>1<!>)
Inner("")
}
}
@@ -31,8 +31,8 @@ import abc.Outer.Inner
import abc.Outer.Companion.Inner
fun bar() {
Inner()
Inner(1)
Inner(<!NO_VALUE_FOR_PARAMETER!>)<!>
Inner(<!ARGUMENT_TYPE_MISMATCH!>1<!>)
Inner("")
with(Outer()) {
@@ -10,7 +10,7 @@ class Test {
}
fun more(): InnerClass {
val b = InnerClass()
val b = <!RESOLUTION_TO_CLASSIFIER!>InnerClass<!>()
val testVal = <!UNRESOLVED_REFERENCE!>inClass<!>
<!UNRESOLVED_REFERENCE!>foo<!>()
@@ -10,7 +10,7 @@ class Test {
}
fun more(): InnerClass {
val b = InnerClass()
val b = <!RESOLUTION_TO_CLASSIFIER!>InnerClass<!>()
val testVal = <!UNRESOLVED_REFERENCE!>inClass<!>
<!UNRESOLVED_REFERENCE!>foo<!>()
@@ -1,17 +0,0 @@
class Outer {
class Nested {
class NestedNested
}
inner class Inner {
inner class InnerInner
}
}
fun f1() = Outer()
fun f2() = Outer.Nested()
fun f3() = Outer.Nested.NestedNested()
fun f4() = Outer.<!UNRESOLVED_REFERENCE!>Inner<!>()
fun f5() = Outer.Inner.<!UNRESOLVED_REFERENCE!>InnerInner<!>()
fun f6() = Outer().Inner()
fun f7() = Outer().Inner().InnerInner()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class Outer {
class Nested {
class NestedNested