FIR: revert a hack that allows overriding T!! with T
1. this should've been only done if the language feature for validating
that is disabled;
2. that feature probably won't matter by the time FIR is stable;
3. it only worked because type enhancement of type arguments is broken
anyway - a more correct hack would be to provide a custom
ConeTypePreparator.
This commit is contained in:
@@ -20,7 +20,7 @@ FILE: main.kt
|
||||
|
||||
}
|
||||
public final fun test_1(b: R|B<kotlin/Int>|, x: R|kotlin/Int|, inv: R|Inv<kotlin/Int>|): R|kotlin/Unit| {
|
||||
R|<local>/b|.R|SubstitutionOverride</B.take: R|kotlin/String|>|(R|<local>/x|)
|
||||
R|<local>/b|.<Inapplicable(INAPPLICABLE): /B.take>#(Null(null))
|
||||
R|<local>/b|.<Ambiguity: take, [/B.take, /B.take]>#(R|<local>/x|)
|
||||
R|<local>/b|.<Ambiguity: take, [/B.take, /B.take]>#(Null(null))
|
||||
R|<local>/b|.R|SubstitutionOverride</B.takeInv: R|kotlin/String|>|(R|<local>/inv|)
|
||||
}
|
||||
|
||||
+4
-4
@@ -16,8 +16,8 @@ public abstract class A<T, V> {
|
||||
|
||||
class Inv<T>
|
||||
|
||||
open class B<V> : A<Any, V>() {
|
||||
override fun take(value: V): String {
|
||||
open <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class B<!><V> : A<Any, V>() {
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun take(value: V): String {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ open class B<V> : A<Any, V>() {
|
||||
}
|
||||
|
||||
fun test_1(b: B<Int>, x: Int, inv: Inv<Int>) {
|
||||
b.take(x)
|
||||
b.take(<!NULL_FOR_NONNULL_TYPE!>null<!>)
|
||||
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>take<!>(x)
|
||||
b.<!NONE_APPLICABLE!>take<!>(null)
|
||||
b.takeInv(inv)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user