FIR: Reimplement implicit types calculator
Make it works through a single component tracking computation status instead of storing it in the nodes
This commit is contained in:
Vendored
+6
-6
@@ -7,7 +7,7 @@ object Outer {
|
||||
get() = 0
|
||||
|
||||
override fun get(index: Int): Char {
|
||||
<!UNRESOLVED_REFERENCE!>checkSubtype<!><CharSequence>(x)
|
||||
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><CharSequence>(x)
|
||||
return ' '
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ object Outer {
|
||||
}
|
||||
}
|
||||
set(q) {
|
||||
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><CharSequence>(x)
|
||||
checkSubtype<CharSequence>(x)
|
||||
y = q
|
||||
x = q
|
||||
}
|
||||
@@ -27,10 +27,10 @@ object Outer {
|
||||
fun foo() {
|
||||
x = y
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><CharSequence>(x)
|
||||
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><CharSequence>(y)
|
||||
checkSubtype<CharSequence>(x)
|
||||
checkSubtype<CharSequence>(y)
|
||||
|
||||
x.<!UNRESOLVED_REFERENCE!>bar<!>()
|
||||
y.<!UNRESOLVED_REFERENCE!>bar<!>()
|
||||
x.bar()
|
||||
y.bar()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ class A {
|
||||
val a get() = b
|
||||
val b get() = a
|
||||
|
||||
val z1 get() = <!UNRESOLVED_REFERENCE!>id<!>(z1)
|
||||
val z2 get() = <!UNRESOLVED_REFERENCE!>l<!>(z2)
|
||||
val z1 get() = <!INAPPLICABLE_CANDIDATE!>id<!>(z1)
|
||||
val z2 get() = <!INAPPLICABLE_CANDIDATE!>l<!>(z2)
|
||||
|
||||
val u get() = field
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class Test {
|
||||
val a = y;
|
||||
}
|
||||
|
||||
val z = y.<!UNRESOLVED_REFERENCE!>a<!>;
|
||||
val z = y.a;
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,6 @@ class Test2 {
|
||||
val y = 1
|
||||
}
|
||||
|
||||
val b = a.x
|
||||
val b = a.<!UNRESOLVED_REFERENCE!>x<!>
|
||||
val c = a.y
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,4 +26,4 @@ class Test2 {
|
||||
|
||||
val b = <!NI;TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>.<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!><!>
|
||||
val c = a.y
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user