[FIR] Use only variable symbol inheritors in processPropertiesByName
This commit is contained in:
+2
-2
@@ -56,11 +56,11 @@ class JavaClassEnhancementScope(
|
|||||||
|
|
||||||
private val enhancements = mutableMapOf<FirCallableSymbol<*>, FirCallableSymbol<*>>()
|
private val enhancements = mutableMapOf<FirCallableSymbol<*>, FirCallableSymbol<*>>()
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
useSiteMemberScope.processPropertiesByName(name) process@{ original ->
|
useSiteMemberScope.processPropertiesByName(name) process@{ original ->
|
||||||
|
|
||||||
val field = enhancements.getOrPut(original) { enhance(original, name) }
|
val field = enhancements.getOrPut(original) { enhance(original, name) }
|
||||||
processor(field)
|
processor(field as FirVariableSymbol<*>)
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.processPropertiesByName(name, processor)
|
return super.processPropertiesByName(name, processor)
|
||||||
|
|||||||
+2
-2
@@ -81,7 +81,7 @@ class JavaClassUseSiteMemberScope(
|
|||||||
propertyName: Name,
|
propertyName: Name,
|
||||||
getterNames: List<Name>,
|
getterNames: List<Name>,
|
||||||
setterName: Name?,
|
setterName: Name?,
|
||||||
processor: (FirCallableSymbol<*>) -> Unit
|
processor: (FirVariableSymbol<*>) -> Unit
|
||||||
) {
|
) {
|
||||||
val overrideCandidates = mutableSetOf<FirCallableSymbol<*>>()
|
val overrideCandidates = mutableSetOf<FirCallableSymbol<*>>()
|
||||||
val klass = symbol.fir
|
val klass = symbol.fir
|
||||||
@@ -142,7 +142,7 @@ class JavaClassUseSiteMemberScope(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
// Do not generate accessors at all?
|
// Do not generate accessors at all?
|
||||||
if (name.isSpecial) {
|
if (name.isSpecial) {
|
||||||
return processAccessorFunctionsAndPropertiesByName(name, emptyList(), null, processor)
|
return processAccessorFunctionsAndPropertiesByName(name, emptyList(), null, processor)
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.scopes.jvm
|
|||||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsSettings
|
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsSettings
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class JvmMappedScope(
|
class JvmMappedScope(
|
||||||
@@ -35,7 +35,7 @@ class JvmMappedScope(
|
|||||||
declaredMemberScope.processFunctionsByName(name, processor)
|
declaredMemberScope.processFunctionsByName(name, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
declaredMemberScope.processPropertiesByName(name, processor)
|
declaredMemberScope.processPropertiesByName(name, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class FirSyntheticPropertiesScope(
|
|||||||
processor(property.symbol)
|
processor(property.symbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
val getterNames = possibleGetterNamesByPropertyName(name)
|
val getterNames = possibleGetterNamesByPropertyName(name)
|
||||||
for (getterName in getterNames) {
|
for (getterName in getterNames) {
|
||||||
baseScope.processFunctionsByName(getterName) {
|
baseScope.processFunctionsByName(getterName) {
|
||||||
|
|||||||
+2
-2
@@ -45,7 +45,7 @@ abstract class FirAbstractImportingScope(
|
|||||||
name: Name,
|
name: Name,
|
||||||
token: TowerScopeLevel.Token<T>,
|
token: TowerScopeLevel.Token<T>,
|
||||||
processor: (FirCallableSymbol<*>) -> Unit
|
processor: (FirCallableSymbol<*>) -> Unit
|
||||||
): Unit {
|
) {
|
||||||
val callableId = CallableId(import.packageFqName, import.relativeClassName, name)
|
val callableId = CallableId(import.packageFqName, import.relativeClassName, name)
|
||||||
|
|
||||||
val classId = import.resolvedClassId
|
val classId = import.resolvedClassId
|
||||||
@@ -88,7 +88,7 @@ abstract class FirAbstractImportingScope(
|
|||||||
) { if (it is FirFunctionSymbol<*>) processor(it) }
|
) { if (it is FirFunctionSymbol<*>) processor(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
final override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
return processCallables(
|
return processCallables(
|
||||||
name,
|
name,
|
||||||
TowerScopeLevel.Token.Properties
|
TowerScopeLevel.Token.Properties
|
||||||
|
|||||||
+1
-1
@@ -53,7 +53,7 @@ class FirClassDeclaredMemberScope(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
val symbols = callablesIndex[name] ?: emptyList()
|
val symbols = callablesIndex[name] ?: emptyList()
|
||||||
for (symbol in symbols) {
|
for (symbol in symbols) {
|
||||||
if (symbol is FirVariableSymbol) {
|
if (symbol is FirVariableSymbol) {
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ class FirClassSubstitutionScope(
|
|||||||
return super.processFunctionsByName(name, processor)
|
return super.processFunctionsByName(name, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
return useSiteMemberScope.processPropertiesByName(name) process@{ original ->
|
return useSiteMemberScope.processPropertiesByName(name) process@{ original ->
|
||||||
when (original) {
|
when (original) {
|
||||||
is FirPropertySymbol -> {
|
is FirPropertySymbol -> {
|
||||||
|
|||||||
+3
-3
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.scopes.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirClassUseSiteMemberScope(
|
class FirClassUseSiteMemberScope(
|
||||||
@@ -16,8 +16,8 @@ class FirClassUseSiteMemberScope(
|
|||||||
declaredMemberScope: FirScope
|
declaredMemberScope: FirScope
|
||||||
) : AbstractFirUseSiteMemberScope(session, FirStandardOverrideChecker(session), superTypesScope, declaredMemberScope) {
|
) : AbstractFirUseSiteMemberScope(session, FirStandardOverrideChecker(session), superTypesScope, declaredMemberScope) {
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
val seen = mutableSetOf<FirCallableSymbol<*>>()
|
val seen = mutableSetOf<FirVariableSymbol<*>>()
|
||||||
declaredMemberScope.processPropertiesByName(name) {
|
declaredMemberScope.processPropertiesByName(name) {
|
||||||
seen += it
|
seen += it
|
||||||
processor(it)
|
processor(it)
|
||||||
|
|||||||
+1
-1
@@ -119,7 +119,7 @@ class FirIntegerLiteralTypeScope(private val session: FirSession) : FirScope() {
|
|||||||
processor(symbol)
|
processor(symbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class FirLocalScope : FirScope() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
val property = properties[name]
|
val property = properties[name]
|
||||||
if (property != null) {
|
if (property != null) {
|
||||||
processor(property)
|
processor(property)
|
||||||
|
|||||||
+2
-5
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.fir.scopes.impl
|
|||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -52,7 +49,7 @@ class FirPackageMemberScope(val fqName: FqName, val session: FirSession) : FirSc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
val symbols = callableCache.getOrPut(name) {
|
val symbols = callableCache.getOrPut(name) {
|
||||||
symbolProvider.getTopLevelCallableSymbols(fqName, name)
|
symbolProvider.getTopLevelCallableSymbols(fqName, name)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirQualifierScope(
|
class FirQualifierScope(
|
||||||
@@ -36,7 +33,7 @@ class FirQualifierScope(
|
|||||||
|
|
||||||
override fun processPropertiesByName(
|
override fun processPropertiesByName(
|
||||||
name: Name,
|
name: Name,
|
||||||
processor: (FirCallableSymbol<*>) -> Unit
|
processor: (FirVariableSymbol<*>) -> Unit
|
||||||
) {
|
) {
|
||||||
delegateCallablesScope?.processPropertiesByName(name, processor)
|
delegateCallablesScope?.processPropertiesByName(name, processor)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.isStatic
|
import org.jetbrains.kotlin.fir.declarations.isStatic
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirStaticScope(private val delegateScope: FirScope) : FirScope() {
|
class FirStaticScope(private val delegateScope: FirScope) : FirScope() {
|
||||||
@@ -35,7 +35,7 @@ class FirStaticScope(private val delegateScope: FirScope) : FirScope() {
|
|||||||
|
|
||||||
override fun processPropertiesByName(
|
override fun processPropertiesByName(
|
||||||
name: Name,
|
name: Name,
|
||||||
processor: (FirCallableSymbol<*>) -> Unit
|
processor: (FirVariableSymbol<*>) -> Unit
|
||||||
) {
|
) {
|
||||||
delegateScope.processPropertiesByName(name) {
|
delegateScope.processPropertiesByName(name) {
|
||||||
if ((it.fir as? FirCallableMemberDeclaration<*>)?.isStatic == true) {
|
if ((it.fir as? FirCallableMemberDeclaration<*>)?.isStatic == true) {
|
||||||
|
|||||||
@@ -12,10 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirProperty
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker
|
import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext
|
import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext
|
||||||
@@ -42,13 +39,13 @@ class FirSuperTypeScope private constructor(
|
|||||||
private val typeContext = ConeTypeCheckerContext(isErrorTypeEqualsToAnything = false, isStubTypeEqualsToAnything = false, session)
|
private val typeContext = ConeTypeCheckerContext(isErrorTypeEqualsToAnything = false, isStubTypeEqualsToAnything = false, session)
|
||||||
|
|
||||||
override fun processFunctionsByName(name: Name, processor: (FirFunctionSymbol<*>) -> Unit) {
|
override fun processFunctionsByName(name: Name, processor: (FirFunctionSymbol<*>) -> Unit) {
|
||||||
if(!processCallablesByName(name, processor, absentFunctions, FirScope::processFunctionsByName)) {
|
if (!processCallablesByName(name, processor, absentFunctions, FirScope::processFunctionsByName)) {
|
||||||
super.processFunctionsByName(name, processor)
|
super.processFunctionsByName(name, processor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
if(!processCallablesByName(name, processor, absentProperties, FirScope::processPropertiesByName)) {
|
if (!processCallablesByName(name, processor, absentProperties, FirScope::processPropertiesByName)) {
|
||||||
super.processPropertiesByName(name, processor)
|
super.processPropertiesByName(name, processor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes
|
package org.jetbrains.kotlin.fir.scopes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
abstract class FirIterableScope : FirScope() {
|
abstract class FirIterableScope : FirScope() {
|
||||||
@@ -41,7 +41,7 @@ abstract class FirIterableScope : FirScope() {
|
|||||||
return processComposite(FirScope::processFunctionsByName, name, processor)
|
return processComposite(FirScope::processFunctionsByName, name, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirCallableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
return processComposite(FirScope::processPropertiesByName, name, processor)
|
return processComposite(FirScope::processPropertiesByName, name, processor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes
|
package org.jetbrains.kotlin.fir.scopes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
abstract class FirScope {
|
abstract class FirScope {
|
||||||
@@ -23,8 +23,7 @@ abstract class FirScope {
|
|||||||
|
|
||||||
open fun processPropertiesByName(
|
open fun processPropertiesByName(
|
||||||
name: Name,
|
name: Name,
|
||||||
// NB: it'd be great to write FirVariableSymbol<*> here, but there is FirAccessorSymbol :(
|
processor: (FirVariableSymbol<*>) -> Unit
|
||||||
processor: (FirCallableSymbol<*>) -> Unit
|
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user