diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt index 1564cd23ef5..46f232bcaf8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.resolve.extensions import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor @@ -26,6 +27,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.lazy.LazyClassContext import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider +import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult import java.util.* @@ -66,13 +68,18 @@ interface SyntheticResolveExtension { ) = instances.forEach { withLinkageErrorLogger(it) { - generateSyntheticClasses( - thisDescriptor, - name, - ctx, - declarationProvider, - result - ) + generateSyntheticClasses(thisDescriptor, name, ctx, declarationProvider, result) + } + } + + override fun generateSyntheticClasses( + thisDescriptor: PackageFragmentDescriptor, name: Name, + ctx: LazyClassContext, declarationProvider: PackageMemberDeclarationProvider, + result: MutableSet + ) = + instances.forEach { + withLinkageErrorLogger(it) { + generateSyntheticClasses(thisDescriptor, name, ctx, declarationProvider, result) } } @@ -139,6 +146,15 @@ interface SyntheticResolveExtension { ) { } + fun generateSyntheticClasses( + thisDescriptor: PackageFragmentDescriptor, + name: Name, + ctx: LazyClassContext, + declarationProvider: PackageMemberDeclarationProvider, + result: MutableSet + ) { + } + fun generateSyntheticMethods( thisDescriptor: ClassDescriptor, name: Name, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyPackageMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyPackageMemberScope.kt index 5063bec429f..2f8d0eda1b4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyPackageMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyPackageMemberScope.kt @@ -51,7 +51,7 @@ class LazyPackageMemberScope( getScopeForMemberDeclarationResolution(declaration) override fun getNonDeclaredClasses(name: Name, result: MutableSet) { - // No extra classes + c.syntheticResolveExtension.generateSyntheticClasses(thisDescriptor, name, c, declarationProvider, result) } override fun getNonDeclaredFunctions(name: Name, result: MutableSet) {