FIR: make class FirObjectImportedCallableScope to be name aware

This commit is contained in:
Ilya Kirillov
2020-08-24 12:04:25 +03:00
parent 333213bbb9
commit a156cca02a
@@ -8,7 +8,9 @@ package org.jetbrains.kotlin.fir.scopes.impl
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.builder.buildProperty import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
@@ -19,8 +21,8 @@ import org.jetbrains.kotlin.name.Name
class FirObjectImportedCallableScope( class FirObjectImportedCallableScope(
private val importedClassId: ClassId, private val importedClassId: ClassId,
private val objectUseSiteScope: FirScope private val objectUseSiteScope: FirTypeScope
) : FirScope() { ) : FirScope(), FirContainingNamesAwareScope {
override fun processFunctionsByName(name: Name, processor: (FirFunctionSymbol<*>) -> Unit) { override fun processFunctionsByName(name: Name, processor: (FirFunctionSymbol<*>) -> Unit) {
objectUseSiteScope.processFunctionsByName(name) wrapper@{ symbol -> objectUseSiteScope.processFunctionsByName(name) wrapper@{ symbol ->
if (symbol !is FirNamedFunctionSymbol) { if (symbol !is FirNamedFunctionSymbol) {
@@ -71,4 +73,8 @@ class FirObjectImportedCallableScope(
processor(syntheticFunction.symbol) processor(syntheticFunction.symbol)
} }
} }
override fun getCallableNames(): Set<Name> = objectUseSiteScope.getCallableNames()
override fun getClassifierNames(): Set<Name> = emptySet()
} }