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:
pyos
2021-08-02 12:20:40 +02:00
committed by teamcityserver
parent c85329905c
commit 5fec9f34b1
8 changed files with 42 additions and 37 deletions
@@ -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
View File
@@ -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)
}