[FIR] Don't require delegated constructor calls for expect constructors

#KT-59640 Fixed
This commit is contained in:
Kirill Rakhman
2023-06-30 13:05:56 +03:00
committed by Space Team
parent 028921ade1
commit c7ae3c75db
2 changed files with 4 additions and 2 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.references.*
import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.SymbolInternals
@@ -61,7 +62,8 @@ object FirCommonConstructorDelegationIssuesChecker : FirRegularClassChecker() {
for (it in otherConstructors) { for (it in otherConstructors) {
// couldn't find proper super() constructor implicitly // couldn't find proper super() constructor implicitly
if (it.delegatedConstructor?.calleeReference is FirDiagnosticHolder && if (it.delegatedConstructor?.calleeReference is FirDiagnosticHolder &&
it.delegatedConstructor?.source?.kind is KtFakeSourceElementKind it.delegatedConstructor?.source?.kind is KtFakeSourceElementKind &&
!it.isExpect
) { ) {
reporter.reportOn(it.source, FirErrors.EXPLICIT_DELEGATION_CALL_REQUIRED, context) reporter.reportOn(it.source, FirErrors.EXPLICIT_DELEGATION_CALL_REQUIRED, context)
} }
@@ -7,7 +7,7 @@ expect open class A {
} }
expect class B : A { expect class B : A {
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor(i: Int)<!> constructor(i: Int)
constructor() : super("B") constructor() : super("B")
} }