fixup! [K2] Fix bug: generated 'copy' method from another module wasn't correctly recognized by FirDataClassCopyUsageWillBecomeInaccessibleChecker
diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDataClassCopyUsageWillBecomeInaccessibleChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDataClassCopyUsageWillBecomeInaccessibleChecker.kt index 666241b..ba901e3 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDataClassCopyUsageWillBecomeInaccessibleChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDataClassCopyUsageWillBecomeInaccessibleChecker.kt
@@ -29,7 +29,7 @@ object FirDataClassCopyUsageWillBecomeInaccessibleChecker : FirFunctionCallChecker(MppCheckerKind.Common) { override fun check(expression: FirFunctionCall, context: CheckerContext, reporter: DiagnosticReporter) { - val dataClass = expression.resolvedType.toRegularClassSymbol(context.session)?.takeIf { it.isData } ?: return + val dataClass = expression.resolvedType.toRegularClassSymbol(context.session) ?: return val copyFunction = expression.calleeReference.symbol as? FirCallableSymbol ?: return if (copyFunction.isDataClassCopy(dataClass, context.session)) { val dataClassConstructor = dataClass.primaryConstructorSymbol(context.session) ?: return @@ -63,8 +63,8 @@ } } -fun FirCallableSymbol<*>.isDataClassCopy(dataClass: FirRegularClassSymbol, session: FirSession): Boolean { - if (DataClassResolver.isCopy(name) && this is FirNamedFunctionSymbol) { +private fun FirCallableSymbol<*>.isDataClassCopy(dataClass: FirRegularClassSymbol, session: FirSession): Boolean { + if (DataClassResolver.isCopy(name) && this is FirNamedFunctionSymbol && dataClass.isData) { if (origin == FirDeclarationOrigin.Synthetic.DataClassMember) { return true }