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.defaultType
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedReferenceError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedReferenceError
|
||||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
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.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
||||||
@@ -557,10 +557,10 @@ private fun JavaAnnotationArgument.toFirExpression(
|
|||||||
val classId = this@toFirExpression.enumClassId
|
val classId = this@toFirExpression.enumClassId
|
||||||
val entryName = this@toFirExpression.entryName
|
val entryName = this@toFirExpression.entryName
|
||||||
val calleeReference = if (classId != null && entryName != null) {
|
val calleeReference = if (classId != null && entryName != null) {
|
||||||
val callableSymbol = session.firSymbolProvider.getClassDeclaredCallableSymbols(
|
val propertySymbol = session.firSymbolProvider.getClassDeclaredPropertySymbols(
|
||||||
classId, entryName
|
classId, entryName
|
||||||
).firstOrNull()
|
).firstOrNull()
|
||||||
callableSymbol?.let {
|
propertySymbol?.let {
|
||||||
buildResolvedNamedReference {
|
buildResolvedNamedReference {
|
||||||
name = entryName
|
name = entryName
|
||||||
resolvedSymbol = it
|
resolvedSymbol = it
|
||||||
|
|||||||
+4
-4
@@ -197,16 +197,16 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
|
|
||||||
private fun ClassId.toEnumEntryReferenceExpression(name: Name): FirExpression {
|
private fun ClassId.toEnumEntryReferenceExpression(name: Name): FirExpression {
|
||||||
return buildFunctionCall {
|
return buildFunctionCall {
|
||||||
val entryCallableSymbol =
|
val entryPropertySymbol =
|
||||||
this@KotlinDeserializedJvmSymbolsProvider.session.firSymbolProvider.getClassDeclaredCallableSymbols(
|
this@KotlinDeserializedJvmSymbolsProvider.session.firSymbolProvider.getClassDeclaredPropertySymbols(
|
||||||
this@toEnumEntryReferenceExpression, name,
|
this@toEnumEntryReferenceExpression, name,
|
||||||
).firstOrNull()
|
).firstOrNull()
|
||||||
|
|
||||||
calleeReference = when {
|
calleeReference = when {
|
||||||
entryCallableSymbol != null -> {
|
entryPropertySymbol != null -> {
|
||||||
buildResolvedNamedReference {
|
buildResolvedNamedReference {
|
||||||
this.name = name
|
this.name = name
|
||||||
resolvedSymbol = entryCallableSymbol
|
resolvedSymbol = entryPropertySymbol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
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
|
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 classSymbol = getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol ?: return emptyList()
|
||||||
val declaredMemberScope = declaredMemberScope(classSymbol.fir)
|
val declaredMemberScope = declaredMemberScope(classSymbol.fir)
|
||||||
val result = mutableListOf<FirCallableSymbol<*>>()
|
val result = mutableListOf<FirVariableSymbol<*>>()
|
||||||
declaredMemberScope.processFunctionsByName(name, result::add)
|
|
||||||
declaredMemberScope.processPropertiesByName(name, result::add)
|
declaredMemberScope.processPropertiesByName(name, result::add)
|
||||||
if (name == classId.shortClassName) declaredMemberScope.processDeclaredConstructors(result::add)
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user