[minor] [NI] Additional test for loosing type annotations on extension functions

taken from KT-34820
This commit is contained in:
Ilya Chernikov
2019-12-04 12:36:05 +01:00
parent 1c6da8b9b4
commit 3e537cfcb4
2 changed files with 33 additions and 0 deletions
@@ -20,3 +20,18 @@ fun buildB() {
B.Builder().a2()
B.Builder().a3()
}
// additional example from #KT-34820
class R
class P
typealias F = R.(P) -> Unit
fun guess(): F? = TODO()
fun consume(f: F) {}
fun problem() {
val p = guess()
consume(p ?: {})
}
@@ -4,6 +4,9 @@ public fun applyRestrictions1(): ApplyRestrictions /* = B.Builder.() -> B.Builde
public fun applyRestrictions2(): ApplyRestrictions /* = B.Builder.() -> B.Builder */
public fun </*0*/ K> applyRestrictions3(/*0*/ e: K): ApplyRestrictions /* = B.Builder.() -> B.Builder */
public fun buildB(): kotlin.Unit
public fun consume(/*0*/ f: F /* = R.(P) -> kotlin.Unit */): kotlin.Unit
public fun guess(): F? /* = (R.(P) -> kotlin.Unit)? */
public fun problem(): kotlin.Unit
public final class B {
public constructor B()
@@ -18,4 +21,19 @@ public final class B {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class P {
public constructor P()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class R {
public constructor R()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public typealias ApplyRestrictions = B.Builder.() -> B.Builder
public typealias F = R.(P) -> kotlin.Unit