Renamed KtScope to MemberScope
This commit is contained in:
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.resolve.BindingContext;
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKt;
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer;
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer;
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
@@ -468,7 +468,7 @@ public class ClosureCodegen extends MemberCodegen<KtElement> {
|
|||||||
ClassDescriptor elementClass = elementDescriptor.getExtensionReceiverParameter() == null
|
ClassDescriptor elementClass = elementDescriptor.getExtensionReceiverParameter() == null
|
||||||
? DescriptorUtilsKt.getBuiltIns(elementDescriptor).getFunction(arity)
|
? DescriptorUtilsKt.getBuiltIns(elementDescriptor).getFunction(arity)
|
||||||
: DescriptorUtilsKt.getBuiltIns(elementDescriptor).getExtensionFunction(arity);
|
: DescriptorUtilsKt.getBuiltIns(elementDescriptor).getExtensionFunction(arity);
|
||||||
KtScope scope = elementClass.getDefaultType().getMemberScope();
|
MemberScope scope = elementClass.getDefaultType().getMemberScope();
|
||||||
return scope.getFunctions(OperatorNameConventions.INVOKE, NoLookupLocation.FROM_BACKEND).iterator().next();
|
return scope.getFunctions(OperatorNameConventions.INVOKE, NoLookupLocation.FROM_BACKEND).iterator().next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.DelegationToTraitImpl
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.DelegationToTraitImpl
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.org.objectweb.asm.MethodVisitor
|
import org.jetbrains.org.objectweb.asm.MethodVisitor
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes.*
|
import org.jetbrains.org.objectweb.asm.Opcodes.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -65,7 +65,7 @@ public class InterfaceImplBodyCodegen(
|
|||||||
descriptor, Name.identifier(JvmAbi.DEFAULT_IMPLS_CLASS_NAME),
|
descriptor, Name.identifier(JvmAbi.DEFAULT_IMPLS_CLASS_NAME),
|
||||||
Modality.FINAL, Collections.emptyList(), SourceElement.NO_SOURCE)
|
Modality.FINAL, Collections.emptyList(), SourceElement.NO_SOURCE)
|
||||||
|
|
||||||
classDescriptorImpl.initialize(KtScope.empty(classDescriptorImpl), emptySet(), null)
|
classDescriptorImpl.initialize(MemberScope.empty(classDescriptorImpl), emptySet(), null)
|
||||||
return classDescriptorImpl
|
return classDescriptorImpl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import org.jetbrains.kotlin.resolve.jvm.diagnostics.MultifileClassPart
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.OtherOrigin
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.OtherOrigin
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor
|
||||||
@@ -70,7 +70,7 @@ public class MultifileClassCodegen(
|
|||||||
getDeserializedCallables(compiledPackageFragment)
|
getDeserializedCallables(compiledPackageFragment)
|
||||||
|
|
||||||
private fun getDeserializedCallables(compiledPackageFragment: PackageFragmentDescriptor) =
|
private fun getDeserializedCallables(compiledPackageFragment: PackageFragmentDescriptor) =
|
||||||
compiledPackageFragment.getMemberScope().getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.ALL_NAME_FILTER).filterIsInstance<DeserializedCallableMemberDescriptor>()
|
compiledPackageFragment.getMemberScope().getDescriptors(DescriptorKindFilter.CALLABLES, MemberScope.ALL_NAME_FILTER).filterIsInstance<DeserializedCallableMemberDescriptor>()
|
||||||
|
|
||||||
public val packageParts = PackageParts(facadeFqName.parent().asString())
|
public val packageParts = PackageParts(facadeFqName.parent().asString())
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase;
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.ConstructorDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.ConstructorDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.jetbrains.kotlin.types.TypeConstructor;
|
import org.jetbrains.kotlin.types.TypeConstructor;
|
||||||
@@ -160,14 +160,14 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public KtScope getUnsubstitutedMemberScope() {
|
public MemberScope getUnsubstitutedMemberScope() {
|
||||||
return KtScope.Companion.empty(this); // used for getDefaultType
|
return MemberScope.Companion.empty(this); // used for getDefaultType
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getStaticScope() {
|
public MemberScope getStaticScope() {
|
||||||
return KtScope.Companion.empty(this);
|
return MemberScope.Companion.empty(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -49,7 +49,7 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedValueArgument;
|
|||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
||||||
import org.jetbrains.kotlin.resolve.constants.EnumValue;
|
import org.jetbrains.kotlin.resolve.constants.EnumValue;
|
||||||
import org.jetbrains.kotlin.resolve.constants.NullValue;
|
import org.jetbrains.kotlin.resolve.constants.NullValue;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.jetbrains.org.objectweb.asm.Type;
|
import org.jetbrains.org.objectweb.asm.Type;
|
||||||
@@ -101,7 +101,7 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid {
|
|||||||
supertypes,
|
supertypes,
|
||||||
KotlinSourceElementKt.toSourceElement(element)
|
KotlinSourceElementKt.toSourceElement(element)
|
||||||
);
|
);
|
||||||
classDescriptor.initialize(KtScope.Companion.empty(classDescriptor), Collections.<ConstructorDescriptor>emptySet(), null);
|
classDescriptor.initialize(MemberScope.Companion.empty(classDescriptor), Collections.<ConstructorDescriptor>emptySet(), null);
|
||||||
|
|
||||||
bindingTrace.record(CLASS_FOR_CALLABLE, callableDescriptor, classDescriptor);
|
bindingTrace.record(CLASS_FOR_CALLABLE, callableDescriptor, classDescriptor);
|
||||||
return classDescriptor;
|
return classDescriptor;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.psi.psiUtil.PsiUtilsKt;
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
||||||
import org.jetbrains.kotlin.util.slicedMap.BasicWritableSlice;
|
import org.jetbrains.kotlin.util.slicedMap.BasicWritableSlice;
|
||||||
import org.jetbrains.kotlin.util.slicedMap.Slices;
|
import org.jetbrains.kotlin.util.slicedMap.Slices;
|
||||||
@@ -212,7 +212,7 @@ public class CodegenBinding {
|
|||||||
new ClassDescriptorImpl(descriptor, Name.special("<script-" + simpleName + ">"), Modality.FINAL,
|
new ClassDescriptorImpl(descriptor, Name.special("<script-" + simpleName + ">"), Modality.FINAL,
|
||||||
Collections.singleton(DescriptorUtilsKt.getBuiltIns(descriptor).getAnyType()),
|
Collections.singleton(DescriptorUtilsKt.getBuiltIns(descriptor).getAnyType()),
|
||||||
KotlinSourceElementKt.toSourceElement(script));
|
KotlinSourceElementKt.toSourceElement(script));
|
||||||
classDescriptor.initialize(KtScope.Companion.empty(classDescriptor), Collections.<ConstructorDescriptor>emptySet(), null);
|
classDescriptor.initialize(MemberScope.Companion.empty(classDescriptor), Collections.<ConstructorDescriptor>emptySet(), null);
|
||||||
|
|
||||||
recordClosure(trace, classDescriptor, null, asmType, fileClassesManager);
|
recordClosure(trace, classDescriptor, null, asmType, fileClassesManager);
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind;
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter;
|
import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType;
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
@@ -307,7 +307,7 @@ public class JetTypeMapper {
|
|||||||
|
|
||||||
String facadeSimpleName;
|
String facadeSimpleName;
|
||||||
|
|
||||||
KtScope scope = packageFragmentDescriptor.getMemberScope();
|
MemberScope scope = packageFragmentDescriptor.getMemberScope();
|
||||||
if (scope instanceof AbstractScopeAdapter) {
|
if (scope instanceof AbstractScopeAdapter) {
|
||||||
scope = ((AbstractScopeAdapter) scope).getActualScope();
|
scope = ((AbstractScopeAdapter) scope).getActualScope();
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.resolve.*
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
|
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.util.slicedMap.ReadOnlySlice
|
import org.jetbrains.kotlin.util.slicedMap.ReadOnlySlice
|
||||||
import org.jetbrains.kotlin.util.slicedMap.WritableSlice
|
import org.jetbrains.kotlin.util.slicedMap.WritableSlice
|
||||||
import org.jetbrains.kotlin.utils.emptyOrSingletonList
|
import org.jetbrains.kotlin.utils.emptyOrSingletonList
|
||||||
@@ -127,7 +127,7 @@ public class CliLightClassGenerationSupport(project: Project) : LightClassGenera
|
|||||||
|
|
||||||
override fun getSubPackages(fqn: FqName, scope: GlobalSearchScope): Collection<FqName> {
|
override fun getSubPackages(fqn: FqName, scope: GlobalSearchScope): Collection<FqName> {
|
||||||
val packageView = module.getPackage(fqn)
|
val packageView = module.getPackage(fqn)
|
||||||
val members = packageView.memberScope.getDescriptors(DescriptorKindFilter.PACKAGES, KtScope.ALL_NAME_FILTER)
|
val members = packageView.memberScope.getDescriptors(DescriptorKindFilter.PACKAGES, MemberScope.ALL_NAME_FILTER)
|
||||||
return ContainerUtil.mapNotNull(members, object : Function<DeclarationDescriptor, FqName> {
|
return ContainerUtil.mapNotNull(members, object : Function<DeclarationDescriptor, FqName> {
|
||||||
override fun `fun`(member: DeclarationDescriptor): FqName? {
|
override fun `fun`(member: DeclarationDescriptor): FqName? {
|
||||||
if (member is PackageViewDescriptor) {
|
if (member is PackageViewDescriptor) {
|
||||||
|
|||||||
+2
-2
@@ -29,14 +29,14 @@ import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
|||||||
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
public object SamConversionResolverImpl : SamConversionResolver {
|
public object SamConversionResolverImpl : SamConversionResolver {
|
||||||
override fun resolveSamConstructor(name: Name, scope: KtScope, location: LookupLocation): SamConstructorDescriptor? {
|
override fun resolveSamConstructor(name: Name, scope: MemberScope, location: LookupLocation): SamConstructorDescriptor? {
|
||||||
val classifier = scope.getClassifier(name, location) as? LazyJavaClassDescriptor ?: return null
|
val classifier = scope.getClassifier(name, location) as? LazyJavaClassDescriptor ?: return null
|
||||||
if (classifier.getFunctionTypeForSamInterface() == null) return null
|
if (classifier.getFunctionTypeForSamInterface() == null) return null
|
||||||
return SingleAbstractMethodUtils.createSamConstructorFunction(scope.getContainingDeclaration(), classifier)
|
return SingleAbstractMethodUtils.createSamConstructorFunction(scope.getContainingDeclaration(), classifier)
|
||||||
|
|||||||
+8
-8
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.PackageData
|
import org.jetbrains.kotlin.serialization.PackageData
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
|
||||||
@@ -97,9 +97,9 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
public val target: TargetId
|
public val target: TargetId
|
||||||
get() = this@IncrementalPackageFragmentProvider.target
|
get() = this@IncrementalPackageFragmentProvider.target
|
||||||
|
|
||||||
val memberScope: NotNullLazyValue<KtScope> = storageManager.createLazyValue {
|
val memberScope: NotNullLazyValue<MemberScope> = storageManager.createLazyValue {
|
||||||
if (fqName !in fqNamesToLoad) {
|
if (fqName !in fqNamesToLoad) {
|
||||||
KtScope.empty(this)
|
MemberScope.empty(this)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val moduleMapping = incrementalCache.getModuleMappingData()?.let { ModuleMapping.create(it) }
|
val moduleMapping = incrementalCache.getModuleMappingData()?.let { ModuleMapping.create(it) }
|
||||||
@@ -128,7 +128,7 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scopes.isEmpty()) {
|
if (scopes.isEmpty()) {
|
||||||
KtScope.empty(this)
|
MemberScope.empty(this)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ChainedScope(this, "Member scope for incremental compilation: union of package parts data", *scopes.toTypedArray())
|
ChainedScope(this, "Member scope for incremental compilation: union of package parts data", *scopes.toTypedArray())
|
||||||
@@ -142,7 +142,7 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
return IncrementalMultifileClassPackageFragment(multifileClassFqName, partsNames)
|
return IncrementalMultifileClassPackageFragment(multifileClassFqName, partsNames)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMemberScope(): KtScope = memberScope()
|
override fun getMemberScope(): MemberScope = memberScope()
|
||||||
|
|
||||||
public inner class IncrementalMultifileClassPackageFragment(
|
public inner class IncrementalMultifileClassPackageFragment(
|
||||||
val multifileClassFqName: FqName,
|
val multifileClassFqName: FqName,
|
||||||
@@ -151,16 +151,16 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
val memberScope = storageManager.createLazyValue {
|
val memberScope = storageManager.createLazyValue {
|
||||||
val partsData = partsNames.map { incrementalCache.getPackagePartData(it) }.filterNotNull()
|
val partsData = partsNames.map { incrementalCache.getPackagePartData(it) }.filterNotNull()
|
||||||
if (partsData.isEmpty())
|
if (partsData.isEmpty())
|
||||||
KtScope.empty(this)
|
MemberScope.empty(this)
|
||||||
else {
|
else {
|
||||||
val scopes = partsData.map { IncrementalPackageScope(JvmProtoBufUtil.readPackageDataFrom(it.data, it.strings)) }
|
val scopes = partsData.map { IncrementalPackageScope(JvmProtoBufUtil.readPackageDataFrom(it.data, it.strings)) }
|
||||||
ChainedScope(this,
|
ChainedScope(this,
|
||||||
"Member scope for incremental compilation: union of multifile class parts data for $multifileClassFqName",
|
"Member scope for incremental compilation: union of multifile class parts data for $multifileClassFqName",
|
||||||
*scopes.toTypedArray<KtScope>())
|
*scopes.toTypedArray<MemberScope>())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMemberScope(): KtScope = memberScope()
|
override fun getMemberScope(): MemberScope = memberScope()
|
||||||
}
|
}
|
||||||
|
|
||||||
private inner class IncrementalPackageScope(val packageData: PackageData) : DeserializedPackageMemberScope(
|
private inner class IncrementalPackageScope(val packageData: PackageData) : DeserializedPackageMemberScope(
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
|
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.jetbrains.kotlin.types.KotlinTypeImpl;
|
import org.jetbrains.kotlin.types.KotlinTypeImpl;
|
||||||
import org.jetbrains.kotlin.types.TypeProjectionImpl;
|
import org.jetbrains.kotlin.types.TypeProjectionImpl;
|
||||||
@@ -67,7 +67,7 @@ class PropagationHeuristics {
|
|||||||
arrayTypeFromSuper.getConstructor(),
|
arrayTypeFromSuper.getConstructor(),
|
||||||
arrayTypeFromSuper.isMarkedNullable(),
|
arrayTypeFromSuper.isMarkedNullable(),
|
||||||
Arrays.asList(new TypeProjectionImpl(Variance.OUT_VARIANCE, elementTypeInSuper)),
|
Arrays.asList(new TypeProjectionImpl(Variance.OUT_VARIANCE, elementTypeInSuper)),
|
||||||
KtScope.Companion.empty(elementType.getMemberScope().getContainingDeclaration()));
|
MemberScope.Companion.empty(elementType.getMemberScope().getContainingDeclaration()));
|
||||||
|
|
||||||
data.reportError("Return type is not a subtype of overridden method. " +
|
data.reportError("Return type is not a subtype of overridden method. " +
|
||||||
"To fix it, add annotation with Kotlin signature to super method with type "
|
"To fix it, add annotation with Kotlin signature to super method with type "
|
||||||
|
|||||||
+2
-2
@@ -45,7 +45,7 @@ import org.jetbrains.kotlin.resolve.jvm.JavaResolverUtils;
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapper;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapper;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapperKt;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapperKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -401,7 +401,7 @@ public class SignaturesPropagationData {
|
|||||||
boolean resultNullable = typeMustBeNullable(autoType, typesFromSuper, howThisTypeIsUsed);
|
boolean resultNullable = typeMustBeNullable(autoType, typesFromSuper, howThisTypeIsUsed);
|
||||||
ClassifierDescriptor resultClassifier = modifyTypeClassifier(autoType, typesFromSuper);
|
ClassifierDescriptor resultClassifier = modifyTypeClassifier(autoType, typesFromSuper);
|
||||||
List<TypeProjection> resultArguments = getTypeArgsOfType(autoType, resultClassifier, typesFromSuper);
|
List<TypeProjection> resultArguments = getTypeArgsOfType(autoType, resultClassifier, typesFromSuper);
|
||||||
KtScope resultScope;
|
MemberScope resultScope;
|
||||||
if (resultClassifier instanceof ClassDescriptor) {
|
if (resultClassifier instanceof ClassDescriptor) {
|
||||||
resultScope = ((ClassDescriptor) resultClassifier).getMemberScope(resultArguments);
|
resultScope = ((ClassDescriptor) resultClassifier).getMemberScope(resultArguments);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
|||||||
import org.jetbrains.kotlin.resolve.TypeResolver;
|
import org.jetbrains.kotlin.resolve.TypeResolver;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolverKt;
|
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolverKt;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform;
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -148,7 +148,7 @@ public class TypeTransformingVisitor extends KtVisitor<KotlinType, Void> {
|
|||||||
altArguments.add(getAltArgument(type, typeConstructor, i, arguments.get(i)));
|
altArguments.add(getAltArgument(type, typeConstructor, i, arguments.get(i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
KtScope memberScope;
|
MemberScope memberScope;
|
||||||
if (typeConstructorClassifier instanceof TypeParameterDescriptor) {
|
if (typeConstructorClassifier instanceof TypeParameterDescriptor) {
|
||||||
memberScope = typeConstructorClassifier.getDefaultType().getMemberScope();
|
memberScope = typeConstructorClassifier.getDefaultType().getMemberScope();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.resolve.ImportPath
|
|||||||
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
import org.jetbrains.kotlin.resolve.PlatformConfigurator
|
||||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
public object JvmPlatform : TargetPlatform("JVM") {
|
public object JvmPlatform : TargetPlatform("JVM") {
|
||||||
@@ -50,8 +50,8 @@ private val DEFAULT_IMPORTS_FOR_JVM = ArrayList<ImportPath>().apply {
|
|||||||
add(ImportPath("kotlin.jvm.*"))
|
add(ImportPath("kotlin.jvm.*"))
|
||||||
add(ImportPath("kotlin.io.*"))
|
add(ImportPath("kotlin.io.*"))
|
||||||
|
|
||||||
fun addAllClassifiersFromScope(scope: KtScope) {
|
fun addAllClassifiersFromScope(scope: MemberScope) {
|
||||||
for (descriptor in scope.getDescriptors(DescriptorKindFilter.CLASSIFIERS, KtScope.ALL_NAME_FILTER)) {
|
for (descriptor in scope.getDescriptors(DescriptorKindFilter.CLASSIFIERS, MemberScope.ALL_NAME_FILTER)) {
|
||||||
add(ImportPath(DescriptorUtils.getFqNameSafe(descriptor), false))
|
add(ImportPath(DescriptorUtils.getFqNameSafe(descriptor), false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -22,17 +22,17 @@ import org.jetbrains.kotlin.name.FqName;
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.*;
|
import org.jetbrains.kotlin.resolve.scopes.*;
|
||||||
|
|
||||||
public class MutablePackageFragmentDescriptor extends PackageFragmentDescriptorImpl {
|
public class MutablePackageFragmentDescriptor extends PackageFragmentDescriptorImpl {
|
||||||
private final KtScope scope;
|
private final MemberScope scope;
|
||||||
|
|
||||||
public MutablePackageFragmentDescriptor(@NotNull ModuleDescriptor module, @NotNull FqName fqName) {
|
public MutablePackageFragmentDescriptor(@NotNull ModuleDescriptor module, @NotNull FqName fqName) {
|
||||||
super(module, fqName);
|
super(module, fqName);
|
||||||
|
|
||||||
scope = KtScope.Companion.empty(module);
|
scope = MemberScope.Companion.empty(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter
|
import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : AbstractScopeAdapter() {
|
class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : AbstractScopeAdapter() {
|
||||||
override val workerScope: KtScope = packageDescriptor.memberScope
|
override val workerScope: MemberScope = packageDescriptor.memberScope
|
||||||
|
|
||||||
override fun getPackage(name: Name): PackageViewDescriptor? = null
|
override fun getPackage(name: Name): PackageViewDescriptor? = null
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|||||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil.OverrideCompatibilityInfo.Result.INCOMPATIBLE
|
import org.jetbrains.kotlin.resolve.OverridingUtil.OverrideCompatibilityInfo.Result.INCOMPATIBLE
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeIntersector
|
import org.jetbrains.kotlin.types.TypeIntersector
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||||
@@ -105,7 +105,7 @@ object OverloadUtil {
|
|||||||
private inline fun collectModulePackageMembersWithSameName(
|
private inline fun collectModulePackageMembersWithSameName(
|
||||||
packageMembersByName: MultiMap<FqNameUnsafe, CallableMemberDescriptor>,
|
packageMembersByName: MultiMap<FqNameUnsafe, CallableMemberDescriptor>,
|
||||||
interestingDescriptors: Collection<CallableMemberDescriptor>,
|
interestingDescriptors: Collection<CallableMemberDescriptor>,
|
||||||
getMembersByName: (KtScope, Name) -> Collection<CallableMemberDescriptor>
|
getMembersByName: (MemberScope, Name) -> Collection<CallableMemberDescriptor>
|
||||||
) {
|
) {
|
||||||
val observedFQNs = hashSetOf<FqNameUnsafe>()
|
val observedFQNs = hashSetOf<FqNameUnsafe>()
|
||||||
for (descriptor in interestingDescriptors) {
|
for (descriptor in interestingDescriptors) {
|
||||||
@@ -122,7 +122,7 @@ object OverloadUtil {
|
|||||||
|
|
||||||
private inline fun getModulePackageMembersWithSameName(
|
private inline fun getModulePackageMembersWithSameName(
|
||||||
packageMember: CallableMemberDescriptor,
|
packageMember: CallableMemberDescriptor,
|
||||||
getMembersByName: (KtScope, Name) -> Collection<CallableMemberDescriptor>
|
getMembersByName: (MemberScope, Name) -> Collection<CallableMemberDescriptor>
|
||||||
): Collection<CallableMemberDescriptor> {
|
): Collection<CallableMemberDescriptor> {
|
||||||
val containingPackage = packageMember.containingDeclaration
|
val containingPackage = packageMember.containingDeclaration
|
||||||
if (containingPackage !is PackageFragmentDescriptor) {
|
if (containingPackage !is PackageFragmentDescriptor) {
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.bindingContextUtil.recordScope
|
|||||||
import org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallableDescriptors
|
import org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallableDescriptors
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
|
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyEntity
|
import org.jetbrains.kotlin.resolve.lazy.LazyEntity
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter
|
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
@@ -320,7 +320,7 @@ public class TypeResolver(
|
|||||||
return result ?: type(ErrorUtils.createErrorType(typeElement?.getDebugText() ?: "No type element"))
|
return result ?: type(ErrorUtils.createErrorType(typeElement?.getDebugText() ?: "No type element"))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getScopeForTypeParameter(c: TypeResolutionContext, typeParameterDescriptor: TypeParameterDescriptor): KtScope {
|
private fun getScopeForTypeParameter(c: TypeResolutionContext, typeParameterDescriptor: TypeParameterDescriptor): MemberScope {
|
||||||
return when {
|
return when {
|
||||||
c.checkBounds -> TypeIntersector.getUpperBoundsAsType(typeParameterDescriptor).memberScope
|
c.checkBounds -> TypeIntersector.getUpperBoundsAsType(typeParameterDescriptor).memberScope
|
||||||
else -> LazyScopeAdapter(LockBasedStorageManager.NO_LOCKS.createLazyValue {
|
else -> LazyScopeAdapter(LockBasedStorageManager.NO_LOCKS.createLazyValue {
|
||||||
|
|||||||
+3
-3
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResultsUtil
|
|||||||
import org.jetbrains.kotlin.resolve.calls.util.CallMaker
|
import org.jetbrains.kotlin.resolve.calls.util.CallMaker
|
||||||
import org.jetbrains.kotlin.resolve.scopes.BaseLexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.BaseLexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils
|
import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
||||||
@@ -101,10 +101,10 @@ public fun resolvePossiblyAmbiguousCallableReference(
|
|||||||
): OverloadResolutionResults<CallableDescriptor>? {
|
): OverloadResolutionResults<CallableDescriptor>? {
|
||||||
val reference = callableReferenceExpression.getCallableReference()
|
val reference = callableReferenceExpression.getCallableReference()
|
||||||
|
|
||||||
fun resolveInScope(traceTitle: String, staticScope: KtScope): OverloadResolutionResults<CallableDescriptor> {
|
fun resolveInScope(traceTitle: String, staticScope: MemberScope): OverloadResolutionResults<CallableDescriptor> {
|
||||||
|
|
||||||
// todo: drop this class when new resolve will be finished
|
// todo: drop this class when new resolve will be finished
|
||||||
class StaticScopeAsLexicalScope(val staticScope: KtScope) : BaseLexicalScope(staticScope.memberScopeAsImportingScope(), staticScope.getContainingDeclaration()) {
|
class StaticScopeAsLexicalScope(val staticScope: MemberScope) : BaseLexicalScope(staticScope.memberScopeAsImportingScope(), staticScope.getContainingDeclaration()) {
|
||||||
override fun printStructure(p: Printer) {
|
override fun printStructure(p: Printer) {
|
||||||
p.println(toString())
|
p.println(toString())
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.Constrain
|
|||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.TYPE_BOUND_POSITION
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.TYPE_BOUND_POSITION
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.derivedFrom
|
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.derivedFrom
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.*
|
import org.jetbrains.kotlin.resolve.descriptorUtil.*
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
import org.jetbrains.kotlin.types.TypeUtils.DONT_CARE
|
import org.jetbrains.kotlin.types.TypeUtils.DONT_CARE
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||||
@@ -165,7 +165,7 @@ public class ConstraintSystemImpl : ConstraintSystem {
|
|||||||
|
|
||||||
val TypeParameterDescriptor.correspondingType: KotlinType
|
val TypeParameterDescriptor.correspondingType: KotlinType
|
||||||
get() = cachedTypeForVariable.getOrPut(this) {
|
get() = cachedTypeForVariable.getOrPut(this) {
|
||||||
KotlinTypeImpl.create(Annotations.EMPTY, this.getTypeConstructor(), false, listOf(), KtScope.empty(this))
|
KotlinTypeImpl.create(Annotations.EMPTY, this.getTypeConstructor(), false, listOf(), MemberScope.empty(this))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun KotlinType.isProper() = !TypeUtils.containsSpecialType(this) {
|
fun KotlinType.isProper() = !TypeUtils.containsSpecialType(this) {
|
||||||
@@ -573,7 +573,7 @@ public fun createTypeSubstitutor(conversion: (TypeParameterDescriptor) -> TypePa
|
|||||||
if (descriptor !is TypeParameterDescriptor) return null
|
if (descriptor !is TypeParameterDescriptor) return null
|
||||||
val typeParameterDescriptor = conversion(descriptor) ?: return null
|
val typeParameterDescriptor = conversion(descriptor) ?: return null
|
||||||
|
|
||||||
val type = KotlinTypeImpl.create(Annotations.EMPTY, typeParameterDescriptor.getTypeConstructor(), false, listOf(), KtScope.empty(typeParameterDescriptor))
|
val type = KotlinTypeImpl.create(Annotations.EMPTY, typeParameterDescriptor.getTypeConstructor(), false, listOf(), MemberScope.empty(typeParameterDescriptor))
|
||||||
return TypeProjectionImpl(type)
|
return TypeProjectionImpl(type)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.resolve.DescriptorFactory
|
|||||||
import org.jetbrains.kotlin.resolve.calls.tasks.collectors.CallableDescriptorCollector
|
import org.jetbrains.kotlin.resolve.calls.tasks.collectors.CallableDescriptorCollector
|
||||||
import org.jetbrains.kotlin.resolve.calls.tasks.collectors.CallableDescriptorCollectors
|
import org.jetbrains.kotlin.resolve.calls.tasks.collectors.CallableDescriptorCollectors
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
@@ -43,7 +43,7 @@ class DynamicCallableDescriptors(private val builtIns: KotlinBuiltIns) {
|
|||||||
|
|
||||||
val dynamicType = createDynamicType(builtIns)
|
val dynamicType = createDynamicType(builtIns)
|
||||||
|
|
||||||
fun createDynamicDescriptorScope(call: Call, owner: DeclarationDescriptor) = object : KtScopeImpl() {
|
fun createDynamicDescriptorScope(call: Call, owner: DeclarationDescriptor) = object : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration() = owner
|
override fun getContainingDeclaration() = owner
|
||||||
|
|
||||||
override fun printScopeStructure(p: Printer) {
|
override fun printScopeStructure(p: Printer) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.*;
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationWithTarget;
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationWithTarget;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -38,7 +38,7 @@ public class ForceResolveUtil {
|
|||||||
return descriptor;
|
return descriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void forceResolveAllContents(@NotNull KtScope scope) {
|
public static void forceResolveAllContents(@NotNull MemberScope scope) {
|
||||||
forceResolveAllContents(DescriptorUtils.getAllDescriptors(scope));
|
forceResolveAllContents(DescriptorUtils.getAllDescriptors(scope));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -66,7 +66,7 @@ public class LazyDeclarationResolver {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public ClassDescriptor getClassDescriptor(@NotNull KtClassOrObject classOrObject, @NotNull LookupLocation location) {
|
public ClassDescriptor getClassDescriptor(@NotNull KtClassOrObject classOrObject, @NotNull LookupLocation location) {
|
||||||
KtScope scope = getMemberScopeDeclaredIn(classOrObject, location);
|
MemberScope scope = getMemberScopeDeclaredIn(classOrObject, location);
|
||||||
|
|
||||||
// Why not use the result here. Because it may be that there is a redeclaration:
|
// Why not use the result here. Because it may be that there is a redeclaration:
|
||||||
// class A {} class A { fun foo(): A<completion here>}
|
// class A {} class A { fun foo(): A<completion here>}
|
||||||
@@ -147,7 +147,7 @@ public class LazyDeclarationResolver {
|
|||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor visitNamedFunction(@NotNull KtNamedFunction function, Void data) {
|
public DeclarationDescriptor visitNamedFunction(@NotNull KtNamedFunction function, Void data) {
|
||||||
LookupLocation location = lookupLocationFor(function, function.isTopLevel());
|
LookupLocation location = lookupLocationFor(function, function.isTopLevel());
|
||||||
KtScope scopeForDeclaration = getMemberScopeDeclaredIn(function, location);
|
MemberScope scopeForDeclaration = getMemberScopeDeclaredIn(function, location);
|
||||||
scopeForDeclaration.getFunctions(function.getNameAsSafeName(), location);
|
scopeForDeclaration.getFunctions(function.getNameAsSafeName(), location);
|
||||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function);
|
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function);
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ public class LazyDeclarationResolver {
|
|||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor visitProperty(@NotNull KtProperty property, Void data) {
|
public DeclarationDescriptor visitProperty(@NotNull KtProperty property, Void data) {
|
||||||
LookupLocation location = lookupLocationFor(property, property.isTopLevel());
|
LookupLocation location = lookupLocationFor(property, property.isTopLevel());
|
||||||
KtScope scopeForDeclaration = getMemberScopeDeclaredIn(property, location);
|
MemberScope scopeForDeclaration = getMemberScopeDeclaredIn(property, location);
|
||||||
scopeForDeclaration.getProperties(property.getNameAsSafeName(), location);
|
scopeForDeclaration.getProperties(property.getNameAsSafeName(), location);
|
||||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property);
|
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property);
|
||||||
}
|
}
|
||||||
@@ -226,7 +226,7 @@ public class LazyDeclarationResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
/*package*/ KtScope getMemberScopeDeclaredIn(@NotNull KtDeclaration declaration, @NotNull LookupLocation location) {
|
/*package*/ MemberScope getMemberScopeDeclaredIn(@NotNull KtDeclaration declaration, @NotNull LookupLocation location) {
|
||||||
KtDeclaration parentDeclaration = KtStubbedPsiUtil.getContainingDeclaration(declaration);
|
KtDeclaration parentDeclaration = KtStubbedPsiUtil.getContainingDeclaration(declaration);
|
||||||
boolean isTopLevel = parentDeclaration == null;
|
boolean isTopLevel = parentDeclaration == null;
|
||||||
if (isTopLevel) { // for top level declarations we search directly in package because of possible conflicts with imports
|
if (isTopLevel) { // for top level declarations we search directly in package because of possible conflicts with imports
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyAnnotations;
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyAnnotationsContextImpl;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyAnnotationsContextImpl;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyScriptDescriptor;
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyScriptDescriptor;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
||||||
import org.jetbrains.kotlin.storage.*;
|
import org.jetbrains.kotlin.storage.*;
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public ClassDescriptor getClassDescriptorForScript(@NotNull KtScript script) {
|
public ClassDescriptor getClassDescriptorForScript(@NotNull KtScript script) {
|
||||||
KtScope memberScope = lazyDeclarationResolver.getMemberScopeDeclaredIn(script, NoLookupLocation.FOR_SCRIPT);
|
MemberScope memberScope = lazyDeclarationResolver.getMemberScopeDeclaredIn(script, NoLookupLocation.FOR_SCRIPT);
|
||||||
FqName fqName = ScriptNameUtil.classNameForScript(script);
|
FqName fqName = ScriptNameUtil.classNameForScript(script);
|
||||||
ClassifierDescriptor classifier = memberScope.getClassifier(fqName.shortName(), NoLookupLocation.FOR_SCRIPT);
|
ClassifierDescriptor classifier = memberScope.getClassifier(fqName.shortName(), NoLookupLocation.FOR_SCRIPT);
|
||||||
assert classifier != null : "No descriptor for " + fqName + " in file " + script.getContainingFile();
|
assert classifier != null : "No descriptor for " + fqName + " in file " + script.getContainingFile();
|
||||||
@@ -350,7 +350,7 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext {
|
|||||||
@NotNull LazyPackageDescriptor current
|
@NotNull LazyPackageDescriptor current
|
||||||
) {
|
) {
|
||||||
result.add(current);
|
result.add(current);
|
||||||
for (FqName subPackage : packageFragmentProvider.getSubPackagesOf(current.getFqName(), KtScope.Companion.getALL_NAME_FILTER())) {
|
for (FqName subPackage : packageFragmentProvider.getSubPackagesOf(current.getFqName(), MemberScope.Companion.getALL_NAME_FILTER())) {
|
||||||
LazyPackageDescriptor fragment = getPackageFragment(subPackage);
|
LazyPackageDescriptor fragment = getPackageFragment(subPackage);
|
||||||
assert fragment != null : "Couldn't find fragment for " + subPackage;
|
assert fragment != null : "Couldn't find fragment for " + subPackage;
|
||||||
collectAllPackages(result, fragment);
|
collectAllPackages(result, fragment);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
|||||||
import org.jetbrains.kotlin.name.*;
|
import org.jetbrains.kotlin.name.*;
|
||||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration;
|
import org.jetbrains.kotlin.psi.KtNamedDeclaration;
|
||||||
import org.jetbrains.kotlin.psi.KtNamedDeclarationUtil;
|
import org.jetbrains.kotlin.psi.KtNamedDeclarationUtil;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -76,10 +76,10 @@ public class ResolveSessionUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static ClassDescriptor findByQualifiedName(@NotNull KtScope outerScope, @NotNull FqName path) {
|
public static ClassDescriptor findByQualifiedName(@NotNull MemberScope outerScope, @NotNull FqName path) {
|
||||||
if (path.isRoot()) return null;
|
if (path.isRoot()) return null;
|
||||||
|
|
||||||
KtScope scope = outerScope;
|
MemberScope scope = outerScope;
|
||||||
for (Name name : path.pathSegments()) {
|
for (Name name : path.pathSegments()) {
|
||||||
ClassifierDescriptor classifier = scope.getClassifier(name, NoLookupLocation.WHEN_FIND_BY_FQNAME);
|
ClassifierDescriptor classifier = scope.getClassifier(name, NoLookupLocation.WHEN_FIND_BY_FQNAME);
|
||||||
if (!(classifier instanceof ClassDescriptor)) return null;
|
if (!(classifier instanceof ClassDescriptor)) return null;
|
||||||
|
|||||||
+2
-2
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.data.JetScriptInfo
|
import org.jetbrains.kotlin.resolve.lazy.data.JetScriptInfo
|
||||||
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
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull
|
import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
@@ -43,7 +43,7 @@ protected constructor(
|
|||||||
protected val declarationProvider: DP,
|
protected val declarationProvider: DP,
|
||||||
protected val thisDescriptor: D,
|
protected val thisDescriptor: D,
|
||||||
protected val trace: BindingTrace
|
protected val trace: BindingTrace
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
|
|
||||||
protected val storageManager: StorageManager = c.storageManager
|
protected val storageManager: StorageManager = c.storageManager
|
||||||
private val classDescriptors: MemoizedFunctionToNotNull<Name, List<ClassDescriptor>> = storageManager.createMemoizedFunction { resolveClassDescriptor(it) }
|
private val classDescriptors: MemoizedFunctionToNotNull<Name, List<ClassDescriptor>> = storageManager.createMemoizedFunction { resolveClassDescriptor(it) }
|
||||||
|
|||||||
+2
-2
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtParameter
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
|
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalChainedScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalChainedScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl
|
||||||
@@ -108,7 +108,7 @@ class ClassResolutionScopesSupport(
|
|||||||
ownerDescriptor: DeclarationDescriptor,
|
ownerDescriptor: DeclarationDescriptor,
|
||||||
classDescriptor: ClassDescriptor
|
classDescriptor: ClassDescriptor
|
||||||
): LexicalScope {
|
): LexicalScope {
|
||||||
val staticScopes = ArrayList<KtScope>(3)
|
val staticScopes = ArrayList<MemberScope>(3)
|
||||||
|
|
||||||
// todo filter fake overrides
|
// todo filter fake overrides
|
||||||
staticScopes.add(classDescriptor.staticScope)
|
staticScopes.add(classDescriptor.staticScope)
|
||||||
|
|||||||
+4
-4
@@ -46,7 +46,7 @@ import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo;
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.data.JetClassOrObjectInfo;
|
import org.jetbrains.kotlin.resolve.lazy.data.JetClassOrObjectInfo;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.data.JetObjectInfo;
|
import org.jetbrains.kotlin.resolve.lazy.data.JetObjectInfo;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider;
|
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
||||||
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt;
|
||||||
@@ -95,7 +95,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
|||||||
private final MemoizedFunctionToNotNull<KtObjectDeclaration, ClassDescriptor> extraCompanionObjectDescriptors;
|
private final MemoizedFunctionToNotNull<KtObjectDeclaration, ClassDescriptor> extraCompanionObjectDescriptors;
|
||||||
|
|
||||||
private final LazyClassMemberScope unsubstitutedMemberScope;
|
private final LazyClassMemberScope unsubstitutedMemberScope;
|
||||||
private final KtScope staticScope;
|
private final MemberScope staticScope;
|
||||||
|
|
||||||
private final NullableLazyValue<Void> forceResolveAllContents;
|
private final NullableLazyValue<Void> forceResolveAllContents;
|
||||||
private final boolean isCompanionObject;
|
private final boolean isCompanionObject;
|
||||||
@@ -252,7 +252,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedMemberScope() {
|
public MemberScope getUnsubstitutedMemberScope() {
|
||||||
return unsubstitutedMemberScope;
|
return unsubstitutedMemberScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getStaticScope() {
|
public MemberScope getStaticScope() {
|
||||||
return staticScope;
|
return staticScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider
|
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker
|
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
||||||
@@ -51,7 +51,7 @@ public open class LazyClassMemberScope(
|
|||||||
) : AbstractLazyMemberScope<LazyClassDescriptor, ClassMemberDeclarationProvider>(c, declarationProvider, thisClass, trace) {
|
) : AbstractLazyMemberScope<LazyClassDescriptor, ClassMemberDeclarationProvider>(c, declarationProvider, thisClass, trace) {
|
||||||
|
|
||||||
private val descriptorsFromDeclaredElements = storageManager.createLazyValue {
|
private val descriptorsFromDeclaredElements = storageManager.createLazyValue {
|
||||||
computeDescriptorsFromDeclaredElements(DescriptorKindFilter.ALL, KtScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS)
|
computeDescriptorsFromDeclaredElements(DescriptorKindFilter.ALL, MemberScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS)
|
||||||
}
|
}
|
||||||
private val extraDescriptors: NotNullLazyValue<Collection<DeclarationDescriptor>> = storageManager.createLazyValue {
|
private val extraDescriptors: NotNullLazyValue<Collection<DeclarationDescriptor>> = storageManager.createLazyValue {
|
||||||
computeExtraDescriptors(NoLookupLocation.FOR_ALREADY_TRACKED)
|
computeExtraDescriptors(NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||||
|
|||||||
+3
-3
@@ -26,10 +26,10 @@ import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil;
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.LazyEntity;
|
import org.jetbrains.kotlin.resolve.lazy.LazyEntity;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
import org.jetbrains.kotlin.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
|
|
||||||
public class LazyPackageDescriptor extends PackageFragmentDescriptorImpl implements LazyEntity {
|
public class LazyPackageDescriptor extends PackageFragmentDescriptorImpl implements LazyEntity {
|
||||||
private final KtScope memberScope;
|
private final MemberScope memberScope;
|
||||||
private final PackageMemberDeclarationProvider declarationProvider;
|
private final PackageMemberDeclarationProvider declarationProvider;
|
||||||
|
|
||||||
public LazyPackageDescriptor(
|
public LazyPackageDescriptor(
|
||||||
@@ -50,7 +50,7 @@ public class LazyPackageDescriptor extends PackageFragmentDescriptorImpl impleme
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
|
|
||||||
public class FilteringScope(private val workerScope: KtScope, private val predicate: (DeclarationDescriptor) -> Boolean) : KtScope {
|
public class FilteringScope(private val workerScope: MemberScope, private val predicate: (DeclarationDescriptor) -> Boolean) : MemberScope {
|
||||||
|
|
||||||
override fun getFunctions(name: Name, location: LookupLocation) = workerScope.getFunctions(name, location).filter(predicate)
|
override fun getFunctions(name: Name, location: LookupLocation) = workerScope.getFunctions(name, location).filter(predicate)
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public final class JetScopeUtils {
|
|||||||
private JetScopeUtils() {}
|
private JetScopeUtils() {}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KtScope getStaticNestedClassesScope(@NotNull ClassDescriptor descriptor) {
|
public static MemberScope getStaticNestedClassesScope(@NotNull ClassDescriptor descriptor) {
|
||||||
KtScope innerClassesScope = descriptor.getUnsubstitutedInnerClassesScope();
|
MemberScope innerClassesScope = descriptor.getUnsubstitutedInnerClassesScope();
|
||||||
return new FilteringScope(innerClassesScope, new Function1<DeclarationDescriptor, Boolean>() {
|
return new FilteringScope(innerClassesScope, new Function1<DeclarationDescriptor, Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public Boolean invoke(DeclarationDescriptor descriptor) {
|
public Boolean invoke(DeclarationDescriptor descriptor) {
|
||||||
@@ -125,7 +125,7 @@ public final class JetScopeUtils {
|
|||||||
|
|
||||||
@TestOnly
|
@TestOnly
|
||||||
@NotNull
|
@NotNull
|
||||||
public static String printStructure(@Nullable KtScope scope) {
|
public static String printStructure(@Nullable MemberScope scope) {
|
||||||
StringBuilder out = new StringBuilder();
|
StringBuilder out = new StringBuilder();
|
||||||
Printer p = new Printer(out);
|
Printer p = new Printer(out);
|
||||||
if (scope == null) {
|
if (scope == null) {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class LexicalChainedScope @JvmOverloads constructor(
|
|||||||
override val isOwnerDescriptorAccessibleByLabel: Boolean,
|
override val isOwnerDescriptorAccessibleByLabel: Boolean,
|
||||||
override val implicitReceiver: ReceiverParameterDescriptor?,
|
override val implicitReceiver: ReceiverParameterDescriptor?,
|
||||||
private val debugName: String,
|
private val debugName: String,
|
||||||
vararg memberScopes: KtScope, // todo JetScope -> MemberScope
|
vararg memberScopes: MemberScope,
|
||||||
@Deprecated("This value is temporary hack for resolve -- don't use it!")
|
@Deprecated("This value is temporary hack for resolve -- don't use it!")
|
||||||
val isStaticScope: Boolean = false
|
val isStaticScope: Boolean = false
|
||||||
): LexicalScope {
|
): LexicalScope {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ interface HierarchicalScope {
|
|||||||
*/
|
*/
|
||||||
fun getContributedDescriptors(
|
fun getContributedDescriptors(
|
||||||
kindFilter: DescriptorKindFilter = DescriptorKindFilter.ALL,
|
kindFilter: DescriptorKindFilter = DescriptorKindFilter.ALL,
|
||||||
nameFilter: (Name) -> Boolean = KtScope.ALL_NAME_FILTER
|
nameFilter: (Name) -> Boolean = MemberScope.ALL_NAME_FILTER
|
||||||
): Collection<DeclarationDescriptor>
|
): Collection<DeclarationDescriptor>
|
||||||
|
|
||||||
fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.hasClassObjectType
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.FilteringScope
|
import org.jetbrains.kotlin.resolve.scopes.FilteringScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils
|
import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.findClassifier
|
import org.jetbrains.kotlin.resolve.scopes.utils.findClassifier
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.findPackage
|
import org.jetbrains.kotlin.resolve.scopes.utils.findPackage
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
||||||
@@ -56,7 +56,7 @@ public interface Qualifier: ReceiverValue {
|
|||||||
// package, classifier or companion object descriptor
|
// package, classifier or companion object descriptor
|
||||||
public val resultingDescriptor: DeclarationDescriptor
|
public val resultingDescriptor: DeclarationDescriptor
|
||||||
|
|
||||||
public val scope: KtScope
|
public val scope: MemberScope
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class QualifierReceiver(
|
abstract class QualifierReceiver(
|
||||||
@@ -74,7 +74,7 @@ abstract class QualifierReceiver(
|
|||||||
(classifier as? ClassDescriptor)?.classObjectType?.let { ExpressionReceiver(referenceExpression, it) }
|
(classifier as? ClassDescriptor)?.classObjectType?.let { ExpressionReceiver(referenceExpression, it) }
|
||||||
?: ReceiverValue.NO_RECEIVER
|
?: ReceiverValue.NO_RECEIVER
|
||||||
|
|
||||||
abstract fun getNestedClassesAndPackageMembersScope(): KtScope
|
abstract fun getNestedClassesAndPackageMembersScope(): MemberScope
|
||||||
|
|
||||||
override fun getType(): KotlinType = throw IllegalStateException("No type corresponds to QualifierReceiver '$this'")
|
override fun getType(): KotlinType = throw IllegalStateException("No type corresponds to QualifierReceiver '$this'")
|
||||||
|
|
||||||
@@ -88,9 +88,9 @@ class PackageQualifier(
|
|||||||
|
|
||||||
override val classifier: ClassifierDescriptor? get() = null
|
override val classifier: ClassifierDescriptor? get() = null
|
||||||
|
|
||||||
override val scope: KtScope get() = packageView.memberScope
|
override val scope: MemberScope get() = packageView.memberScope
|
||||||
|
|
||||||
override fun getNestedClassesAndPackageMembersScope(): KtScope = packageView.memberScope
|
override fun getNestedClassesAndPackageMembersScope(): MemberScope = packageView.memberScope
|
||||||
|
|
||||||
override fun toString() = "Package{$packageView}"
|
override fun toString() = "Package{$packageView}"
|
||||||
}
|
}
|
||||||
@@ -102,12 +102,12 @@ class ClassifierQualifier(
|
|||||||
|
|
||||||
override val packageView: PackageViewDescriptor? get() = null
|
override val packageView: PackageViewDescriptor? get() = null
|
||||||
|
|
||||||
override val scope: KtScope get() {
|
override val scope: MemberScope get() {
|
||||||
if (classifier !is ClassDescriptor) {
|
if (classifier !is ClassDescriptor) {
|
||||||
return KtScope.empty(classifier)
|
return MemberScope.empty(classifier)
|
||||||
}
|
}
|
||||||
|
|
||||||
val scopes = ArrayList<KtScope>(3)
|
val scopes = ArrayList<MemberScope>(3)
|
||||||
|
|
||||||
val classObjectTypeScope = classifier.classObjectType?.memberScope?.let {
|
val classObjectTypeScope = classifier.classObjectType?.memberScope?.let {
|
||||||
FilteringScope(it) { it !is ClassDescriptor }
|
FilteringScope(it) { it !is ClassDescriptor }
|
||||||
@@ -123,12 +123,12 @@ class ClassifierQualifier(
|
|||||||
return ChainedScope(descriptor, "Member scope for $name as class or object", *scopes.toTypedArray())
|
return ChainedScope(descriptor, "Member scope for $name as class or object", *scopes.toTypedArray())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getNestedClassesAndPackageMembersScope(): KtScope {
|
override fun getNestedClassesAndPackageMembersScope(): MemberScope {
|
||||||
if (classifier !is ClassDescriptor) {
|
if (classifier !is ClassDescriptor) {
|
||||||
return KtScope.empty(classifier)
|
return MemberScope.empty(classifier)
|
||||||
}
|
}
|
||||||
|
|
||||||
val scopes = ArrayList<KtScope>(2)
|
val scopes = ArrayList<MemberScope>(2)
|
||||||
|
|
||||||
scopes.add(classifier.staticScope)
|
scopes.add(classifier.staticScope)
|
||||||
|
|
||||||
|
|||||||
@@ -113,12 +113,12 @@ public fun HierarchicalScope.collectSyntheticExtensionFunctions(receiverTypes: C
|
|||||||
public fun HierarchicalScope.takeSnapshot(): HierarchicalScope = if (this is LexicalWritableScope) takeSnapshot() else this
|
public fun HierarchicalScope.takeSnapshot(): HierarchicalScope = if (this is LexicalWritableScope) takeSnapshot() else this
|
||||||
|
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
public fun KtScope.memberScopeAsImportingScope(parentScope: ImportingScope? = null): ImportingScope = MemberScopeToImportingScopeAdapter(parentScope, this)
|
public fun MemberScope.memberScopeAsImportingScope(parentScope: ImportingScope? = null): ImportingScope = MemberScopeToImportingScopeAdapter(parentScope, this)
|
||||||
|
|
||||||
@Deprecated("Temporary method for scope migration")
|
@Deprecated("Temporary method for scope migration")
|
||||||
public fun KtScope.memberScopeAsLexicalScope(): LexicalScope = LexicalScope.empty(memberScopeAsImportingScope(), getContainingDeclaration())
|
public fun MemberScope.memberScopeAsLexicalScope(): LexicalScope = LexicalScope.empty(memberScopeAsImportingScope(), getContainingDeclaration())
|
||||||
|
|
||||||
private class MemberScopeToImportingScopeAdapter(override val parent: ImportingScope?, val memberScope: KtScope) : ImportingScope {
|
private class MemberScopeToImportingScopeAdapter(override val parent: ImportingScope?, val memberScope: MemberScope) : ImportingScope {
|
||||||
override fun getContributedPackage(name: Name): PackageViewDescriptor? = memberScope.getPackage(name)
|
override fun getContributedPackage(name: Name): PackageViewDescriptor? = memberScope.getPackage(name)
|
||||||
|
|
||||||
override fun getContributedSyntheticExtensionProperties(receiverTypes: Collection<KotlinType>, name: Name, location: LookupLocation)
|
override fun getContributedSyntheticExtensionProperties(receiverTypes: Collection<KotlinType>, name: Name, location: LookupLocation)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
import org.jetbrains.kotlin.types.typeUtil.TypeUtilsKt;
|
import org.jetbrains.kotlin.types.typeUtil.TypeUtilsKt;
|
||||||
import org.jetbrains.kotlin.utils.DFS;
|
import org.jetbrains.kotlin.utils.DFS;
|
||||||
@@ -230,7 +230,7 @@ public class CommonSupertypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ClassifierDescriptor classifier = constructor.getDeclarationDescriptor();
|
ClassifierDescriptor classifier = constructor.getDeclarationDescriptor();
|
||||||
KtScope newScope;
|
MemberScope newScope;
|
||||||
if (classifier instanceof ClassDescriptor) {
|
if (classifier instanceof ClassDescriptor) {
|
||||||
newScope = ((ClassDescriptor) classifier).getMemberScope(newProjections);
|
newScope = ((ClassDescriptor) classifier).getMemberScope(newProjections);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl;
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemImpl;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -124,7 +124,7 @@ public class TypeIntersector {
|
|||||||
|
|
||||||
TypeConstructor constructor = new IntersectionTypeConstructor(Annotations.Companion.getEMPTY(), resultingTypes);
|
TypeConstructor constructor = new IntersectionTypeConstructor(Annotations.Companion.getEMPTY(), resultingTypes);
|
||||||
|
|
||||||
KtScope[] scopes = new KtScope[resultingTypes.size()];
|
MemberScope[] scopes = new MemberScope[resultingTypes.size()];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (KotlinType type : resultingTypes) {
|
for (KotlinType type : resultingTypes) {
|
||||||
scopes[i] = type.getMemberScope();
|
scopes[i] = type.getMemberScope();
|
||||||
@@ -155,7 +155,7 @@ public class TypeIntersector {
|
|||||||
|
|
||||||
// TODO: check intersectability, don't use a chained scope
|
// TODO: check intersectability, don't use a chained scope
|
||||||
private static class IntersectionScope extends ChainedScope {
|
private static class IntersectionScope extends ChainedScope {
|
||||||
public IntersectionScope(@NotNull TypeConstructor constructor, @NotNull KtScope[] scopes) {
|
public IntersectionScope(@NotNull TypeConstructor constructor, @NotNull MemberScope[] scopes) {
|
||||||
super(null, "member scope for intersection type " + constructor, scopes);
|
super(null, "member scope for intersection type " + constructor, scopes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext
|
import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.tasks.ResolutionCandidate
|
import org.jetbrains.kotlin.resolve.calls.tasks.ResolutionCandidate
|
||||||
import org.jetbrains.kotlin.resolve.calls.tasks.ResolutionTaskHolder
|
import org.jetbrains.kotlin.resolve.calls.tasks.ResolutionTaskHolder
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer
|
import org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer
|
||||||
@@ -62,7 +62,7 @@ class LazyOperationsLog(
|
|||||||
public fun getText(): String {
|
public fun getText(): String {
|
||||||
val groupedByOwner = records.groupByTo(IdentityHashMap()) {
|
val groupedByOwner = records.groupByTo(IdentityHashMap()) {
|
||||||
val owner = it.data.fieldOwner
|
val owner = it.data.fieldOwner
|
||||||
if (owner is KtScope) owner.getContainingDeclaration() else owner
|
if (owner is MemberScope) owner.getContainingDeclaration() else owner
|
||||||
}.map { Pair(it.getKey(), it.getValue()) }
|
}.map { Pair(it.getKey(), it.getValue()) }
|
||||||
|
|
||||||
return groupedByOwner.map {
|
return groupedByOwner.map {
|
||||||
@@ -118,7 +118,7 @@ class LazyOperationsLog(
|
|||||||
|
|
||||||
sb.append(" = ${render(data.result)}")
|
sb.append(" = ${render(data.result)}")
|
||||||
|
|
||||||
if (data.fieldOwner is KtScope) {
|
if (data.fieldOwner is MemberScope) {
|
||||||
sb.append(" // through ${render(data.fieldOwner)}")
|
sb.append(" // through ${render(data.fieldOwner)}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.TypeTransformingVisitor;
|
import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.TypeTransformingVisitor;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -155,7 +155,7 @@ public abstract class AbstractSdkAnnotationsValidityTest extends UsefulTestCase
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Void visitDeclarationRecursively(@NotNull DeclarationDescriptor descriptor, @NotNull KtScope memberScope) {
|
private Void visitDeclarationRecursively(@NotNull DeclarationDescriptor descriptor, @NotNull MemberScope memberScope) {
|
||||||
for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(memberScope)) {
|
for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(memberScope)) {
|
||||||
member.acceptVoid(this);
|
member.acceptVoid(this);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.jvm.compiler
|
package org.jetbrains.kotlin.jvm.compiler
|
||||||
|
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import com.intellij.testFramework.UsefulTestCase
|
import com.intellij.testFramework.UsefulTestCase
|
||||||
@@ -28,13 +28,13 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|||||||
import org.jetbrains.kotlin.resolve.MemberComparator
|
import org.jetbrains.kotlin.resolve.MemberComparator
|
||||||
|
|
||||||
class DeserializedScopeValidationVisitor : ValidationVisitor() {
|
class DeserializedScopeValidationVisitor : ValidationVisitor() {
|
||||||
override fun validateScope(scope: KtScope, collector: DescriptorValidator.DiagnosticCollector) {
|
override fun validateScope(scope: MemberScope, collector: DescriptorValidator.DiagnosticCollector) {
|
||||||
super.validateScope(scope, collector)
|
super.validateScope(scope, collector)
|
||||||
validateDeserializedScope(scope)
|
validateDeserializedScope(scope)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun validateDeserializedScope(scope: KtScope) {
|
private fun validateDeserializedScope(scope: MemberScope) {
|
||||||
val isPackageViewScope = scope.safeGetContainingDeclaration() is PackageViewDescriptor
|
val isPackageViewScope = scope.safeGetContainingDeclaration() is PackageViewDescriptor
|
||||||
if (scope is DeserializedMemberScope || isPackageViewScope) {
|
if (scope is DeserializedMemberScope || isPackageViewScope) {
|
||||||
val relevantDescriptors = scope.getDescriptors().filter { member ->
|
val relevantDescriptors = scope.getDescriptors().filter { member ->
|
||||||
@@ -45,7 +45,7 @@ private fun validateDeserializedScope(scope: KtScope) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//NOTE: see TypeUtils#IntersectionScope#getContainingDeclaration()
|
//NOTE: see TypeUtils#IntersectionScope#getContainingDeclaration()
|
||||||
private fun KtScope.safeGetContainingDeclaration(): DeclarationDescriptor? {
|
private fun MemberScope.safeGetContainingDeclaration(): DeclarationDescriptor? {
|
||||||
return try {
|
return try {
|
||||||
getContainingDeclaration()
|
getContainingDeclaration()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ public class ExpectedLoadErrorsUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Void visitDeclarationRecursively(@NotNull DeclarationDescriptor descriptor, @NotNull KtScope memberScope) {
|
private Void visitDeclarationRecursively(@NotNull DeclarationDescriptor descriptor, @NotNull MemberScope memberScope) {
|
||||||
for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(memberScope)) {
|
for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(memberScope)) {
|
||||||
member.acceptVoid(this);
|
member.acceptVoid(this);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -142,7 +142,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
val generatedPackageDir = File(tmpdir, LoadDescriptorUtil.TEST_PACKAGE_FQNAME.pathSegments().single().asString())
|
val generatedPackageDir = File(tmpdir, LoadDescriptorUtil.TEST_PACKAGE_FQNAME.pathSegments().single().asString())
|
||||||
val allClassFiles = FileUtil.findFilesByMask(Pattern.compile(".*\\.class"), generatedPackageDir)
|
val allClassFiles = FileUtil.findFilesByMask(Pattern.compile(".*\\.class"), generatedPackageDir)
|
||||||
|
|
||||||
val packageScopes = arrayListOf<KtScope>()
|
val packageScopes = arrayListOf<MemberScope>()
|
||||||
val classes = arrayListOf<ClassDescriptor>()
|
val classes = arrayListOf<ClassDescriptor>()
|
||||||
var shouldAddPackageView = false
|
var shouldAddPackageView = false
|
||||||
for (classFile in allClassFiles) {
|
for (classFile in allClassFiles) {
|
||||||
@@ -186,9 +186,9 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class SyntheticPackageViewForTest(override val module: ModuleDescriptor,
|
private class SyntheticPackageViewForTest(override val module: ModuleDescriptor,
|
||||||
packageScopes: List<KtScope>,
|
packageScopes: List<MemberScope>,
|
||||||
classes: List<ClassifierDescriptor>) : PackageViewDescriptor {
|
classes: List<ClassifierDescriptor>) : PackageViewDescriptor {
|
||||||
private val scope: KtScope
|
private val scope: MemberScope
|
||||||
|
|
||||||
init {
|
init {
|
||||||
scope = ChainedScope(this, "synthetic package view for test", ScopeWithClassifiers(classes, this), *packageScopes.toTypedArray())
|
scope = ChainedScope(this, "synthetic package view for test", ScopeWithClassifiers(classes, this), *packageScopes.toTypedArray())
|
||||||
@@ -196,7 +196,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
|
|
||||||
override val fqName: FqName
|
override val fqName: FqName
|
||||||
get() = LoadDescriptorUtil.TEST_PACKAGE_FQNAME
|
get() = LoadDescriptorUtil.TEST_PACKAGE_FQNAME
|
||||||
override val memberScope: KtScope
|
override val memberScope: MemberScope
|
||||||
get() = scope
|
get() = scope
|
||||||
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R =
|
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R =
|
||||||
visitor.visitPackageViewDescriptor(this, data)
|
visitor.visitPackageViewDescriptor(this, data)
|
||||||
@@ -214,7 +214,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
private class ScopeWithClassifiers(
|
private class ScopeWithClassifiers(
|
||||||
classifiers: List<ClassifierDescriptor>,
|
classifiers: List<ClassifierDescriptor>,
|
||||||
val ownerDescriptor: DeclarationDescriptor
|
val ownerDescriptor: DeclarationDescriptor
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration() = ownerDescriptor
|
override fun getContainingDeclaration() = ownerDescriptor
|
||||||
|
|
||||||
private val classifierMap = HashMap<Name, ClassifierDescriptor>()
|
private val classifierMap = HashMap<Name, ClassifierDescriptor>()
|
||||||
|
|||||||
+6
-6
@@ -42,7 +42,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
|||||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.jetbrains.kotlin.types.TypeProjection;
|
import org.jetbrains.kotlin.types.TypeProjection;
|
||||||
@@ -168,7 +168,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends KotlinLite
|
|||||||
@NotNull
|
@NotNull
|
||||||
protected static FunctionDescriptor getFunctionDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name) {
|
protected static FunctionDescriptor getFunctionDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name) {
|
||||||
Name functionName = Name.identifier(name);
|
Name functionName = Name.identifier(name);
|
||||||
KtScope memberScope = packageView.getMemberScope();
|
MemberScope memberScope = packageView.getMemberScope();
|
||||||
Collection<FunctionDescriptor> functions = memberScope.getFunctions(functionName, NoLookupLocation.FROM_TEST);
|
Collection<FunctionDescriptor> functions = memberScope.getFunctions(functionName, NoLookupLocation.FROM_TEST);
|
||||||
assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + packageView.getName();
|
assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + packageView.getName();
|
||||||
return functions.iterator().next();
|
return functions.iterator().next();
|
||||||
@@ -177,7 +177,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends KotlinLite
|
|||||||
@NotNull
|
@NotNull
|
||||||
private static FunctionDescriptor getFunctionDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
private static FunctionDescriptor getFunctionDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
||||||
Name functionName = Name.identifier(name);
|
Name functionName = Name.identifier(name);
|
||||||
KtScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
MemberScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
||||||
Collection<FunctionDescriptor> functions = memberScope.getFunctions(functionName, NoLookupLocation.FROM_TEST);
|
Collection<FunctionDescriptor> functions = memberScope.getFunctions(functionName, NoLookupLocation.FROM_TEST);
|
||||||
assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + classDescriptor.getName();
|
assert functions.size() == 1 : "Failed to find function " + functionName + " in class" + "." + classDescriptor.getName();
|
||||||
return functions.iterator().next();
|
return functions.iterator().next();
|
||||||
@@ -186,7 +186,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends KotlinLite
|
|||||||
@Nullable
|
@Nullable
|
||||||
protected static PropertyDescriptor getPropertyDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name, boolean failOnMissing) {
|
protected static PropertyDescriptor getPropertyDescriptor(@NotNull PackageFragmentDescriptor packageView, @NotNull String name, boolean failOnMissing) {
|
||||||
Name propertyName = Name.identifier(name);
|
Name propertyName = Name.identifier(name);
|
||||||
KtScope memberScope = packageView.getMemberScope();
|
MemberScope memberScope = packageView.getMemberScope();
|
||||||
Collection<PropertyDescriptor> properties = memberScope.getProperties(propertyName, NoLookupLocation.FROM_TEST);
|
Collection<PropertyDescriptor> properties = memberScope.getProperties(propertyName, NoLookupLocation.FROM_TEST);
|
||||||
if (properties.isEmpty()) {
|
if (properties.isEmpty()) {
|
||||||
for (DeclarationDescriptor descriptor : DescriptorUtils.getAllDescriptors(memberScope)) {
|
for (DeclarationDescriptor descriptor : DescriptorUtils.getAllDescriptors(memberScope)) {
|
||||||
@@ -213,7 +213,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends KotlinLite
|
|||||||
@NotNull
|
@NotNull
|
||||||
private static PropertyDescriptor getPropertyDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
private static PropertyDescriptor getPropertyDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
||||||
Name propertyName = Name.identifier(name);
|
Name propertyName = Name.identifier(name);
|
||||||
KtScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
MemberScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
||||||
Collection<PropertyDescriptor> properties = memberScope.getProperties(propertyName, NoLookupLocation.FROM_TEST);
|
Collection<PropertyDescriptor> properties = memberScope.getProperties(propertyName, NoLookupLocation.FROM_TEST);
|
||||||
assert properties.size() == 1 : "Failed to find property " + propertyName + " in class " + classDescriptor.getName();
|
assert properties.size() == 1 : "Failed to find property " + propertyName + " in class " + classDescriptor.getName();
|
||||||
return properties.iterator().next();
|
return properties.iterator().next();
|
||||||
@@ -231,7 +231,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends KotlinLite
|
|||||||
@NotNull
|
@NotNull
|
||||||
private static ClassDescriptor getInnerClassDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
private static ClassDescriptor getInnerClassDescriptor(@NotNull ClassDescriptor classDescriptor, @NotNull String name) {
|
||||||
Name propertyName = Name.identifier(name);
|
Name propertyName = Name.identifier(name);
|
||||||
KtScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
MemberScope memberScope = classDescriptor.getMemberScope(Collections.<TypeProjection>emptyList());
|
||||||
ClassifierDescriptor innerClass = memberScope.getClassifier(propertyName, NoLookupLocation.FROM_TEST);
|
ClassifierDescriptor innerClass = memberScope.getClassifier(propertyName, NoLookupLocation.FROM_TEST);
|
||||||
assert innerClass instanceof ClassDescriptor : "Failed to find inner class " +
|
assert innerClass instanceof ClassDescriptor : "Failed to find inner class " +
|
||||||
propertyName +
|
propertyName +
|
||||||
|
|||||||
+2
-2
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
|||||||
import org.jetbrains.kotlin.resolve.TypeResolver
|
import org.jetbrains.kotlin.resolve.TypeResolver
|
||||||
import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstructor
|
import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstructor
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
@@ -66,7 +66,7 @@ public class ConstraintSystemTestData(
|
|||||||
val number = matcher.group(1)!!
|
val number = matcher.group(1)!!
|
||||||
return KotlinTypeImpl.create(
|
return KotlinTypeImpl.create(
|
||||||
Annotations.EMPTY, IntegerValueTypeConstructor(number.toLong(), functionFoo.builtIns), false, listOf(),
|
Annotations.EMPTY, IntegerValueTypeConstructor(number.toLong(), functionFoo.builtIns), false, listOf(),
|
||||||
KtScope.empty(functionFoo)
|
MemberScope.empty(functionFoo)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
return typeResolver.resolveType(
|
return typeResolver.resolveType(
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
|||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ public class DescriptorValidator {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void validateScope(@NotNull KtScope scope, @NotNull DiagnosticCollector collector) {
|
protected void validateScope(@NotNull MemberScope scope, @NotNull DiagnosticCollector collector) {
|
||||||
for (DeclarationDescriptor descriptor : DescriptorUtils.getAllDescriptors(scope)) {
|
for (DeclarationDescriptor descriptor : DescriptorUtils.getAllDescriptors(scope)) {
|
||||||
if (recursiveFilter.apply(descriptor)) {
|
if (recursiveFilter.apply(descriptor)) {
|
||||||
descriptor.accept(new ScopeValidatorVisitor(collector), scope);
|
descriptor.accept(new ScopeValidatorVisitor(collector), scope);
|
||||||
@@ -358,7 +358,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ScopeValidatorVisitor implements DeclarationDescriptorVisitor<Void, KtScope> {
|
private static class ScopeValidatorVisitor implements DeclarationDescriptorVisitor<Void, MemberScope> {
|
||||||
private final DiagnosticCollector collector;
|
private final DiagnosticCollector collector;
|
||||||
|
|
||||||
public ScopeValidatorVisitor(DiagnosticCollector collector) {
|
public ScopeValidatorVisitor(DiagnosticCollector collector) {
|
||||||
@@ -370,7 +370,7 @@ public class DescriptorValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void assertFound(
|
private void assertFound(
|
||||||
@NotNull KtScope scope,
|
@NotNull MemberScope scope,
|
||||||
@NotNull DeclarationDescriptor expected,
|
@NotNull DeclarationDescriptor expected,
|
||||||
@Nullable DeclarationDescriptor found,
|
@Nullable DeclarationDescriptor found,
|
||||||
boolean shouldBeSame
|
boolean shouldBeSame
|
||||||
@@ -384,7 +384,7 @@ public class DescriptorValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void assertFound(
|
private void assertFound(
|
||||||
@NotNull KtScope scope,
|
@NotNull MemberScope scope,
|
||||||
@NotNull DeclarationDescriptor expected,
|
@NotNull DeclarationDescriptor expected,
|
||||||
@NotNull Collection<? extends DeclarationDescriptor> found
|
@NotNull Collection<? extends DeclarationDescriptor> found
|
||||||
) {
|
) {
|
||||||
@@ -395,14 +395,14 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPackageFragmentDescriptor(
|
public Void visitPackageFragmentDescriptor(
|
||||||
PackageFragmentDescriptor descriptor, KtScope scope
|
PackageFragmentDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPackageViewDescriptor(
|
public Void visitPackageViewDescriptor(
|
||||||
PackageViewDescriptor descriptor, KtScope scope
|
PackageViewDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
assertFound(scope, descriptor, scope.getPackage(descriptor.getName()), false);
|
assertFound(scope, descriptor, scope.getPackage(descriptor.getName()), false);
|
||||||
return null;
|
return null;
|
||||||
@@ -410,7 +410,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitVariableDescriptor(
|
public Void visitVariableDescriptor(
|
||||||
VariableDescriptor descriptor, KtScope scope
|
VariableDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
assertFound(scope, descriptor, scope.getProperties(descriptor.getName(), NoLookupLocation.FROM_TEST));
|
assertFound(scope, descriptor, scope.getProperties(descriptor.getName(), NoLookupLocation.FROM_TEST));
|
||||||
return null;
|
return null;
|
||||||
@@ -418,7 +418,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitFunctionDescriptor(
|
public Void visitFunctionDescriptor(
|
||||||
FunctionDescriptor descriptor, KtScope scope
|
FunctionDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
assertFound(scope, descriptor, scope.getFunctions(descriptor.getName(), NoLookupLocation.FROM_TEST));
|
assertFound(scope, descriptor, scope.getFunctions(descriptor.getName(), NoLookupLocation.FROM_TEST));
|
||||||
return null;
|
return null;
|
||||||
@@ -426,7 +426,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitTypeParameterDescriptor(
|
public Void visitTypeParameterDescriptor(
|
||||||
TypeParameterDescriptor descriptor, KtScope scope
|
TypeParameterDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
assertFound(scope, descriptor, scope.getClassifier(descriptor.getName(), NoLookupLocation.FROM_TEST), true);
|
assertFound(scope, descriptor, scope.getClassifier(descriptor.getName(), NoLookupLocation.FROM_TEST), true);
|
||||||
return null;
|
return null;
|
||||||
@@ -434,7 +434,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitClassDescriptor(
|
public Void visitClassDescriptor(
|
||||||
ClassDescriptor descriptor, KtScope scope
|
ClassDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
assertFound(scope, descriptor, scope.getClassifier(descriptor.getName(), NoLookupLocation.FROM_TEST), true);
|
assertFound(scope, descriptor, scope.getClassifier(descriptor.getName(), NoLookupLocation.FROM_TEST), true);
|
||||||
return null;
|
return null;
|
||||||
@@ -442,7 +442,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitModuleDeclaration(
|
public Void visitModuleDeclaration(
|
||||||
ModuleDescriptor descriptor, KtScope scope
|
ModuleDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Module found in scope: " + scope);
|
report(descriptor, "Module found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
@@ -450,7 +450,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitConstructorDescriptor(
|
public Void visitConstructorDescriptor(
|
||||||
ConstructorDescriptor descriptor, KtScope scope
|
ConstructorDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Constructor found in scope: " + scope);
|
report(descriptor, "Constructor found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
@@ -458,7 +458,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitScriptDescriptor(
|
public Void visitScriptDescriptor(
|
||||||
ScriptDescriptor descriptor, KtScope scope
|
ScriptDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Script found in scope: " + scope);
|
report(descriptor, "Script found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
@@ -466,21 +466,21 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPropertyDescriptor(
|
public Void visitPropertyDescriptor(
|
||||||
PropertyDescriptor descriptor, KtScope scope
|
PropertyDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
return visitVariableDescriptor(descriptor, scope);
|
return visitVariableDescriptor(descriptor, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitValueParameterDescriptor(
|
public Void visitValueParameterDescriptor(
|
||||||
ValueParameterDescriptor descriptor, KtScope scope
|
ValueParameterDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
return visitVariableDescriptor(descriptor, scope);
|
return visitVariableDescriptor(descriptor, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPropertyGetterDescriptor(
|
public Void visitPropertyGetterDescriptor(
|
||||||
PropertyGetterDescriptor descriptor, KtScope scope
|
PropertyGetterDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Getter found in scope: " + scope);
|
report(descriptor, "Getter found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
@@ -488,7 +488,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitPropertySetterDescriptor(
|
public Void visitPropertySetterDescriptor(
|
||||||
PropertySetterDescriptor descriptor, KtScope scope
|
PropertySetterDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Setter found in scope: " + scope);
|
report(descriptor, "Setter found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
@@ -496,7 +496,7 @@ public class DescriptorValidator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visitReceiverParameterDescriptor(
|
public Void visitReceiverParameterDescriptor(
|
||||||
ReceiverParameterDescriptor descriptor, KtScope scope
|
ReceiverParameterDescriptor descriptor, MemberScope scope
|
||||||
) {
|
) {
|
||||||
report(descriptor, "Receiver parameter found in scope: " + scope);
|
report(descriptor, "Receiver parameter found in scope: " + scope);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.name.FqName;
|
|||||||
import org.jetbrains.kotlin.renderer.*;
|
import org.jetbrains.kotlin.renderer.*;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.MemberComparator;
|
import org.jetbrains.kotlin.resolve.MemberComparator;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.jetbrains.kotlin.utils.Printer;
|
import org.jetbrains.kotlin.utils.Printer;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
@@ -128,7 +128,7 @@ public class RecursiveDescriptorComparator {
|
|||||||
ClassDescriptor klass = (ClassDescriptor) descriptor;
|
ClassDescriptor klass = (ClassDescriptor) descriptor;
|
||||||
appendSubDescriptors(descriptor, module,
|
appendSubDescriptors(descriptor, module,
|
||||||
klass.getDefaultType().getMemberScope(), klass.getConstructors(), printer);
|
klass.getDefaultType().getMemberScope(), klass.getConstructors(), printer);
|
||||||
KtScope staticScope = klass.getStaticScope();
|
MemberScope staticScope = klass.getStaticScope();
|
||||||
if (!DescriptorUtils.getAllDescriptors(staticScope).isEmpty()) {
|
if (!DescriptorUtils.getAllDescriptors(staticScope).isEmpty()) {
|
||||||
printer.println();
|
printer.println();
|
||||||
printer.println("// Static members");
|
printer.println("// Static members");
|
||||||
@@ -185,7 +185,7 @@ public class RecursiveDescriptorComparator {
|
|||||||
private void appendSubDescriptors(
|
private void appendSubDescriptors(
|
||||||
@NotNull DeclarationDescriptor descriptor,
|
@NotNull DeclarationDescriptor descriptor,
|
||||||
@NotNull ModuleDescriptor module,
|
@NotNull ModuleDescriptor module,
|
||||||
@NotNull KtScope memberScope,
|
@NotNull MemberScope memberScope,
|
||||||
@NotNull Collection<? extends DeclarationDescriptor> extraSubDescriptors,
|
@NotNull Collection<? extends DeclarationDescriptor> extraSubDescriptors,
|
||||||
@NotNull Printer printer
|
@NotNull Printer printer
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
|
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.*;
|
import org.jetbrains.kotlin.resolve.scopes.*;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt;
|
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
@@ -84,7 +83,7 @@ public class DefaultModalityModifiersTest extends KotlinLiteFixture {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private LexicalScope createScope(@NotNull KtScope libraryScope) {
|
private LexicalScope createScope(@NotNull MemberScope libraryScope) {
|
||||||
KtFile file = KtPsiFactoryKt
|
KtFile file = KtPsiFactoryKt
|
||||||
.KtPsiFactory(getProject()).createFile("abstract class C { abstract fun foo(); abstract val a: Int }");
|
.KtPsiFactory(getProject()).createFile("abstract class C { abstract fun foo(); abstract val a: Int }");
|
||||||
List<KtDeclaration> declarations = file.getDeclarations();
|
List<KtDeclaration> declarations = file.getDeclarations();
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
|||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic;
|
import org.jetbrains.kotlin.diagnostics.Diagnostic;
|
||||||
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages;
|
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages;
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.psi.KtFile;
|
import org.jetbrains.kotlin.psi.KtFile;
|
||||||
import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
|
import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
|
||||||
@@ -105,7 +104,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
return new LexicalChainedScope(typeParameters, module, false, null, "TypeSubstitutorTest::getContextScope()",
|
return new LexicalChainedScope(typeParameters, module, false, null, "TypeSubstitutorTest::getContextScope()",
|
||||||
new KtScope[] {
|
new MemberScope[] {
|
||||||
contextClass.getDefaultType().getMemberScope(),
|
contextClass.getDefaultType().getMemberScope(),
|
||||||
module.getBuiltIns().getBuiltInsPackageScope()
|
module.getBuiltIns().getBuiltInsPackageScope()
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.psi.KtTypeProjection;
|
|||||||
import org.jetbrains.kotlin.psi.KtTypeReference;
|
import org.jetbrains.kotlin.psi.KtTypeReference;
|
||||||
import org.jetbrains.kotlin.resolve.TypeResolver;
|
import org.jetbrains.kotlin.resolve.TypeResolver;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.*;
|
import org.jetbrains.kotlin.resolve.scopes.*;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt;
|
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
@@ -200,7 +199,7 @@ public class TypeUnifierTest extends KotlinLiteFixture {
|
|||||||
return makeTypeProjection(builtIns.getBuiltInsPackageScope(), typeStr);
|
return makeTypeProjection(builtIns.getBuiltInsPackageScope(), typeStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
private TypeProjection makeTypeProjection(KtScope scope, String typeStr) {
|
private TypeProjection makeTypeProjection(MemberScope scope, String typeStr) {
|
||||||
LexicalScope withX = new LexicalScopeImpl(TypeTestUtilsKt.asLexicalScope(scope), scope.getContainingDeclaration(),
|
LexicalScope withX = new LexicalScopeImpl(TypeTestUtilsKt.asLexicalScope(scope), scope.getContainingDeclaration(),
|
||||||
false, null, "With X", RedeclarationHandler.DO_NOTHING,
|
false, null, "With X", RedeclarationHandler.DO_NOTHING,
|
||||||
new Function1<LexicalScopeImpl.InitializeHandler, Unit>() {
|
new Function1<LexicalScopeImpl.InitializeHandler, Unit>() {
|
||||||
|
|||||||
@@ -17,12 +17,12 @@
|
|||||||
package org.jetbrains.kotlin.types
|
package org.jetbrains.kotlin.types
|
||||||
|
|
||||||
import org.jetbrains.kotlin.resolve.scopes.BaseLexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.BaseLexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
|
|
||||||
public fun KtScope.asLexicalScope(): LexicalScope {
|
public fun MemberScope.asLexicalScope(): LexicalScope {
|
||||||
val importingScope = memberScopeAsImportingScope()
|
val importingScope = memberScopeAsImportingScope()
|
||||||
return object : BaseLexicalScope(importingScope, getContainingDeclaration()) {
|
return object : BaseLexicalScope(importingScope, getContainingDeclaration()) {
|
||||||
override fun printStructure(p: Printer) {
|
override fun printStructure(p: Printer) {
|
||||||
|
|||||||
+3
-3
@@ -22,19 +22,19 @@ import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
|||||||
import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
|
|
||||||
public interface SamConversionResolver {
|
public interface SamConversionResolver {
|
||||||
public companion object EMPTY : SamConversionResolver {
|
public companion object EMPTY : SamConversionResolver {
|
||||||
override fun <D : FunctionDescriptor> resolveSamAdapter(original: D) = null
|
override fun <D : FunctionDescriptor> resolveSamAdapter(original: D) = null
|
||||||
override fun resolveSamConstructor(name: Name, scope: KtScope, location: LookupLocation) = null
|
override fun resolveSamConstructor(name: Name, scope: MemberScope, location: LookupLocation) = null
|
||||||
override fun resolveFunctionTypeIfSamInterface(
|
override fun resolveFunctionTypeIfSamInterface(
|
||||||
classDescriptor: JavaClassDescriptor, resolveMethod: (JavaMethod) -> FunctionDescriptor
|
classDescriptor: JavaClassDescriptor, resolveMethod: (JavaMethod) -> FunctionDescriptor
|
||||||
): KotlinType? = null
|
): KotlinType? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun resolveSamConstructor(name: Name, scope: KtScope, location: LookupLocation): SamConstructorDescriptor?
|
public fun resolveSamConstructor(name: Name, scope: MemberScope, location: LookupLocation): SamConstructorDescriptor?
|
||||||
|
|
||||||
public fun <D : FunctionDescriptor> resolveSamAdapter(original: D): D?
|
public fun <D : FunctionDescriptor> resolveSamAdapter(original: D): D?
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.name.isValidJavaFqName
|
import org.jetbrains.kotlin.name.isValidJavaFqName
|
||||||
import org.jetbrains.kotlin.resolve.constants.StringValue
|
import org.jetbrains.kotlin.resolve.constants.StringValue
|
||||||
import org.jetbrains.kotlin.resolve.scopes.InnerClassesScopeWrapper
|
import org.jetbrains.kotlin.resolve.scopes.InnerClassesScopeWrapper
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.jetbrains.kotlin.utils.toReadOnlyList
|
import org.jetbrains.kotlin.utils.toReadOnlyList
|
||||||
@@ -92,10 +92,10 @@ class LazyJavaClassDescriptor(
|
|||||||
override fun getUnsubstitutedMemberScope() = unsubstitutedMemberScope
|
override fun getUnsubstitutedMemberScope() = unsubstitutedMemberScope
|
||||||
|
|
||||||
private val innerClassesScope = InnerClassesScopeWrapper(getUnsubstitutedMemberScope())
|
private val innerClassesScope = InnerClassesScopeWrapper(getUnsubstitutedMemberScope())
|
||||||
override fun getUnsubstitutedInnerClassesScope(): KtScope = innerClassesScope
|
override fun getUnsubstitutedInnerClassesScope(): MemberScope = innerClassesScope
|
||||||
|
|
||||||
private val staticScope = LazyJavaStaticClassScope(c, jClass, this)
|
private val staticScope = LazyJavaStaticClassScope(c, jClass, this)
|
||||||
override fun getStaticScope(): KtScope = staticScope
|
override fun getStaticScope(): MemberScope = staticScope
|
||||||
|
|
||||||
override fun getUnsubstitutedPrimaryConstructor(): ConstructorDescriptor? = null
|
override fun getUnsubstitutedPrimaryConstructor(): ConstructorDescriptor? = null
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.name.SpecialNames
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
public class LazyJavaPackageScope(
|
public class LazyJavaPackageScope(
|
||||||
@@ -71,7 +71,7 @@ public class LazyJavaPackageScope(
|
|||||||
c.components.deserializedDescriptorResolver.readData(binaryClass, DeserializedDescriptorResolver.KOTLIN_PACKAGE_FACADE)
|
c.components.deserializedDescriptorResolver.readData(binaryClass, DeserializedDescriptorResolver.KOTLIN_PACKAGE_FACADE)
|
||||||
}
|
}
|
||||||
|
|
||||||
KtScope.empty(packageFragment)
|
MemberScope.empty(packageFragment)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
c.components.deserializedDescriptorResolver.createKotlinPackageScope(packageFragment, containingDeclaration.kotlinBinaryClasses)
|
c.components.deserializedDescriptorResolver.createKotlinPackageScope(packageFragment, containingDeclaration.kotlinBinaryClasses)
|
||||||
|
|||||||
+4
-4
@@ -41,8 +41,8 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.PLATFORM_TYPES
|
import org.jetbrains.kotlin.resolve.jvm.PLATFORM_TYPES
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude.NonExtensions
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude.NonExtensions
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
@@ -54,11 +54,11 @@ import java.util.*
|
|||||||
public abstract class LazyJavaScope(
|
public abstract class LazyJavaScope(
|
||||||
protected val c: LazyJavaResolverContext,
|
protected val c: LazyJavaResolverContext,
|
||||||
private val containingDeclaration: DeclarationDescriptor
|
private val containingDeclaration: DeclarationDescriptor
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
// this lazy value is not used at all in LazyPackageFragmentScopeForJavaPackage because we do not use caching there
|
// this lazy value is not used at all in LazyPackageFragmentScopeForJavaPackage because we do not use caching there
|
||||||
// but is placed in the base class to not duplicate code
|
// but is placed in the base class to not duplicate code
|
||||||
private val allDescriptors = c.storageManager.createRecursionTolerantLazyValue<Collection<DeclarationDescriptor>>(
|
private val allDescriptors = c.storageManager.createRecursionTolerantLazyValue<Collection<DeclarationDescriptor>>(
|
||||||
{ computeDescriptors(DescriptorKindFilter.ALL, KtScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS) },
|
{ computeDescriptors(DescriptorKindFilter.ALL, MemberScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS) },
|
||||||
// This is to avoid the following recursive case:
|
// This is to avoid the following recursive case:
|
||||||
// when computing getAllPackageNames() we ask the JavaPsiFacade for all subpackages of foo
|
// when computing getAllPackageNames() we ask the JavaPsiFacade for all subpackages of foo
|
||||||
// it, in turn, asks JavaElementFinder for subpackages of Kotlin package foo, which calls getAllPackageNames() recursively
|
// it, in turn, asks JavaElementFinder for subpackages of Kotlin package foo, which calls getAllPackageNames() recursively
|
||||||
|
|||||||
+3
-3
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.platform.JvmBuiltIns
|
import org.jetbrains.kotlin.platform.JvmBuiltIns
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalSupertypes
|
import org.jetbrains.kotlin.serialization.deserialization.AdditionalSupertypes
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
|
||||||
import org.jetbrains.kotlin.types.DelegatingType
|
import org.jetbrains.kotlin.types.DelegatingType
|
||||||
@@ -42,7 +42,7 @@ class BuiltInClassesAreSerializableOnJvm(
|
|||||||
|
|
||||||
private fun createMockJavaIoSerializableType(): KotlinType {
|
private fun createMockJavaIoSerializableType(): KotlinType {
|
||||||
val mockJavaIoPackageFragment = object : PackageFragmentDescriptorImpl(moduleDescriptor, FqName("java.io")) {
|
val mockJavaIoPackageFragment = object : PackageFragmentDescriptorImpl(moduleDescriptor, FqName("java.io")) {
|
||||||
override fun getMemberScope() = KtScope.empty(this)
|
override fun getMemberScope() = MemberScope.empty(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
//NOTE: can't reference anyType right away, because this is sometimes called when JvmBuiltIns are initializing
|
//NOTE: can't reference anyType right away, because this is sometimes called when JvmBuiltIns are initializing
|
||||||
@@ -56,7 +56,7 @@ class BuiltInClassesAreSerializableOnJvm(
|
|||||||
mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, superTypes, SourceElement.NO_SOURCE
|
mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, superTypes, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|
||||||
mockSerializableClass.initialize(KtScope.empty(mockSerializableClass), emptySet(), null)
|
mockSerializableClass.initialize(MemberScope.empty(mockSerializableClass), emptySet(), null)
|
||||||
return mockSerializableClass.defaultType
|
return mockSerializableClass.defaultType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor;
|
|||||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader;
|
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.serialization.ClassData;
|
import org.jetbrains.kotlin.serialization.ClassData;
|
||||||
import org.jetbrains.kotlin.serialization.ClassDataWithSource;
|
import org.jetbrains.kotlin.serialization.ClassDataWithSource;
|
||||||
import org.jetbrains.kotlin.serialization.PackageData;
|
import org.jetbrains.kotlin.serialization.PackageData;
|
||||||
@@ -74,7 +74,7 @@ public final class DeserializedDescriptorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public KtScope createKotlinPackagePartScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull KotlinJvmBinaryClass kotlinClass) {
|
public MemberScope createKotlinPackagePartScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull KotlinJvmBinaryClass kotlinClass) {
|
||||||
String[] data = readData(kotlinClass, KOTLIN_FILE_FACADE_OR_MULTIFILE_CLASS_PART);
|
String[] data = readData(kotlinClass, KOTLIN_FILE_FACADE_OR_MULTIFILE_CLASS_PART);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
String[] strings = kotlinClass.getClassHeader().getStrings();
|
String[] strings = kotlinClass.getClassHeader().getStrings();
|
||||||
@@ -95,18 +95,18 @@ public final class DeserializedDescriptorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public KtScope createKotlinPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull List<KotlinJvmBinaryClass> packageParts) {
|
public MemberScope createKotlinPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull List<KotlinJvmBinaryClass> packageParts) {
|
||||||
List<KtScope> list = new ArrayList<KtScope>();
|
List<MemberScope> list = new ArrayList<MemberScope>();
|
||||||
for (KotlinJvmBinaryClass callable : packageParts) {
|
for (KotlinJvmBinaryClass callable : packageParts) {
|
||||||
KtScope scope = createKotlinPackagePartScope(descriptor, callable);
|
MemberScope scope = createKotlinPackagePartScope(descriptor, callable);
|
||||||
if (scope != null) {
|
if (scope != null) {
|
||||||
list.add(scope);
|
list.add(scope);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (list.isEmpty()) {
|
if (list.isEmpty()) {
|
||||||
return KtScope.Companion.empty(descriptor);
|
return MemberScope.Companion.empty(descriptor);
|
||||||
}
|
}
|
||||||
return new ChainedScope(descriptor, "Member scope for union of package parts data", list.toArray(new KtScope[list.size()]));
|
return new ChainedScope(descriptor, "Member scope for union of package parts data", list.toArray(new MemberScope[list.size()]));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.resolve.jvm
|
|||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.load.java.structure.*
|
import org.jetbrains.kotlin.load.java.structure.*
|
||||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider
|
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
||||||
|
|
||||||
public var PLATFORM_TYPES: Boolean = true
|
public var PLATFORM_TYPES: Boolean = true
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.name.FqNameUnsafe;
|
|||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalSupertypes;
|
import org.jetbrains.kotlin.serialization.deserialization.AdditionalSupertypes;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
@@ -202,12 +202,12 @@ public abstract class KotlinBuiltIns {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public KtScope getBuiltInsPackageScope() {
|
public MemberScope getBuiltInsPackageScope() {
|
||||||
return builtinsPackageFragment.getMemberScope();
|
return builtinsPackageFragment.getMemberScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public KtScope getAnnotationPackageScope() {
|
public MemberScope getAnnotationPackageScope() {
|
||||||
return annotationPackageFragment.getMemberScope();
|
return annotationPackageFragment.getMemberScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -32,7 +32,7 @@ import java.util.*
|
|||||||
val KOTLIN_REFLECT_FQ_NAME = FqName("kotlin.reflect")
|
val KOTLIN_REFLECT_FQ_NAME = FqName("kotlin.reflect")
|
||||||
|
|
||||||
public class ReflectionTypes(private val module: ModuleDescriptor) {
|
public class ReflectionTypes(private val module: ModuleDescriptor) {
|
||||||
private val kotlinReflectScope: KtScope by lazy {
|
private val kotlinReflectScope: MemberScope by lazy {
|
||||||
module.getPackage(KOTLIN_REFLECT_FQ_NAME).memberScope
|
module.getPackage(KOTLIN_REFLECT_FQ_NAME).memberScope
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.descriptors.*
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
@@ -30,7 +30,7 @@ import java.util.ArrayList
|
|||||||
class FunctionClassScope(
|
class FunctionClassScope(
|
||||||
private val storageManager: StorageManager,
|
private val storageManager: StorageManager,
|
||||||
private val functionClass: FunctionClassDescriptor
|
private val functionClass: FunctionClassDescriptor
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
private val allDescriptors = storageManager.createLazyValue {
|
private val allDescriptors = storageManager.createLazyValue {
|
||||||
if (functionClass.functionKind == FunctionClassDescriptor.Kind.Function) {
|
if (functionClass.functionKind == FunctionClassDescriptor.Kind.Function) {
|
||||||
val invoke = FunctionInvokeDescriptor.create(functionClass)
|
val invoke = FunctionInvokeDescriptor.create(functionClass)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.descriptors;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.ReadOnly;
|
import org.jetbrains.annotations.ReadOnly;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.jetbrains.kotlin.types.TypeProjection;
|
import org.jetbrains.kotlin.types.TypeProjection;
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitution;
|
import org.jetbrains.kotlin.types.TypeSubstitution;
|
||||||
@@ -30,19 +30,19 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor, ClassOrPackageFragmentDescriptor {
|
public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor, ClassOrPackageFragmentDescriptor {
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments);
|
MemberScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments);
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getMemberScope(@NotNull TypeSubstitution typeSubstitution);
|
MemberScope getMemberScope(@NotNull TypeSubstitution typeSubstitution);
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getUnsubstitutedMemberScope();
|
MemberScope getUnsubstitutedMemberScope();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getUnsubstitutedInnerClassesScope();
|
MemberScope getUnsubstitutedInnerClassesScope();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getStaticScope();
|
MemberScope getStaticScope();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@ReadOnly
|
@ReadOnly
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.descriptors
|
package org.jetbrains.kotlin.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
public interface PackageFragmentDescriptor : ClassOrPackageFragmentDescriptor {
|
public interface PackageFragmentDescriptor : ClassOrPackageFragmentDescriptor {
|
||||||
|
|
||||||
@@ -25,5 +25,5 @@ public interface PackageFragmentDescriptor : ClassOrPackageFragmentDescriptor {
|
|||||||
|
|
||||||
public val fqName: FqName
|
public val fqName: FqName
|
||||||
|
|
||||||
public fun getMemberScope(): KtScope
|
public fun getMemberScope(): MemberScope
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,14 +17,14 @@
|
|||||||
package org.jetbrains.kotlin.descriptors
|
package org.jetbrains.kotlin.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
public interface PackageViewDescriptor : DeclarationDescriptor {
|
public interface PackageViewDescriptor : DeclarationDescriptor {
|
||||||
override fun getContainingDeclaration(): PackageViewDescriptor?
|
override fun getContainingDeclaration(): PackageViewDescriptor?
|
||||||
|
|
||||||
public val fqName: FqName
|
public val fqName: FqName
|
||||||
|
|
||||||
public val memberScope: KtScope
|
public val memberScope: MemberScope
|
||||||
|
|
||||||
public val module: ModuleDescriptor
|
public val module: ModuleDescriptor
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.InnerClassesScopeWrapper;
|
import org.jetbrains.kotlin.resolve.scopes.InnerClassesScopeWrapper;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.SubstitutingScope;
|
import org.jetbrains.kotlin.resolve.scopes.SubstitutingScope;
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
||||||
import org.jetbrains.kotlin.storage.StorageManager;
|
import org.jetbrains.kotlin.storage.StorageManager;
|
||||||
@@ -32,7 +32,7 @@ import java.util.List;
|
|||||||
public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
||||||
private final Name name;
|
private final Name name;
|
||||||
protected final NotNullLazyValue<KotlinType> defaultType;
|
protected final NotNullLazyValue<KotlinType> defaultType;
|
||||||
private final NotNullLazyValue<KtScope> unsubstitutedInnerClassesScope;
|
private final NotNullLazyValue<MemberScope> unsubstitutedInnerClassesScope;
|
||||||
private final NotNullLazyValue<ReceiverParameterDescriptor> thisAsReceiverParameter;
|
private final NotNullLazyValue<ReceiverParameterDescriptor> thisAsReceiverParameter;
|
||||||
|
|
||||||
public AbstractClassDescriptor(@NotNull StorageManager storageManager, @NotNull Name name) {
|
public AbstractClassDescriptor(@NotNull StorageManager storageManager, @NotNull Name name) {
|
||||||
@@ -43,9 +43,9 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
|||||||
return TypeUtils.makeUnsubstitutedType(AbstractClassDescriptor.this, getUnsubstitutedMemberScope());
|
return TypeUtils.makeUnsubstitutedType(AbstractClassDescriptor.this, getUnsubstitutedMemberScope());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.unsubstitutedInnerClassesScope = storageManager.createLazyValue(new Function0<KtScope>() {
|
this.unsubstitutedInnerClassesScope = storageManager.createLazyValue(new Function0<MemberScope>() {
|
||||||
@Override
|
@Override
|
||||||
public KtScope invoke() {
|
public MemberScope invoke() {
|
||||||
return new InnerClassesScopeWrapper(getUnsubstitutedMemberScope());
|
return new InnerClassesScopeWrapper(getUnsubstitutedMemberScope());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -71,7 +71,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedInnerClassesScope() {
|
public MemberScope getUnsubstitutedInnerClassesScope() {
|
||||||
return unsubstitutedInnerClassesScope.invoke();
|
return unsubstitutedInnerClassesScope.invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
public MemberScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
||||||
assert typeArguments.size() == getTypeConstructor().getParameters().size() : "Illegal number of type arguments: expected "
|
assert typeArguments.size() == getTypeConstructor().getParameters().size() : "Illegal number of type arguments: expected "
|
||||||
+ getTypeConstructor().getParameters().size() + " but was " + typeArguments.size()
|
+ getTypeConstructor().getParameters().size() + " but was " + typeArguments.size()
|
||||||
+ " for " + getTypeConstructor() + " " + getTypeConstructor().getParameters();
|
+ " for " + getTypeConstructor() + " " + getTypeConstructor().getParameters();
|
||||||
@@ -95,7 +95,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
public MemberScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
||||||
if (typeSubstitution.isEmpty()) return getUnsubstitutedMemberScope();
|
if (typeSubstitution.isEmpty()) return getUnsubstitutedMemberScope();
|
||||||
|
|
||||||
TypeSubstitutor substitutor = TypeSubstitutor.create(typeSubstitution);
|
TypeSubstitutor substitutor = TypeSubstitutor.create(typeSubstitution);
|
||||||
|
|||||||
+5
-5
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.descriptors.*;
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter;
|
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter;
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
||||||
import org.jetbrains.kotlin.storage.StorageManager;
|
import org.jetbrains.kotlin.storage.StorageManager;
|
||||||
@@ -76,17 +76,17 @@ public abstract class AbstractTypeParameterDescriptor extends DeclarationDescrip
|
|||||||
Annotations.Companion.getEMPTY(),
|
Annotations.Companion.getEMPTY(),
|
||||||
getTypeConstructor(), false, Collections.<TypeProjection>emptyList(),
|
getTypeConstructor(), false, Collections.<TypeProjection>emptyList(),
|
||||||
new LazyScopeAdapter(storageManager.createLazyValue(
|
new LazyScopeAdapter(storageManager.createLazyValue(
|
||||||
new Function0<KtScope>() {
|
new Function0<MemberScope>() {
|
||||||
@Override
|
@Override
|
||||||
public KtScope invoke() {
|
public MemberScope invoke() {
|
||||||
List<KtScope> scopes = new ArrayList<KtScope>();
|
List<MemberScope> scopes = new ArrayList<MemberScope>();
|
||||||
for (KotlinType bound : getUpperBounds()) {
|
for (KotlinType bound : getUpperBounds()) {
|
||||||
scopes.add(bound.getMemberScope());
|
scopes.add(bound.getMemberScope());
|
||||||
}
|
}
|
||||||
return new ChainedScope(
|
return new ChainedScope(
|
||||||
AbstractTypeParameterDescriptor.this,
|
AbstractTypeParameterDescriptor.this,
|
||||||
"Scope for type parameter " + name.asString(),
|
"Scope for type parameter " + name.asString(),
|
||||||
scopes.toArray(new KtScope[scopes.size()])
|
scopes.toArray(new MemberScope[scopes.size()])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
@@ -35,9 +35,9 @@ import java.util.Set;
|
|||||||
public class ClassDescriptorImpl extends ClassDescriptorBase {
|
public class ClassDescriptorImpl extends ClassDescriptorBase {
|
||||||
private final Modality modality;
|
private final Modality modality;
|
||||||
private final TypeConstructor typeConstructor;
|
private final TypeConstructor typeConstructor;
|
||||||
private final KtScope staticScope = new StaticScopeForKotlinClass(this);
|
private final MemberScope staticScope = new StaticScopeForKotlinClass(this);
|
||||||
|
|
||||||
private KtScope unsubstitutedMemberScope;
|
private MemberScope unsubstitutedMemberScope;
|
||||||
private Set<ConstructorDescriptor> constructors;
|
private Set<ConstructorDescriptor> constructors;
|
||||||
private ConstructorDescriptor primaryConstructor;
|
private ConstructorDescriptor primaryConstructor;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ public class ClassDescriptorImpl extends ClassDescriptorBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final void initialize(
|
public final void initialize(
|
||||||
@NotNull KtScope unsubstitutedMemberScope,
|
@NotNull MemberScope unsubstitutedMemberScope,
|
||||||
@NotNull Set<ConstructorDescriptor> constructors,
|
@NotNull Set<ConstructorDescriptor> constructors,
|
||||||
@Nullable ConstructorDescriptor primaryConstructor
|
@Nullable ConstructorDescriptor primaryConstructor
|
||||||
) {
|
) {
|
||||||
@@ -89,13 +89,13 @@ public class ClassDescriptorImpl extends ClassDescriptorBase {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedMemberScope() {
|
public MemberScope getUnsubstitutedMemberScope() {
|
||||||
return unsubstitutedMemberScope;
|
return unsubstitutedMemberScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getStaticScope() {
|
public MemberScope getStaticScope() {
|
||||||
return staticScope;
|
return staticScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-8
@@ -28,8 +28,8 @@ import org.jetbrains.kotlin.name.Name;
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorFactory;
|
import org.jetbrains.kotlin.resolve.DescriptorFactory;
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil;
|
import org.jetbrains.kotlin.resolve.OverridingUtil;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass;
|
||||||
import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull;
|
import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull;
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
import org.jetbrains.kotlin.storage.NotNullLazyValue;
|
||||||
@@ -47,8 +47,8 @@ import java.util.Set;
|
|||||||
public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
|
public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
|
||||||
private final TypeConstructor typeConstructor;
|
private final TypeConstructor typeConstructor;
|
||||||
private final ConstructorDescriptor primaryConstructor;
|
private final ConstructorDescriptor primaryConstructor;
|
||||||
private final KtScope scope;
|
private final MemberScope scope;
|
||||||
private final KtScope staticScope = new StaticScopeForKotlinClass(this);
|
private final MemberScope staticScope = new StaticScopeForKotlinClass(this);
|
||||||
private final NotNullLazyValue<Collection<Name>> enumMemberNames;
|
private final NotNullLazyValue<Collection<Name>> enumMemberNames;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,13 +93,13 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedMemberScope() {
|
public MemberScope getUnsubstitutedMemberScope() {
|
||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getStaticScope() {
|
public MemberScope getStaticScope() {
|
||||||
return staticScope;
|
return staticScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
|
|||||||
return "enum entry " + getName();
|
return "enum entry " + getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class EnumEntryScope extends KtScopeImpl {
|
private class EnumEntryScope extends MemberScopeImpl {
|
||||||
private final MemoizedFunctionToNotNull<Name, Collection<FunctionDescriptor>> functions;
|
private final MemoizedFunctionToNotNull<Name, Collection<FunctionDescriptor>> functions;
|
||||||
private final MemoizedFunctionToNotNull<Name, Collection<PropertyDescriptor>> properties;
|
private final MemoizedFunctionToNotNull<Name, Collection<PropertyDescriptor>> properties;
|
||||||
private final NotNullLazyValue<Collection<DeclarationDescriptor>> allDescriptors;
|
private final NotNullLazyValue<Collection<DeclarationDescriptor>> allDescriptors;
|
||||||
@@ -223,7 +223,7 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private KtScope getSupertypeScope() {
|
private MemberScope getSupertypeScope() {
|
||||||
Collection<KotlinType> supertype = getTypeConstructor().getSupertypes();
|
Collection<KotlinType> supertype = getTypeConstructor().getSupertypes();
|
||||||
assert supertype.size() == 1 : "Enum entry and its companion object both should have exactly one supertype: " + supertype;
|
assert supertype.size() == 1 : "Enum entry and its companion object both should have exactly one supertype: " + supertype;
|
||||||
return supertype.iterator().next().getMemberScope();
|
return supertype.iterator().next().getMemberScope();
|
||||||
|
|||||||
+3
-3
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
import org.jetbrains.kotlin.resolve.scopes.ChainedScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter
|
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.storage.getValue
|
import org.jetbrains.kotlin.storage.getValue
|
||||||
@@ -39,9 +39,9 @@ public class LazyPackageViewDescriptorImpl(
|
|||||||
module.packageFragmentProvider.getPackageFragments(fqName)
|
module.packageFragmentProvider.getPackageFragments(fqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val memberScope: KtScope = LazyScopeAdapter(storageManager.createLazyValue {
|
override val memberScope: MemberScope = LazyScopeAdapter(storageManager.createLazyValue {
|
||||||
if (fragments.isEmpty()) {
|
if (fragments.isEmpty()) {
|
||||||
KtScope.empty(this)
|
MemberScope.empty(this)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val scopes = fragments.map { it.getMemberScope() } + SubpackagesScope(module, fqName)
|
val scopes = fragments.map { it.getMemberScope() } + SubpackagesScope(module, fqName)
|
||||||
|
|||||||
+9
-9
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.SubstitutingScope;
|
import org.jetbrains.kotlin.resolve.scopes.SubstitutingScope;
|
||||||
import org.jetbrains.kotlin.types.*;
|
import org.jetbrains.kotlin.types.*;
|
||||||
|
|
||||||
@@ -89,8 +89,8 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
public MemberScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
||||||
KtScope memberScope = original.getMemberScope(typeArguments);
|
MemberScope memberScope = original.getMemberScope(typeArguments);
|
||||||
if (originalSubstitutor.isEmpty()) {
|
if (originalSubstitutor.isEmpty()) {
|
||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
@@ -99,8 +99,8 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
public MemberScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
||||||
KtScope memberScope = original.getMemberScope(typeSubstitution);
|
MemberScope memberScope = original.getMemberScope(typeSubstitution);
|
||||||
if (originalSubstitutor.isEmpty()) {
|
if (originalSubstitutor.isEmpty()) {
|
||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
@@ -109,8 +109,8 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedMemberScope() {
|
public MemberScope getUnsubstitutedMemberScope() {
|
||||||
KtScope memberScope = original.getUnsubstitutedMemberScope();
|
MemberScope memberScope = original.getUnsubstitutedMemberScope();
|
||||||
if (originalSubstitutor.isEmpty()) {
|
if (originalSubstitutor.isEmpty()) {
|
||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
@@ -119,7 +119,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getStaticScope() {
|
public MemberScope getStaticScope() {
|
||||||
return original.getStaticScope();
|
return original.getStaticScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getUnsubstitutedInnerClassesScope() {
|
public MemberScope getUnsubstitutedInnerClassesScope() {
|
||||||
return original.getUnsubstitutedInnerClassesScope();
|
return original.getUnsubstitutedInnerClassesScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.jetbrains.kotlin.utils.sure
|
import org.jetbrains.kotlin.utils.sure
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
|
||||||
public class SubpackagesScope(private val moduleDescriptor: ModuleDescriptor, private val fqName: FqName) : KtScopeImpl() {
|
public class SubpackagesScope(private val moduleDescriptor: ModuleDescriptor, private val fqName: FqName) : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor {
|
override fun getContainingDeclaration(): DeclarationDescriptor {
|
||||||
return moduleDescriptor.getPackage(fqName)
|
return moduleDescriptor.getPackage(fqName)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|||||||
import org.jetbrains.kotlin.incremental.components.ScopeKind
|
import org.jetbrains.kotlin.incremental.components.ScopeKind
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
public fun LookupTracker.record(from: LookupLocation, inScope: KtScope, name: Name) {
|
public fun LookupTracker.record(from: LookupLocation, inScope: MemberScope, name: Name) {
|
||||||
if (this == LookupTracker.DO_NOTHING || from is NoLookupLocation) return
|
if (this == LookupTracker.DO_NOTHING || from is NoLookupLocation) return
|
||||||
|
|
||||||
val location = from.location ?: return
|
val location = from.location ?: return
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.name.SpecialNames;
|
|||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
||||||
import org.jetbrains.kotlin.resolve.constants.StringValue;
|
import org.jetbrains.kotlin.resolve.constants.StringValue;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils;
|
import org.jetbrains.kotlin.types.ErrorUtils;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
import org.jetbrains.kotlin.types.LazyType;
|
import org.jetbrains.kotlin.types.LazyType;
|
||||||
@@ -550,7 +550,7 @@ public class DescriptorUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Collection<DeclarationDescriptor> getAllDescriptors(@NotNull KtScope scope) {
|
public static Collection<DeclarationDescriptor> getAllDescriptors(@NotNull MemberScope scope) {
|
||||||
return scope.getDescriptors(DescriptorKindFilter.ALL, KtScope.Companion.getALL_NAME_FILTER());
|
return scope.getDescriptors(DescriptorKindFilter.ALL, MemberScope.Companion.getALL_NAME_FILTER());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
/**
|
/**
|
||||||
* Introduces a simple wrapper for internal scope.
|
* Introduces a simple wrapper for internal scope.
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractScopeAdapter : KtScope {
|
public abstract class AbstractScopeAdapter : MemberScope {
|
||||||
protected abstract val workerScope: KtScope
|
protected abstract val workerScope: MemberScope
|
||||||
|
|
||||||
public fun getActualScope(): KtScope =
|
public fun getActualScope(): MemberScope =
|
||||||
if (workerScope is AbstractScopeAdapter)
|
if (workerScope is AbstractScopeAdapter)
|
||||||
(workerScope as AbstractScopeAdapter).getActualScope()
|
(workerScope as AbstractScopeAdapter).getActualScope()
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
public open class ChainedScope(
|
public open class ChainedScope(
|
||||||
private val containingDeclaration: DeclarationDescriptor?/* it's nullable as a hack for TypeUtils.intersect() */,
|
private val containingDeclaration: DeclarationDescriptor?/* it's nullable as a hack for TypeUtils.intersect() */,
|
||||||
private val debugName: String,
|
private val debugName: String,
|
||||||
vararg scopes: KtScope
|
vararg scopes: MemberScope
|
||||||
) : KtScope {
|
) : MemberScope {
|
||||||
private val scopeChain = scopes.clone()
|
private val scopeChain = scopes.clone()
|
||||||
|
|
||||||
override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
|
|
||||||
public class InnerClassesScopeWrapper(val workerScope: KtScope) : KtScopeImpl() {
|
public class InnerClassesScopeWrapper(val workerScope: MemberScope) : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor {
|
override fun getContainingDeclaration(): DeclarationDescriptor {
|
||||||
return workerScope.getContainingDeclaration()
|
return workerScope.getContainingDeclaration()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.scopes
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
import org.jetbrains.kotlin.storage.NotNullLazyValue
|
||||||
|
|
||||||
public class LazyScopeAdapter(private val scope: NotNullLazyValue<KtScope>) : AbstractScopeAdapter() {
|
public class LazyScopeAdapter(private val scope: NotNullLazyValue<MemberScope>) : AbstractScopeAdapter() {
|
||||||
override val workerScope: KtScope
|
override val workerScope: MemberScope
|
||||||
get() = scope()
|
get() = scope()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
import org.jetbrains.kotlin.utils.toReadOnlyList
|
import org.jetbrains.kotlin.utils.toReadOnlyList
|
||||||
import java.lang.reflect.Modifier
|
import java.lang.reflect.Modifier
|
||||||
|
|
||||||
public interface KtScope {
|
public interface MemberScope {
|
||||||
|
|
||||||
public fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
public fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor?
|
||||||
|
|
||||||
@@ -51,8 +51,8 @@ public interface KtScope {
|
|||||||
public fun printScopeStructure(p: Printer)
|
public fun printScopeStructure(p: Printer)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
public fun empty(ownerDescriptor: DeclarationDescriptor): KtScope {
|
public fun empty(ownerDescriptor: DeclarationDescriptor): MemberScope {
|
||||||
return object : KtScopeImpl() {
|
return object : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration() = ownerDescriptor
|
override fun getContainingDeclaration() = ownerDescriptor
|
||||||
|
|
||||||
override fun toString() = "Empty scope with owner: $ownerDescriptor"
|
override fun toString() = "Empty scope with owner: $ownerDescriptor"
|
||||||
@@ -70,7 +70,7 @@ public interface KtScope {
|
|||||||
/**
|
/**
|
||||||
* The same as getDescriptors(kindFilter, nameFilter) but the result is guaranteed to be filtered by kind and name.
|
* The same as getDescriptors(kindFilter, nameFilter) but the result is guaranteed to be filtered by kind and name.
|
||||||
*/
|
*/
|
||||||
public fun KtScope.getDescriptorsFiltered(
|
public fun MemberScope.getDescriptorsFiltered(
|
||||||
kindFilter: DescriptorKindFilter = DescriptorKindFilter.ALL,
|
kindFilter: DescriptorKindFilter = DescriptorKindFilter.ALL,
|
||||||
nameFilter: (Name) -> Boolean = { true }
|
nameFilter: (Name) -> Boolean = { true }
|
||||||
): Collection<DeclarationDescriptor> {
|
): Collection<DeclarationDescriptor> {
|
||||||
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
|
|
||||||
abstract class KtScopeImpl : KtScope {
|
abstract class MemberScopeImpl : MemberScope {
|
||||||
override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = null
|
override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = null
|
||||||
|
|
||||||
override fun getProperties(name: Name, location: LookupLocation): Collection<PropertyDescriptor> = emptyList()
|
override fun getProperties(name: Name, location: LookupLocation): Collection<PropertyDescriptor> = emptyList()
|
||||||
+1
-1
@@ -29,7 +29,7 @@ import java.util.*
|
|||||||
// We don't need to track lookups here since this scope used only for introduce special Enum class members
|
// We don't need to track lookups here since this scope used only for introduce special Enum class members
|
||||||
public class StaticScopeForKotlinClass(
|
public class StaticScopeForKotlinClass(
|
||||||
private val containingClass: ClassDescriptor
|
private val containingClass: ClassDescriptor
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
override fun getClassifier(name: Name, location: LookupLocation) = null // TODO
|
override fun getClassifier(name: Name, location: LookupLocation) = null // TODO
|
||||||
|
|
||||||
private val functions: List<FunctionDescriptor> by lazy {
|
private val functions: List<FunctionDescriptor> by lazy {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
import org.jetbrains.kotlin.utils.newHashSetWithExpectedSize
|
import org.jetbrains.kotlin.utils.newHashSetWithExpectedSize
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
public class SubstitutingScope(private val workerScope: KtScope, private val substitutor: TypeSubstitutor) : KtScope {
|
public class SubstitutingScope(private val workerScope: MemberScope, private val substitutor: TypeSubstitutor) : MemberScope {
|
||||||
|
|
||||||
private var substitutedDescriptors: MutableMap<DeclarationDescriptor, DeclarationDescriptor?>? = null
|
private var substitutedDescriptors: MutableMap<DeclarationDescriptor, DeclarationDescriptor?>? = null
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.types
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
|
|
||||||
public abstract class AbstractLazyType(storageManager: StorageManager) : AbstractKotlinType(), LazyType {
|
public abstract class AbstractLazyType(storageManager: StorageManager) : AbstractKotlinType(), LazyType {
|
||||||
@@ -41,7 +41,7 @@ public abstract class AbstractLazyType(storageManager: StorageManager) : Abstrac
|
|||||||
private val memberScope = storageManager.createLazyValue { computeMemberScope() }
|
private val memberScope = storageManager.createLazyValue { computeMemberScope() }
|
||||||
override fun getMemberScope() = memberScope()
|
override fun getMemberScope() = memberScope()
|
||||||
|
|
||||||
protected open fun computeMemberScope(): KtScope {
|
protected open fun computeMemberScope(): MemberScope {
|
||||||
val descriptor = constructor.getDeclarationDescriptor()
|
val descriptor = constructor.getDeclarationDescriptor()
|
||||||
return when (descriptor) {
|
return when (descriptor) {
|
||||||
is TypeParameterDescriptor -> descriptor.getDefaultType().getMemberScope()
|
is TypeParameterDescriptor -> descriptor.getDefaultType().getMemberScope()
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.types;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -52,7 +52,7 @@ public abstract class DelegatingType implements KotlinType {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
return getDelegate().getMemberScope();
|
return getDelegate().getMemberScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.error.ErrorSimpleFunctionDescriptorImpl;
|
import org.jetbrains.kotlin.types.error.ErrorSimpleFunctionDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.utils.Printer;
|
import org.jetbrains.kotlin.utils.Printer;
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ public class ErrorUtils {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ErrorScope implements KtScope {
|
public static class ErrorScope implements MemberScope {
|
||||||
private final String debugMessage;
|
private final String debugMessage;
|
||||||
|
|
||||||
private ErrorScope(@NotNull String debugMessage) {
|
private ErrorScope(@NotNull String debugMessage) {
|
||||||
@@ -215,7 +215,7 @@ public class ErrorUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ThrowingScope implements KtScope {
|
private static class ThrowingScope implements MemberScope {
|
||||||
private final String debugMessage;
|
private final String debugMessage;
|
||||||
|
|
||||||
private ThrowingScope(@NotNull String message) {
|
private ThrowingScope(@NotNull String message) {
|
||||||
@@ -281,7 +281,7 @@ public class ErrorUtils {
|
|||||||
ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.Companion.getEMPTY(), true, SourceElement.NO_SOURCE);
|
ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.Companion.getEMPTY(), true, SourceElement.NO_SOURCE);
|
||||||
errorConstructor.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
errorConstructor.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
||||||
Visibilities.INTERNAL);
|
Visibilities.INTERNAL);
|
||||||
KtScope memberScope = createErrorScope(getName().asString());
|
MemberScope memberScope = createErrorScope(getName().asString());
|
||||||
errorConstructor.setReturnType(
|
errorConstructor.setReturnType(
|
||||||
new ErrorTypeImpl(
|
new ErrorTypeImpl(
|
||||||
createErrorTypeConstructorWithCustomDebugName("<ERROR>", this),
|
createErrorTypeConstructorWithCustomDebugName("<ERROR>", this),
|
||||||
@@ -305,13 +305,13 @@ public class ErrorUtils {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
public MemberScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments) {
|
||||||
return createErrorScope("Error scope for class " + getName() + " with arguments: " + typeArguments);
|
return createErrorScope("Error scope for class " + getName() + " with arguments: " + typeArguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
public MemberScope getMemberScope(@NotNull TypeSubstitution typeSubstitution) {
|
||||||
return createErrorScope("Error scope for class " + getName() + " with arguments: " + typeSubstitution);
|
return createErrorScope("Error scope for class " + getName() + " with arguments: " + typeSubstitution);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -322,12 +322,12 @@ public class ErrorUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KtScope createErrorScope(@NotNull String debugMessage) {
|
public static MemberScope createErrorScope(@NotNull String debugMessage) {
|
||||||
return createErrorScope(debugMessage, false);
|
return createErrorScope(debugMessage, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KtScope createErrorScope(@NotNull String debugMessage, boolean throwExceptions) {
|
public static MemberScope createErrorScope(@NotNull String debugMessage, boolean throwExceptions) {
|
||||||
if (throwExceptions) {
|
if (throwExceptions) {
|
||||||
return new ThrowingScope(debugMessage);
|
return new ThrowingScope(debugMessage);
|
||||||
}
|
}
|
||||||
@@ -490,12 +490,12 @@ public class ErrorUtils {
|
|||||||
|
|
||||||
private static class ErrorTypeImpl implements KotlinType {
|
private static class ErrorTypeImpl implements KotlinType {
|
||||||
private final TypeConstructor constructor;
|
private final TypeConstructor constructor;
|
||||||
private final KtScope memberScope;
|
private final MemberScope memberScope;
|
||||||
private final List<TypeProjection> arguments;
|
private final List<TypeProjection> arguments;
|
||||||
|
|
||||||
private ErrorTypeImpl(
|
private ErrorTypeImpl(
|
||||||
@NotNull TypeConstructor constructor,
|
@NotNull TypeConstructor constructor,
|
||||||
@NotNull KtScope memberScope,
|
@NotNull MemberScope memberScope,
|
||||||
@NotNull List<TypeProjection> arguments
|
@NotNull List<TypeProjection> arguments
|
||||||
) {
|
) {
|
||||||
this.constructor = constructor;
|
this.constructor = constructor;
|
||||||
@@ -503,7 +503,7 @@ public class ErrorUtils {
|
|||||||
this.arguments = arguments;
|
this.arguments = arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ErrorTypeImpl(@NotNull TypeConstructor constructor, @NotNull KtScope memberScope) {
|
private ErrorTypeImpl(@NotNull TypeConstructor constructor, @NotNull MemberScope memberScope) {
|
||||||
this(constructor, memberScope, Collections.<TypeProjection>emptyList());
|
this(constructor, memberScope, Collections.<TypeProjection>emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -532,7 +532,7 @@ public class ErrorUtils {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.ReadOnly;
|
import org.jetbrains.annotations.ReadOnly;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotated;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotated;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -42,7 +42,7 @@ public interface KotlinType extends Annotated {
|
|||||||
boolean isMarkedNullable();
|
boolean isMarkedNullable();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
KtScope getMemberScope();
|
MemberScope getMemberScope();
|
||||||
|
|
||||||
boolean isError();
|
boolean isError();
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.types
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
public open class KotlinTypeImpl
|
public open class KotlinTypeImpl
|
||||||
private constructor(
|
private constructor(
|
||||||
@@ -27,7 +27,7 @@ private constructor(
|
|||||||
private val nullable: Boolean,
|
private val nullable: Boolean,
|
||||||
private val arguments: List<TypeProjection>,
|
private val arguments: List<TypeProjection>,
|
||||||
private val substitution: TypeSubstitution?,
|
private val substitution: TypeSubstitution?,
|
||||||
private val memberScope: KtScope
|
private val memberScope: MemberScope
|
||||||
) : AbstractKotlinType() {
|
) : AbstractKotlinType() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -36,7 +36,7 @@ private constructor(
|
|||||||
constructor: TypeConstructor,
|
constructor: TypeConstructor,
|
||||||
nullable: Boolean,
|
nullable: Boolean,
|
||||||
arguments: List<TypeProjection>,
|
arguments: List<TypeProjection>,
|
||||||
memberScope: KtScope): KotlinTypeImpl
|
memberScope: MemberScope): KotlinTypeImpl
|
||||||
|
|
||||||
= KotlinTypeImpl(annotations, constructor, nullable, arguments, null, memberScope)
|
= KotlinTypeImpl(annotations, constructor, nullable, arguments, null, memberScope)
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ private constructor(
|
|||||||
nullable: Boolean,
|
nullable: Boolean,
|
||||||
arguments: List<TypeProjection>,
|
arguments: List<TypeProjection>,
|
||||||
substitution: TypeSubstitution,
|
substitution: TypeSubstitution,
|
||||||
memberScope: KtScope,
|
memberScope: MemberScope,
|
||||||
capabilities: TypeCapabilities
|
capabilities: TypeCapabilities
|
||||||
): KotlinTypeImpl {
|
): KotlinTypeImpl {
|
||||||
if (capabilities !== TypeCapabilities.NONE) {
|
if (capabilities !== TypeCapabilities.NONE) {
|
||||||
@@ -72,7 +72,7 @@ private constructor(
|
|||||||
nullable: Boolean,
|
nullable: Boolean,
|
||||||
arguments: List<TypeProjection>,
|
arguments: List<TypeProjection>,
|
||||||
substitution: TypeSubstitution?,
|
substitution: TypeSubstitution?,
|
||||||
memberScope: KtScope,
|
memberScope: MemberScope,
|
||||||
private val typeCapabilities: TypeCapabilities
|
private val typeCapabilities: TypeCapabilities
|
||||||
) : KotlinTypeImpl(annotations, constructor, nullable, arguments, substitution, memberScope) {
|
) : KotlinTypeImpl(annotations, constructor, nullable, arguments, substitution, memberScope) {
|
||||||
override fun getCapabilities(): TypeCapabilities = typeCapabilities
|
override fun getCapabilities(): TypeCapabilities = typeCapabilities
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstructor;
|
import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstructor;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -67,7 +67,7 @@ public class TypeUtils {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
throw new IllegalStateException(name);
|
throw new IllegalStateException(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +232,7 @@ public class TypeUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KotlinType makeUnsubstitutedType(ClassDescriptor classDescriptor, KtScope unsubstitutedMemberScope) {
|
public static KotlinType makeUnsubstitutedType(ClassDescriptor classDescriptor, MemberScope unsubstitutedMemberScope) {
|
||||||
if (ErrorUtils.isError(classDescriptor)) {
|
if (ErrorUtils.isError(classDescriptor)) {
|
||||||
return ErrorUtils.createErrorType("Unsubstituted type for " + classDescriptor);
|
return ErrorUtils.createErrorType("Unsubstituted type for " + classDescriptor);
|
||||||
}
|
}
|
||||||
@@ -529,7 +529,7 @@ public class TypeUtils {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public KtScope getMemberScope() {
|
public MemberScope getMemberScope() {
|
||||||
return delegate.getMemberScope();
|
return delegate.getMemberScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorFactory
|
import org.jetbrains.kotlin.resolve.DescriptorFactory
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass
|
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass
|
||||||
import org.jetbrains.kotlin.serialization.Flags
|
import org.jetbrains.kotlin.serialization.Flags
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
@@ -96,7 +96,7 @@ public class DeserializedClassDescriptor(
|
|||||||
|
|
||||||
override fun getAnnotations() = annotations
|
override fun getAnnotations() = annotations
|
||||||
|
|
||||||
override fun getUnsubstitutedMemberScope(): KtScope = memberScope
|
override fun getUnsubstitutedMemberScope(): MemberScope = memberScope
|
||||||
|
|
||||||
override fun getStaticScope() = staticScope
|
override fun getStaticScope() = staticScope
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ public class DeserializedClassDescriptor(
|
|||||||
private inner class DeserializedClassMemberScope : DeserializedMemberScope(c, classProto.functionList, classProto.propertyList) {
|
private inner class DeserializedClassMemberScope : DeserializedMemberScope(c, classProto.functionList, classProto.propertyList) {
|
||||||
private val classDescriptor: DeserializedClassDescriptor get() = this@DeserializedClassDescriptor
|
private val classDescriptor: DeserializedClassDescriptor get() = this@DeserializedClassDescriptor
|
||||||
private val allDescriptors = c.storageManager.createLazyValue {
|
private val allDescriptors = c.storageManager.createLazyValue {
|
||||||
computeDescriptors(DescriptorKindFilter.ALL, KtScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS)
|
computeDescriptors(DescriptorKindFilter.ALL, MemberScope.ALL_NAME_FILTER, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getDescriptors(kindFilter: DescriptorKindFilter,
|
override fun getDescriptors(kindFilter: DescriptorKindFilter,
|
||||||
|
|||||||
+2
-2
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation
|
|||||||
import org.jetbrains.kotlin.incremental.record
|
import org.jetbrains.kotlin.incremental.record
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.receiverType
|
import org.jetbrains.kotlin.serialization.deserialization.receiverType
|
||||||
@@ -34,7 +34,7 @@ public abstract class DeserializedMemberScope protected constructor(
|
|||||||
protected val c: DeserializationContext,
|
protected val c: DeserializationContext,
|
||||||
functionList: Collection<ProtoBuf.Function>,
|
functionList: Collection<ProtoBuf.Function>,
|
||||||
propertyList: Collection<ProtoBuf.Property>
|
propertyList: Collection<ProtoBuf.Property>
|
||||||
) : KtScopeImpl() {
|
) : MemberScopeImpl() {
|
||||||
|
|
||||||
private data class ProtoKey(val name: Name, val isExtension: Boolean)
|
private data class ProtoKey(val name: Name, val isExtension: Boolean)
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
||||||
import kotlin.reflect.KCallable
|
import kotlin.reflect.KCallable
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
@@ -55,9 +55,9 @@ internal class KClassImpl<T : Any>(override val jClass: Class<T>) : KDeclaration
|
|||||||
|
|
||||||
private val classId: ClassId get() = RuntimeTypeMapper.mapJvmClassToKotlinClassId(jClass)
|
private val classId: ClassId get() = RuntimeTypeMapper.mapJvmClassToKotlinClassId(jClass)
|
||||||
|
|
||||||
internal val memberScope: KtScope get() = descriptor.defaultType.memberScope
|
internal val memberScope: MemberScope get() = descriptor.defaultType.memberScope
|
||||||
|
|
||||||
internal val staticScope: KtScope get() = descriptor.staticScope
|
internal val staticScope: MemberScope get() = descriptor.staticScope
|
||||||
|
|
||||||
override val members: Collection<KCallable<*>>
|
override val members: Collection<KCallable<*>>
|
||||||
get() = getMembers(memberScope, declaredOnly = false, nonExtensions = true, extensions = true)
|
get() = getMembers(memberScope, declaredOnly = false, nonExtensions = true, extensions = true)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.load.java.structure.reflect.safeClassLoader
|
|||||||
import org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData
|
import org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
||||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
|
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
|
||||||
@@ -53,7 +53,7 @@ internal abstract class KDeclarationContainerImpl : ClassBasedDeclarationContain
|
|||||||
|
|
||||||
abstract fun getFunctions(name: Name): Collection<FunctionDescriptor>
|
abstract fun getFunctions(name: Name): Collection<FunctionDescriptor>
|
||||||
|
|
||||||
fun getMembers(scope: KtScope, declaredOnly: Boolean, nonExtensions: Boolean, extensions: Boolean): Sequence<KCallable<*>> {
|
fun getMembers(scope: MemberScope, declaredOnly: Boolean, nonExtensions: Boolean, extensions: Boolean): Sequence<KCallable<*>> {
|
||||||
val visitor = object : DeclarationDescriptorVisitorEmptyBodies<KCallable<*>?, Unit>() {
|
val visitor = object : DeclarationDescriptorVisitorEmptyBodies<KCallable<*>?, Unit>() {
|
||||||
private fun skipCallable(descriptor: CallableMemberDescriptor): Boolean {
|
private fun skipCallable(descriptor: CallableMemberDescriptor): Boolean {
|
||||||
if (declaredOnly && !descriptor.getKind().isReal()) return true
|
if (declaredOnly && !descriptor.getKind().isReal()) return true
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
|||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
import org.jetbrains.kotlin.load.java.structure.reflect.classId
|
import org.jetbrains.kotlin.load.java.structure.reflect.classId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import kotlin.jvm.internal.KotlinPackage
|
import kotlin.jvm.internal.KotlinPackage
|
||||||
import kotlin.reflect.KCallable
|
import kotlin.reflect.KCallable
|
||||||
import kotlin.reflect.KPackage
|
import kotlin.reflect.KPackage
|
||||||
@@ -35,7 +35,7 @@ internal class KPackageImpl(override val jClass: Class<*>, val moduleName: Strin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val scope: KtScope get() = descriptor().memberScope
|
internal val scope: MemberScope get() = descriptor().memberScope
|
||||||
|
|
||||||
override val members: Collection<KCallable<*>>
|
override val members: Collection<KCallable<*>>
|
||||||
get() = getMembers(scope, declaredOnly = false, nonExtensions = true, extensions = true).toList()
|
get() = getMembers(scope, declaredOnly = false, nonExtensions = true, extensions = true).toList()
|
||||||
|
|||||||
+2
-2
@@ -47,7 +47,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
|
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
|
||||||
import org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException
|
import org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.utils.sure
|
import org.jetbrains.kotlin.utils.sure
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ public class IDELightClassGenerationSupport(private val project: Project) : Ligh
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getSubPackages(fqn: FqName, scope: GlobalSearchScope): Collection<FqName> {
|
override fun getSubPackages(fqn: FqName, scope: GlobalSearchScope): Collection<FqName> {
|
||||||
return PackageIndexUtil.getSubPackageFqNames(fqn, kotlinSourceAndClassFiles(scope, project), project, KtScope.ALL_NAME_FILTER)
|
return PackageIndexUtil.getSubPackageFqNames(fqn, kotlinSourceAndClassFiles(scope, project), project, MemberScope.ALL_NAME_FILTER)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getPsiClass(classOrObject: KtClassOrObject): PsiClass? {
|
override fun getPsiClass(classOrObject: KtClassOrObject): PsiClass? {
|
||||||
|
|||||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.load.java.structure.impl.*
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
|
|
||||||
private fun PsiElement.getJavaDescriptorResolver(): JavaDescriptorResolver? {
|
private fun PsiElement.getJavaDescriptorResolver(): JavaDescriptorResolver? {
|
||||||
if (!ProjectRootsUtil.isInProjectOrLibraryClassFile(this)) return null
|
if (!ProjectRootsUtil.isInProjectOrLibraryClassFile(this)) return null
|
||||||
@@ -78,7 +78,7 @@ public fun JavaDescriptorResolver.resolveField(field: JavaField): PropertyDescri
|
|||||||
return getContainingScope(field)?.getProperties(field.name, NoLookupLocation.FROM_IDE)?.findByJavaElement(field) as? PropertyDescriptor
|
return getContainingScope(field)?.getProperties(field.name, NoLookupLocation.FROM_IDE)?.findByJavaElement(field) as? PropertyDescriptor
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JavaDescriptorResolver.getContainingScope(member: JavaMember): KtScope? {
|
private fun JavaDescriptorResolver.getContainingScope(member: JavaMember): MemberScope? {
|
||||||
val containingClass = resolveClass(member.getContainingClass())
|
val containingClass = resolveClass(member.getContainingClass())
|
||||||
return if (member.isStatic())
|
return if (member.isStatic())
|
||||||
containingClass?.getStaticScope()
|
containingClass?.getStaticScope()
|
||||||
|
|||||||
+5
-5
@@ -24,8 +24,8 @@ import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils.createErrorType
|
import org.jetbrains.kotlin.types.ErrorUtils.createErrorType
|
||||||
import org.jetbrains.kotlin.types.TypeProjection
|
import org.jetbrains.kotlin.types.TypeProjection
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitution
|
import org.jetbrains.kotlin.types.TypeSubstitution
|
||||||
@@ -35,12 +35,12 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
|
|
||||||
private class PackageFragmentWithMissingDependencies(override val fqName: FqName, moduleDescriptor: ModuleDescriptor) :
|
private class PackageFragmentWithMissingDependencies(override val fqName: FqName, moduleDescriptor: ModuleDescriptor) :
|
||||||
PackageFragmentDescriptorImpl(moduleDescriptor, fqName) {
|
PackageFragmentDescriptorImpl(moduleDescriptor, fqName) {
|
||||||
override fun getMemberScope(): KtScope {
|
override fun getMemberScope(): MemberScope {
|
||||||
return ScopeWithMissingDependencies(fqName, this)
|
return ScopeWithMissingDependencies(fqName, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ScopeWithMissingDependencies(val fqName: FqName, val containing: DeclarationDescriptor) : KtScopeImpl() {
|
private class ScopeWithMissingDependencies(val fqName: FqName, val containing: DeclarationDescriptor) : MemberScopeImpl() {
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor {
|
override fun getContainingDeclaration(): DeclarationDescriptor {
|
||||||
return containing
|
return containing
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ private class MissingDependencyErrorClassDescriptor(
|
|||||||
val emptyConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true, SourceElement.NO_SOURCE)
|
val emptyConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true, SourceElement.NO_SOURCE)
|
||||||
emptyConstructor.initialize(listOf(), listOf(), Visibilities.DEFAULT_VISIBILITY)
|
emptyConstructor.initialize(listOf(), listOf(), Visibilities.DEFAULT_VISIBILITY)
|
||||||
emptyConstructor.setReturnType(createErrorType("<ERROR RETURN TYPE>"))
|
emptyConstructor.setReturnType(createErrorType("<ERROR RETURN TYPE>"))
|
||||||
initialize(KtScope.empty(this), setOf(emptyConstructor), emptyConstructor)
|
initialize(MemberScope.empty(this), setOf(emptyConstructor), emptyConstructor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun substitute(substitutor: TypeSubstitutor) = this
|
override fun substitute(substitutor: TypeSubstitutor) = this
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ private fun resolveParamLink(fromDescriptor: DeclarationDescriptor, qualifiedNam
|
|||||||
return getParamDescriptors(fromDescriptor).filter { it.getName().asString() == name }
|
return getParamDescriptors(fromDescriptor).filter { it.getName().asString() == name }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPackageInnerScope(descriptor: PackageFragmentDescriptor): KtScope {
|
private fun getPackageInnerScope(descriptor: PackageFragmentDescriptor): MemberScope {
|
||||||
return descriptor.getContainingDeclaration().getPackage(descriptor.fqName).memberScope
|
return descriptor.getContainingDeclaration().getPackage(descriptor.fqName).memberScope
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.resolve.TargetPlatform
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
@@ -166,7 +166,7 @@ public class BuiltInsReferenceResolver(val project: Project, val startupManager:
|
|||||||
return url != null && VfsUtilCore.isUnder(url, builtInDirUrls)
|
return url != null && VfsUtilCore.isUnder(url, builtInDirUrls)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getMemberScope(parent: DeclarationDescriptor?): KtScope? = when(parent) {
|
private fun getMemberScope(parent: DeclarationDescriptor?): MemberScope? = when(parent) {
|
||||||
is ClassDescriptor -> parent.getDefaultType().getMemberScope()
|
is ClassDescriptor -> parent.getDefaultType().getMemberScope()
|
||||||
is PackageFragmentDescriptor -> parent.getMemberScope()
|
is PackageFragmentDescriptor -> parent.getMemberScope()
|
||||||
else -> null
|
else -> null
|
||||||
|
|||||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
|||||||
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered
|
import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered
|
||||||
|
|
||||||
class AllClassesCompletion(private val parameters: CompletionParameters,
|
class AllClassesCompletion(private val parameters: CompletionParameters,
|
||||||
@@ -56,7 +56,7 @@ class AllClassesCompletion(private val parameters: CompletionParameters,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun collectClassesFromScope(scope: KtScope, collector: (ClassDescriptor) -> Unit) {
|
private fun collectClassesFromScope(scope: MemberScope, collector: (ClassDescriptor) -> Unit) {
|
||||||
for (descriptor in scope.getDescriptorsFiltered(DescriptorKindFilter.CLASSIFIERS)) {
|
for (descriptor in scope.getDescriptorsFiltered(DescriptorKindFilter.CLASSIFIERS)) {
|
||||||
if (descriptor is ClassDescriptor) {
|
if (descriptor is ClassDescriptor) {
|
||||||
if (kindFilter(descriptor.kind) && prefixMatcher.prefixMatches(descriptor.name.asString())) {
|
if (kindFilter(descriptor.kind) && prefixMatcher.prefixMatches(descriptor.name.asString())) {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ import org.jetbrains.kotlin.resolve.bindingContextUtil.BindingContextUtilsKt;
|
|||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope;
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt;
|
import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt;
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ public abstract class BaseKotlinVariableMacro extends Macro {
|
|||||||
|
|
||||||
private static Collection<DeclarationDescriptor> getAllVariables(LexicalScope scope) {
|
private static Collection<DeclarationDescriptor> getAllVariables(LexicalScope scope) {
|
||||||
Collection<DeclarationDescriptor> result = ContainerUtil.newArrayList();
|
Collection<DeclarationDescriptor> result = ContainerUtil.newArrayList();
|
||||||
result.addAll(ScopeUtilsKt.collectDescriptorsFiltered(scope, DescriptorKindFilter.VARIABLES, KtScope.Companion.getALL_NAME_FILTER()));
|
result.addAll(ScopeUtilsKt.collectDescriptorsFiltered(scope, DescriptorKindFilter.VARIABLES, MemberScope.Companion.getALL_NAME_FILTER()));
|
||||||
for (ReceiverParameterDescriptor implicitReceiver : ScopeUtilsKt.getImplicitReceiversHierarchy(scope)) {
|
for (ReceiverParameterDescriptor implicitReceiver : ScopeUtilsKt.getImplicitReceiversHierarchy(scope)) {
|
||||||
result.addAll(DescriptorUtils.getAllDescriptors(implicitReceiver.getType().getMemberScope()));
|
result.addAll(DescriptorUtils.getAllDescriptors(implicitReceiver.getType().getMemberScope()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import org.jetbrains.kotlin.resolve.ImportPath
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor
|
import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.KtScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered
|
import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||||
@@ -265,7 +265,7 @@ public class ImportInsertHelperImpl(private val project: Project) : ImportInsert
|
|||||||
return ImportDescriptorResult.IMPORT_ADDED
|
return ImportDescriptorResult.IMPORT_ADDED
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getMemberScope(fqName: FqName, moduleDescriptor: ModuleDescriptor): KtScope? {
|
private fun getMemberScope(fqName: FqName, moduleDescriptor: ModuleDescriptor): MemberScope? {
|
||||||
val packageView = moduleDescriptor.getPackage(fqName)
|
val packageView = moduleDescriptor.getPackage(fqName)
|
||||||
if (!packageView.isEmpty()) {
|
if (!packageView.isEmpty()) {
|
||||||
return packageView.memberScope
|
return packageView.memberScope
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user