diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt index 861ffb45620..b7a997d9087 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt @@ -159,14 +159,16 @@ internal class FirLightClassForSymbol( val functionsFromAny = mutableMapOf() // NB: componentN and copy are added during RAW FIR, but synthetic members from `Any` are not. // Thus, using declared member scope is not sufficient to lookup "all" synthetic members. - classOrObjectSymbol.getMemberScope().getCallableSymbols().forEach { symbol -> - if (symbol is KtFunctionSymbol) { - val name = symbol.name - if (DataClassResolver.isCopy(name) || DataClassResolver.isComponentLike(name)) { - componentAndCopyFunctions.add(symbol) + classOrObjectSymbol.getMemberScope().getCallableSymbols().forEach { functionSymbol -> + if (functionSymbol is KtFunctionSymbol) { + val name = functionSymbol.name + if (functionSymbol.origin == KtSymbolOrigin.SOURCE_MEMBER_GENERATED && + (DataClassResolver.isCopy(name) || DataClassResolver.isComponentLike(name)) + ) { + componentAndCopyFunctions.add(functionSymbol) } - if (name.isFromAny) { - functionsFromAny[name] = symbol + if (functionSymbol.dispatchType?.isAny == true && name.isFromAny) { + functionsFromAny[name] = functionSymbol } } }