From da1fa8fce42852d700a9dfb759396b7f533a2908 Mon Sep 17 00:00:00 2001 From: Vladimir Sukharev Date: Mon, 16 Oct 2023 09:05:58 +0000 Subject: [PATCH] [FIR] Revert: Fix K2: Introduced AMBIGUOUS_ANONYMOUS_TYPE_INFERRED This reverts commit d7adc0ce3241f34060169aaeb3fe146728e9596c. Merge-request: KT-MR-12569 Merged-by: Vladimir Sukharev --- .../declaration/FirAmbiguousAnonymousTypeChecker.kt | 6 ++++++ .../tests/inline/returnedAnonymousObjects_2.fir.kt | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt index 666ad4c7a93..6114454f3c1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt @@ -70,6 +70,12 @@ object FirAmbiguousAnonymousTypeChecker : FirBasicDeclarationChecker() { context ) } + for (typeArgument in type.typeArguments) { + checkTypeAndArguments( + typeArgument.type ?: continue, + context, reporter, reportOn + ) + } } private val FirBlock.singleExpressionType diff --git a/compiler/testData/diagnostics/tests/inline/returnedAnonymousObjects_2.fir.kt b/compiler/testData/diagnostics/tests/inline/returnedAnonymousObjects_2.fir.kt index e27dc11676c..b3a75c8701f 100644 --- a/compiler/testData/diagnostics/tests/inline/returnedAnonymousObjects_2.fir.kt +++ b/compiler/testData/diagnostics/tests/inline/returnedAnonymousObjects_2.fir.kt @@ -34,11 +34,11 @@ private inline fun foo22(crossinline f: () -> Int) = Inv(Inv(object : I1 { fun bar(): Int = f() } -private inline fun foo31(crossinline f: () -> Int) = Inv(object : I1, I2 { +private inline fun foo31(crossinline f: () -> Int) = Inv(object : I1, I2 { fun bar(): Int = f() }) -private inline fun foo32(crossinline f: () -> Int) = Inv(Inv(object : I1, I2 { +private inline fun foo32(crossinline f: () -> Int) = Inv(Inv(object : I1, I2 { fun bar(): Int = f() }))