Split scripts and class/object declarations in DeclarationsProvider
simplifies code in most places, avoids filtering in places where they should be processed independently
This commit is contained in:
+3
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.cli.jvm.repl
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
|
|
||||||
@@ -45,6 +46,8 @@ open class DelegatePackageMemberDeclarationProvider(var delegate: PackageMemberD
|
|||||||
|
|
||||||
override fun getClassOrObjectDeclarations(name: Name) = delegate.getClassOrObjectDeclarations(name)
|
override fun getClassOrObjectDeclarations(name: Name) = delegate.getClassOrObjectDeclarations(name)
|
||||||
|
|
||||||
|
override fun getScriptDeclarations(name: Name): Collection<KtScriptInfo> = delegate.getScriptDeclarations(name)
|
||||||
|
|
||||||
override fun getTypeAliasDeclarations(name: Name) = delegate.getTypeAliasDeclarations(name)
|
override fun getTypeAliasDeclarations(name: Name) = delegate.getTypeAliasDeclarations(name)
|
||||||
|
|
||||||
override fun getDeclarationNames() = delegate.getDeclarationNames()
|
override fun getDeclarationNames() = delegate.getDeclarationNames()
|
||||||
|
|||||||
+4
-1
@@ -17,6 +17,8 @@ import org.jetbrains.kotlin.resolve.DescriptorFactory
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassOrObjectInfo
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.ClassResolutionScopesSupport
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.ClassResolutionScopesSupport
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope
|
||||||
@@ -136,7 +138,8 @@ class SyntheticClassOrObjectDescriptor(
|
|||||||
override fun getFunctionDeclarations(name: Name): Collection<KtNamedFunction> = emptyList()
|
override fun getFunctionDeclarations(name: Name): Collection<KtNamedFunction> = emptyList()
|
||||||
override fun getPropertyDeclarations(name: Name): Collection<KtProperty> = emptyList()
|
override fun getPropertyDeclarations(name: Name): Collection<KtProperty> = emptyList()
|
||||||
override fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry> = emptyList()
|
override fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry> = emptyList()
|
||||||
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassLikeInfo> = emptyList()
|
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassOrObjectInfo<*>> = emptyList()
|
||||||
|
override fun getScriptDeclarations(name: Name): Collection<KtScriptInfo> = emptyList()
|
||||||
override fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias> = emptyList()
|
override fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias> = emptyList()
|
||||||
override fun getDeclarationNames() = emptySet<Name>()
|
override fun getDeclarationNames() = emptySet<Name>()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ import org.jetbrains.kotlin.psi.*;
|
|||||||
import org.jetbrains.kotlin.resolve.*;
|
import org.jetbrains.kotlin.resolve.*;
|
||||||
import org.jetbrains.kotlin.resolve.checkers.PlatformDiagnosticSuppressor;
|
import org.jetbrains.kotlin.resolve.checkers.PlatformDiagnosticSuppressor;
|
||||||
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension;
|
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassOrObjectInfo;
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo;
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyAnnotations;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyAnnotations;
|
||||||
@@ -263,20 +261,12 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext {
|
|||||||
|
|
||||||
result.addAll(ContainerUtil.mapNotNull(
|
result.addAll(ContainerUtil.mapNotNull(
|
||||||
provider.getClassOrObjectDeclarations(fqName.shortName()),
|
provider.getClassOrObjectDeclarations(fqName.shortName()),
|
||||||
classLikeInfo -> {
|
classOrObjectInfo -> getClassDescriptor(classOrObjectInfo.getCorrespondingClassOrObject(), location)
|
||||||
if (classLikeInfo instanceof KtClassOrObjectInfo) {
|
));
|
||||||
//noinspection RedundantCast
|
|
||||||
return getClassDescriptor(((KtClassOrObjectInfo) classLikeInfo).getCorrespondingClassOrObject(), location);
|
result.addAll(ContainerUtil.mapNotNull(
|
||||||
}
|
provider.getScriptDeclarations(fqName.shortName()),
|
||||||
else if (classLikeInfo instanceof KtScriptInfo) {
|
scriptInfo -> getScriptDescriptor(scriptInfo.getScript())
|
||||||
return getScriptDescriptor(((KtScriptInfo) classLikeInfo).getScript());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw new IllegalStateException(
|
|
||||||
"Unexpected " + classLikeInfo + " of type " + classLikeInfo.getClass().getName()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
));
|
));
|
||||||
|
|
||||||
result.addAll(ContainerUtil.map(
|
result.addAll(ContainerUtil.map(
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtObjectDeclaration;
|
|||||||
public class KtClassInfoUtil {
|
public class KtClassInfoUtil {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KtClassLikeInfo createClassLikeInfo(@NotNull KtClassOrObject classOrObject) {
|
public static KtClassOrObjectInfo<? extends KtClassOrObject> createClassLikeInfo(@NotNull KtClassOrObject classOrObject) {
|
||||||
if (classOrObject instanceof KtClass) {
|
if (classOrObject instanceof KtClass) {
|
||||||
return new KtClassInfo((KtClass) classOrObject);
|
return new KtClassInfo((KtClass) classOrObject);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-7
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.safeNameForLazyResolve
|
import org.jetbrains.kotlin.psi.psiUtil.safeNameForLazyResolve
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassInfoUtil
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassInfoUtil
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassOrObjectInfo
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
@@ -34,7 +34,8 @@ abstract class AbstractPsiBasedDeclarationProvider(storageManager: StorageManage
|
|||||||
val allDeclarations = ArrayList<KtDeclaration>()
|
val allDeclarations = ArrayList<KtDeclaration>()
|
||||||
val functions = ArrayListMultimap.create<Name, KtNamedFunction>()
|
val functions = ArrayListMultimap.create<Name, KtNamedFunction>()
|
||||||
val properties = ArrayListMultimap.create<Name, KtProperty>()
|
val properties = ArrayListMultimap.create<Name, KtProperty>()
|
||||||
val classesAndObjects = ArrayListMultimap.create<Name, KtClassLikeInfo>() // order matters here
|
val classesAndObjects = ArrayListMultimap.create<Name, KtClassOrObjectInfo<*>>() // order matters here
|
||||||
|
val scripts = ArrayListMultimap.create<Name, KtScriptInfo>()
|
||||||
val typeAliases = ArrayListMultimap.create<Name, KtTypeAlias>()
|
val typeAliases = ArrayListMultimap.create<Name, KtTypeAlias>()
|
||||||
val destructuringDeclarationsEntries = ArrayListMultimap.create<Name, KtDestructuringDeclarationEntry>()
|
val destructuringDeclarationsEntries = ArrayListMultimap.create<Name, KtDestructuringDeclarationEntry>()
|
||||||
val names = hashSetOf<Name>()
|
val names = hashSetOf<Name>()
|
||||||
@@ -52,10 +53,8 @@ abstract class AbstractPsiBasedDeclarationProvider(storageManager: StorageManage
|
|||||||
typeAliases.put(declaration.nameAsName.safeNameForLazyResolve(), declaration)
|
typeAliases.put(declaration.nameAsName.safeNameForLazyResolve(), declaration)
|
||||||
is KtClassOrObject ->
|
is KtClassOrObject ->
|
||||||
classesAndObjects.put(declaration.nameAsName.safeNameForLazyResolve(), KtClassInfoUtil.createClassLikeInfo(declaration))
|
classesAndObjects.put(declaration.nameAsName.safeNameForLazyResolve(), KtClassInfoUtil.createClassLikeInfo(declaration))
|
||||||
is KtScript -> {
|
is KtScript ->
|
||||||
val scriptInfo = KtScriptInfo(declaration)
|
scripts.put(KtScriptInfo(declaration).script.nameAsName, KtScriptInfo(declaration))
|
||||||
classesAndObjects.put(scriptInfo.script.nameAsName, scriptInfo)
|
|
||||||
}
|
|
||||||
is KtDestructuringDeclaration -> {
|
is KtDestructuringDeclaration -> {
|
||||||
for (entry in declaration.entries) {
|
for (entry in declaration.entries) {
|
||||||
val name = entry.nameAsName.safeNameForLazyResolve()
|
val name = entry.nameAsName.safeNameForLazyResolve()
|
||||||
@@ -99,8 +98,11 @@ abstract class AbstractPsiBasedDeclarationProvider(storageManager: StorageManage
|
|||||||
override fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry> =
|
override fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry> =
|
||||||
index().destructuringDeclarationsEntries[name.safeNameForLazyResolve()].toList()
|
index().destructuringDeclarationsEntries[name.safeNameForLazyResolve()].toList()
|
||||||
|
|
||||||
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassLikeInfo> =
|
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassOrObjectInfo<*>> =
|
||||||
index().classesAndObjects[name.safeNameForLazyResolve()]
|
index().classesAndObjects[name.safeNameForLazyResolve()]
|
||||||
|
|
||||||
|
override fun getScriptDeclarations(name: Name): MutableList<KtScriptInfo> =
|
||||||
|
index().scripts[name.safeNameForLazyResolve()]
|
||||||
|
|
||||||
override fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias> = index().typeAliases[name.safeNameForLazyResolve()]
|
override fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias> = index().typeAliases[name.safeNameForLazyResolve()]
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -43,6 +43,8 @@ class CombinedPackageMemberDeclarationProvider(
|
|||||||
|
|
||||||
override fun getClassOrObjectDeclarations(name: Name) = providers.flatMap { it.getClassOrObjectDeclarations(name) }
|
override fun getClassOrObjectDeclarations(name: Name) = providers.flatMap { it.getClassOrObjectDeclarations(name) }
|
||||||
|
|
||||||
|
override fun getScriptDeclarations(name: Name) = providers.flatMap { it.getScriptDeclarations(name) }
|
||||||
|
|
||||||
override fun getTypeAliasDeclarations(name: Name) = providers.flatMap { it.getTypeAliasDeclarations(name) }
|
override fun getTypeAliasDeclarations(name: Name) = providers.flatMap { it.getTypeAliasDeclarations(name) }
|
||||||
|
|
||||||
override fun getDeclarationNames(): Set<Name> = providers.flatMapTo(HashSet()) { it.getDeclarationNames() }
|
override fun getDeclarationNames(): Set<Name> = providers.flatMapTo(HashSet()) { it.getDeclarationNames() }
|
||||||
|
|||||||
+5
-2
@@ -18,7 +18,8 @@ package org.jetbrains.kotlin.resolve.lazy.declarations
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassOrObjectInfo
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
|
|
||||||
interface DeclarationProvider {
|
interface DeclarationProvider {
|
||||||
@@ -30,7 +31,9 @@ interface DeclarationProvider {
|
|||||||
|
|
||||||
fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry>
|
fun getDestructuringDeclarationsEntries(name: Name): Collection<KtDestructuringDeclarationEntry>
|
||||||
|
|
||||||
fun getClassOrObjectDeclarations(name: Name): Collection<KtClassLikeInfo>
|
fun getClassOrObjectDeclarations(name: Name): Collection<KtClassOrObjectInfo<*>>
|
||||||
|
|
||||||
|
fun getScriptDeclarations(name: Name): Collection<KtScriptInfo>
|
||||||
|
|
||||||
fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias>
|
fun getTypeAliasDeclarations(name: Name): Collection<KtTypeAlias>
|
||||||
|
|
||||||
|
|||||||
+3
-7
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.AbstractPsiBasedDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.AbstractPsiBasedDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
@@ -54,12 +53,9 @@ protected constructor(
|
|||||||
|
|
||||||
private fun doGetClasses(name: Name): List<ClassDescriptor> {
|
private fun doGetClasses(name: Name): List<ClassDescriptor> {
|
||||||
val result = linkedSetOf<ClassDescriptor>()
|
val result = linkedSetOf<ClassDescriptor>()
|
||||||
declarationProvider.getClassOrObjectDeclarations(name).mapNotNullTo(result) {
|
declarationProvider.getClassOrObjectDeclarations(name).mapTo(result) {
|
||||||
if (it is KtScriptInfo) null
|
val isExternal = it.modifierList?.hasModifier(KtTokens.EXTERNAL_KEYWORD) ?: false
|
||||||
else {
|
LazyClassDescriptor(c, thisDescriptor, name, it, isExternal)
|
||||||
val isExternal = it.modifierList?.hasModifier(KtTokens.EXTERNAL_KEYWORD) ?: false
|
|
||||||
LazyClassDescriptor(c, thisDescriptor, name, it, isExternal)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
getNonDeclaredClasses(name, result)
|
getNonDeclaredClasses(name, result)
|
||||||
return result.toList()
|
return result.toList()
|
||||||
|
|||||||
+10
-12
@@ -27,9 +27,8 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.safeNameForLazyResolve
|
import org.jetbrains.kotlin.psi.psiUtil.safeNameForLazyResolve
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassInfoUtil
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassInfoUtil
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtClassOrObjectInfo
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
@@ -74,18 +73,17 @@ class StubBasedPackageMemberDeclarationProvider(
|
|||||||
|
|
||||||
override fun getDeclarationNames() = declarationNames_
|
override fun getDeclarationNames() = declarationNames_
|
||||||
|
|
||||||
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassLikeInfo> {
|
override fun getClassOrObjectDeclarations(name: Name): Collection<KtClassOrObjectInfo<*>> = runReadAction {
|
||||||
val result = ArrayList<KtClassLikeInfo>()
|
KotlinFullClassNameIndex.getInstance().get(childName(name), project, searchScope)
|
||||||
runReadAction {
|
.map { KtClassInfoUtil.createClassLikeInfo(it) }
|
||||||
KotlinFullClassNameIndex.getInstance().get(childName(name), project, searchScope)
|
|
||||||
.mapTo(result) { KtClassInfoUtil.createClassLikeInfo(it) }
|
|
||||||
|
|
||||||
KotlinScriptFqnIndex.instance.get(childName(name), project, searchScope)
|
|
||||||
.mapTo(result, ::KtScriptInfo)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getScriptDeclarations(name: Name): Collection<KtScriptInfo> = runReadAction {
|
||||||
|
KotlinScriptFqnIndex.instance.get(childName(name), project, searchScope)
|
||||||
|
.map(::KtScriptInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun getFunctionDeclarations(name: Name): Collection<KtNamedFunction> {
|
override fun getFunctionDeclarations(name: Name): Collection<KtNamedFunction> {
|
||||||
return runReadAction {
|
return runReadAction {
|
||||||
KotlinTopLevelFunctionFqnNameIndex.getInstance().get(childName(name), project, searchScope)
|
KotlinTopLevelFunctionFqnNameIndex.getInstance().get(childName(name), project, searchScope)
|
||||||
|
|||||||
+2
-5
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
|
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.KtScriptInfo
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyScriptDescriptor
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyScriptDescriptor
|
||||||
|
|
||||||
@@ -23,10 +22,8 @@ class ScriptingResolveExtension : SyntheticResolveExtension {
|
|||||||
declarationProvider: PackageMemberDeclarationProvider,
|
declarationProvider: PackageMemberDeclarationProvider,
|
||||||
result: MutableSet<ClassDescriptor>
|
result: MutableSet<ClassDescriptor>
|
||||||
) {
|
) {
|
||||||
declarationProvider.getClassOrObjectDeclarations(name).mapNotNullTo(result) {
|
declarationProvider.getScriptDeclarations(name).mapTo(result) {
|
||||||
if (it is KtScriptInfo) {
|
LazyScriptDescriptor(ctx as ResolveSession, thisDescriptor, name, it)
|
||||||
LazyScriptDescriptor(ctx as ResolveSession, thisDescriptor, name, it)
|
|
||||||
} else null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
super.generateSyntheticClasses(thisDescriptor, name, ctx, declarationProvider, result)
|
super.generateSyntheticClasses(thisDescriptor, name, ctx, declarationProvider, result)
|
||||||
|
|||||||
Reference in New Issue
Block a user