From 581cac3d456df4e2825c94da43f367e75fa82677 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 16 Jan 2024 08:49:02 +0100 Subject: [PATCH] K2: report EXPLICIT_TYPE_ARGUMENTS_... also on resolved qualifiers #KT-64982 Fixed --- .../checkers/expression/FirStandaloneQualifierChecker.kt | 7 ++++++- .../tests/incompleteCode/incompleteConstructorCall.fir.kt | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirStandaloneQualifierChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirStandaloneQualifierChecker.kt index f59da480d1b..4ed09dea4e9 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirStandaloneQualifierChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirStandaloneQualifierChecker.kt @@ -25,7 +25,12 @@ object FirStandaloneQualifierChecker : FirResolvedQualifierChecker() { if (!expression.isStandalone(context)) return // Note: if it's real Unit, it will be filtered by ClassKind.OBJECT check below in reportErrorOn - if (!expression.resolvedType.isUnit) return + if (!expression.resolvedType.isUnit) { + if (expression.typeArguments.any { it.source != null }) { + reporter.reportOn(expression.source, FirErrors.EXPLICIT_TYPE_ARGUMENTS_IN_PROPERTY_ACCESS, context) + } + return + } expression.symbol.reportErrorOn(expression.source, context, reporter) } diff --git a/compiler/testData/diagnostics/tests/incompleteCode/incompleteConstructorCall.fir.kt b/compiler/testData/diagnostics/tests/incompleteCode/incompleteConstructorCall.fir.kt index 684e82f5713..87885b622f0 100644 --- a/compiler/testData/diagnostics/tests/incompleteCode/incompleteConstructorCall.fir.kt +++ b/compiler/testData/diagnostics/tests/incompleteCode/incompleteConstructorCall.fir.kt @@ -15,11 +15,11 @@ class Outer { object Obj } -val test = Outer +val test = Outer -val test2 = Outer.Nested +val test2 = Outer.Nested -val test3 = Outer.Inner +val test3 = Outer.Inner val test4 = Outer.Obj