diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/cyclicConstructorDelegationCall.kt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/cyclicConstructorDelegationCall.kt index f4b2ad28d7b..85df7328d6c 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/cyclicConstructorDelegationCall.kt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/cyclicConstructorDelegationCall.kt @@ -63,5 +63,5 @@ open class M { } class U : M { - constructor() + constructor() } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCommonConstructorDelegationIssuesChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCommonConstructorDelegationIssuesChecker.kt index b2a34c35c19..50439b6b18d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCommonConstructorDelegationIssuesChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCommonConstructorDelegationIssuesChecker.kt @@ -13,8 +13,8 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder import org.jetbrains.kotlin.fir.references.* -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.utils.addToStdlib.lastIsInstanceOrNull @@ -59,11 +59,8 @@ object FirCommonConstructorDelegationIssuesChecker : FirRegularClassChecker() { } } else { for (it in otherConstructors) { - val callee = it.delegatedConstructor?.calleeReference - // couldn't find proper super() constructor implicitly - if ( - callee is FirErrorNamedReference && callee.diagnostic is ConeAmbiguityError && + if (it.delegatedConstructor?.calleeReference is FirDiagnosticHolder && it.delegatedConstructor?.source?.kind is KtFakeSourceElementKind ) { reporter.reportOn(it.source, FirErrors.EXPLICIT_DELEGATION_CALL_REQUIRED, context) diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/errorsOnEmptyDelegationCall.fir.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/errorsOnEmptyDelegationCall.fir.kt index 86b6d6ad5ea..a38169a2f0a 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/errorsOnEmptyDelegationCall.fir.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/errorsOnEmptyDelegationCall.fir.kt @@ -2,7 +2,7 @@ open class B0(x: Int) class A0 : B0 { - constructor() + constructor() constructor(x: Int) : super() } @@ -37,6 +37,6 @@ open class B3 { } class A3 : B3 { - constructor() + constructor() constructor(x: Int) : super() } diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/nestedExtendsInner.fir.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/nestedExtendsInner.fir.kt index a9321da314d..a89151b7253 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/nestedExtendsInner.fir.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/nestedExtendsInner.fir.kt @@ -2,6 +2,6 @@ class A { open inner class Inner class Nested : Inner { - constructor() + constructor() } } diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.fir.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.fir.kt deleted file mode 100644 index 85667e1cc22..00000000000 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.fir.kt +++ /dev/null @@ -1,6 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -open class A(p1: String, p2: String, p3: String, p4: String, p5: String) - -class B : A { - constructor(s: String) -} diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.kt index 7f2967cb8e1..7bfff5d6e90 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/reportResolutionErrorOnImplicitOnce.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER open class A(p1: String, p2: String, p3: String, p4: String, p5: String)