Don't call possibleGetterNamesByPropertyName without a reason
This commit is contained in:
+36
-39
@@ -81,54 +81,51 @@ class JavaClassUseSiteMemberScope(
|
|||||||
processor: (FirVariableSymbol<*>) -> Unit
|
processor: (FirVariableSymbol<*>) -> Unit
|
||||||
) {
|
) {
|
||||||
val overrideCandidates = mutableSetOf<FirCallableSymbol<*>>()
|
val overrideCandidates = mutableSetOf<FirCallableSymbol<*>>()
|
||||||
val klass = symbol.fir
|
|
||||||
declaredMemberScope.processPropertiesByName(propertyName) { variableSymbol ->
|
declaredMemberScope.processPropertiesByName(propertyName) { variableSymbol ->
|
||||||
if (variableSymbol.isStatic) return@processPropertiesByName
|
if (variableSymbol.isStatic) return@processPropertiesByName
|
||||||
overrideCandidates += variableSymbol
|
overrideCandidates += variableSymbol
|
||||||
processor(variableSymbol)
|
processor(variableSymbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (klass is FirJavaClass) {
|
for (getterName in getterNames) {
|
||||||
for (getterName in getterNames) {
|
var getterSymbol: FirNamedFunctionSymbol? = null
|
||||||
var getterSymbol: FirNamedFunctionSymbol? = null
|
var setterSymbol: FirNamedFunctionSymbol? = null
|
||||||
var setterSymbol: FirNamedFunctionSymbol? = null
|
declaredMemberScope.processFunctionsByName(getterName) { functionSymbol ->
|
||||||
declaredMemberScope.processFunctionsByName(getterName) { functionSymbol ->
|
if (getterSymbol == null) {
|
||||||
if (getterSymbol == null) {
|
val function = functionSymbol.fir
|
||||||
val function = functionSymbol.fir
|
if (!function.isStatic && function.valueParameters.isEmpty()) {
|
||||||
if (!function.isStatic && function.valueParameters.isEmpty()) {
|
getterSymbol = functionSymbol
|
||||||
getterSymbol = functionSymbol
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val setterName = session.syntheticNamesProvider.setterNameByGetterName(getterName)
|
}
|
||||||
if (getterSymbol != null && setterName != null) {
|
val setterName = session.syntheticNamesProvider.setterNameByGetterName(getterName)
|
||||||
declaredMemberScope.processFunctionsByName(setterName) { functionSymbol ->
|
if (getterSymbol != null && setterName != null) {
|
||||||
if (setterSymbol == null) {
|
declaredMemberScope.processFunctionsByName(setterName) { functionSymbol ->
|
||||||
val function = functionSymbol.fir
|
if (setterSymbol == null) {
|
||||||
if (!function.isStatic && function.valueParameters.size == 1) {
|
val function = functionSymbol.fir
|
||||||
val returnTypeRef = function.returnTypeRef
|
if (!function.isStatic && function.valueParameters.size == 1) {
|
||||||
if (returnTypeRef.isUnit) {
|
val returnTypeRef = function.returnTypeRef
|
||||||
// Unit return type
|
if (returnTypeRef.isUnit) {
|
||||||
setterSymbol = functionSymbol
|
// Unit return type
|
||||||
} else if (returnTypeRef is FirJavaTypeRef) {
|
setterSymbol = functionSymbol
|
||||||
// Void/void return type
|
} else if (returnTypeRef is FirJavaTypeRef) {
|
||||||
when (val returnType = returnTypeRef.type) {
|
// Void/void return type
|
||||||
is JavaPrimitiveTypeImpl ->
|
when (val returnType = returnTypeRef.type) {
|
||||||
if (returnType.psi.kind == JvmPrimitiveTypeKind.VOID) {
|
is JavaPrimitiveTypeImpl ->
|
||||||
setterSymbol = functionSymbol
|
if (returnType.psi.kind == JvmPrimitiveTypeKind.VOID) {
|
||||||
}
|
setterSymbol = functionSymbol
|
||||||
is JavaPrimitiveType ->
|
}
|
||||||
if (returnType.type == null) {
|
is JavaPrimitiveType ->
|
||||||
setterSymbol = functionSymbol
|
if (returnType.type == null) {
|
||||||
}
|
setterSymbol = functionSymbol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val accessorSymbol = generateAccessorSymbol(getterSymbol!!, setterSymbol, propertyName)
|
|
||||||
overrideCandidates += accessorSymbol
|
|
||||||
}
|
}
|
||||||
|
val accessorSymbol = generateAccessorSymbol(getterSymbol!!, setterSymbol, propertyName)
|
||||||
|
overrideCandidates += accessorSymbol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,11 +141,11 @@ class JavaClassUseSiteMemberScope(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
// Do not generate accessors at all?
|
val getterNames = if (symbol.fir is FirJavaClass) {
|
||||||
if (name.isSpecial) {
|
FirJavaSyntheticNamesProvider.possibleGetterNamesByPropertyName(name)
|
||||||
return processAccessorFunctionsAndPropertiesByName(name, emptyList(), processor)
|
} else {
|
||||||
|
emptyList()
|
||||||
}
|
}
|
||||||
val getterNames = FirJavaSyntheticNamesProvider.possibleGetterNamesByPropertyName(name)
|
|
||||||
return processAccessorFunctionsAndPropertiesByName(name, getterNames, processor)
|
return processAccessorFunctionsAndPropertiesByName(name, getterNames, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user