From 8a601b5a0e5b37c65cbea1da536bf58e994276f8 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 21 Nov 2019 16:54:55 +0300 Subject: [PATCH] FIR accessors: add protection against special names --- .../kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt index b95d1ad4d33..b4c8a6fb456 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt @@ -90,7 +90,7 @@ class JavaClassUseSiteMemberScope( private fun processAccessorFunctionsAndPropertiesByName( propertyName: Name, getterNames: List, - setterName: Name, + setterName: Name?, processor: (FirCallableSymbol<*>) -> ProcessorAction ): ProcessorAction { val overrideCandidates = mutableSetOf>() @@ -150,6 +150,9 @@ class JavaClassUseSiteMemberScope( } override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> ProcessorAction): ProcessorAction { + if (name.isSpecial) { + return processAccessorFunctionsAndPropertiesByName(name, emptyList(), null, processor) + } val identifier = name.identifier val capitalizedAsciiName = identifier.capitalizeAsciiOnly() val capitalizedFirstWordName = identifier.capitalizeFirstWord(asciiOnly = true) @@ -160,7 +163,7 @@ class JavaClassUseSiteMemberScope( ).filter { propertyNameByGetMethodName(it) == name } - val setterName = Name.identifier(SETTER_PREFIX + name.asString().capitalize()) + val setterName = Name.identifier(SETTER_PREFIX + identifier.capitalize()) return processAccessorFunctionsAndPropertiesByName(name, getterNames, setterName, processor) }