From d2c72b7c41c60d800505f1c2bf3ae37dd8c2005c Mon Sep 17 00:00:00 2001 From: Andrey Cherkasov Date: Thu, 17 Oct 2024 17:25:45 +0400 Subject: [PATCH] [kotlin] K2 Psi Unifier: compare KaSyntheticJavaPropertySymbols by their javaGetterSymbols and javaSetterSymbols IJ-CR-146017 ^KTIJ-28923 GitOrigin-RevId: dd63e555d01392a3002a844670082519a694d022 --- .../idea/k2/refactoring/introduce/K2SemanticMatcher.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/introduce/K2SemanticMatcher.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/introduce/K2SemanticMatcher.kt index b70f47f660a0..364478daac71 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/introduce/K2SemanticMatcher.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/introduce/K2SemanticMatcher.kt @@ -229,13 +229,21 @@ object K2SemanticMatcher { } } if (targetSymbol is KaSyntheticJavaPropertySymbol && patternSymbol is KaSyntheticJavaPropertySymbol && - targetSymbol.callableId == patternSymbol.callableId + areSyntheticPropertiesEqual(targetSymbol, patternSymbol) ) { return true } return targetSymbol == patternSymbol || symbols[targetSymbol] == patternSymbol } + private fun areSyntheticPropertiesEqual( + targetSyntheticProperty: KaSyntheticJavaPropertySymbol, + patternSyntheticProperty: KaSyntheticJavaPropertySymbol, + ): Boolean { + return targetSyntheticProperty.javaGetterSymbol == patternSyntheticProperty.javaGetterSymbol && + targetSyntheticProperty.javaSetterSymbol == patternSyntheticProperty.javaSetterSymbol + } + context(KaSession) fun areBlockBodyOwnersEqualOrAssociated(targetFunction: KaFunctionSymbol, patternFunction: KaFunctionSymbol): Boolean = targetFunction == patternFunction || blockBodyOwners[targetFunction] == patternFunction