Simplify: FirSymbolProvider.getClassDeclaredPropertySymbols
This commit is contained in:
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.resolve.bindSymbolToLookupTag
|
||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedReferenceError
|
||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.getClassDeclaredCallableSymbols
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.getClassDeclaredPropertySymbols
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
||||
@@ -557,10 +557,10 @@ private fun JavaAnnotationArgument.toFirExpression(
|
||||
val classId = this@toFirExpression.enumClassId
|
||||
val entryName = this@toFirExpression.entryName
|
||||
val calleeReference = if (classId != null && entryName != null) {
|
||||
val callableSymbol = session.firSymbolProvider.getClassDeclaredCallableSymbols(
|
||||
val propertySymbol = session.firSymbolProvider.getClassDeclaredPropertySymbols(
|
||||
classId, entryName
|
||||
).firstOrNull()
|
||||
callableSymbol?.let {
|
||||
propertySymbol?.let {
|
||||
buildResolvedNamedReference {
|
||||
name = entryName
|
||||
resolvedSymbol = it
|
||||
|
||||
+4
-4
@@ -197,16 +197,16 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
|
||||
private fun ClassId.toEnumEntryReferenceExpression(name: Name): FirExpression {
|
||||
return buildFunctionCall {
|
||||
val entryCallableSymbol =
|
||||
this@KotlinDeserializedJvmSymbolsProvider.session.firSymbolProvider.getClassDeclaredCallableSymbols(
|
||||
val entryPropertySymbol =
|
||||
this@KotlinDeserializedJvmSymbolsProvider.session.firSymbolProvider.getClassDeclaredPropertySymbols(
|
||||
this@toEnumEntryReferenceExpression, name,
|
||||
).firstOrNull()
|
||||
|
||||
calleeReference = when {
|
||||
entryCallableSymbol != null -> {
|
||||
entryPropertySymbol != null -> {
|
||||
buildResolvedNamedReference {
|
||||
this.name = name
|
||||
resolvedSymbol = entryCallableSymbol
|
||||
resolvedSymbol = entryPropertySymbol
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
|
||||
+2
-4
@@ -35,13 +35,11 @@ abstract class FirSymbolProvider(val session: FirSession) : FirSessionComponent
|
||||
abstract fun getPackage(fqName: FqName): FqName? // TODO: Replace to symbol sometime
|
||||
}
|
||||
|
||||
fun FirSymbolProvider.getClassDeclaredCallableSymbols(classId: ClassId, name: Name): List<FirCallableSymbol<*>> {
|
||||
fun FirSymbolProvider.getClassDeclaredPropertySymbols(classId: ClassId, name: Name): List<FirVariableSymbol<*>> {
|
||||
val classSymbol = getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol ?: return emptyList()
|
||||
val declaredMemberScope = declaredMemberScope(classSymbol.fir)
|
||||
val result = mutableListOf<FirCallableSymbol<*>>()
|
||||
declaredMemberScope.processFunctionsByName(name, result::add)
|
||||
val result = mutableListOf<FirVariableSymbol<*>>()
|
||||
declaredMemberScope.processPropertiesByName(name, result::add)
|
||||
if (name == classId.shortClassName) declaredMemberScope.processDeclaredConstructors(result::add)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user