From 3e537cfcb486f959aae766838f295c8dc1f35c9f Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Wed, 4 Dec 2019 12:36:05 +0100 Subject: [PATCH] [minor] [NI] Additional test for loosing type annotations on extension functions taken from KT-34820 --- ...t32189returnTypeWithTypealiasSubtitution.kt | 15 +++++++++++++++ ...32189returnTypeWithTypealiasSubtitution.txt | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.kt b/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.kt index d4b9306ab8f..0c877efeb43 100644 --- a/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.kt +++ b/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.kt @@ -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 ?: {}) +} diff --git a/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.txt b/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.txt index 1bef2a6997b..ecfea9bfa35 100644 --- a/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.txt +++ b/compiler/testData/diagnostics/tests/inference/substitutions/kt32189returnTypeWithTypealiasSubtitution.txt @@ -4,6 +4,9 @@ public fun applyRestrictions1(): ApplyRestrictions /* = B.Builder.() -> B.Builde public fun applyRestrictions2(): ApplyRestrictions /* = B.Builder.() -> B.Builder */ public fun 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