From d22eab680e1b7b4cb817d49ed933e46d9bf7211a Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 23 Apr 2019 04:19:03 +0300 Subject: [PATCH] FIR: provide nested classes and objects via declared member scope --- .../fir/scopes/impl/FirClassDeclaredMemberScope.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt index 61af938d429..c95be577e21 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.scopes.FirPosition import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.ProcessorAction.NEXT @@ -55,4 +56,13 @@ class FirClassDeclaredMemberScope( } return NEXT } + + override fun processClassifiersByName(name: Name, position: FirPosition, processor: (ConeClassifierSymbol) -> Boolean): Boolean { + val matchedClass = classIndex[classId.createNestedClassId(name)] + if (matchedClass != null && !processor(matchedClass)) { + return false + } + + return super.processClassifiersByName(name, position, processor) + } }