Renamed methods in MemberScope from getSmth to getContributedSmth
This commit is contained in:
@@ -37,16 +37,16 @@ class AllUnderImportsScope(descriptor: DeclarationDescriptor) : BaseImportingSco
|
||||
}
|
||||
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean)
|
||||
= scopes.flatMap { it.getDescriptors(kindFilter, nameFilter) }
|
||||
= scopes.flatMap { it.getContributedDescriptors(kindFilter, nameFilter) }
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation)
|
||||
= scopes.asSequence().map { it.getClassifier(name, location) }.filterNotNull().singleOrNull()
|
||||
= scopes.asSequence().map { it.getContributedClassifier(name, location) }.filterNotNull().singleOrNull()
|
||||
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation)
|
||||
= scopes.flatMap { it.getProperties(name, location) }
|
||||
= scopes.flatMap { it.getContributedVariables(name, location) }
|
||||
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation)
|
||||
= scopes.flatMap { it.getFunctions(name, location) }
|
||||
= scopes.flatMap { it.getContributedFunctions(name, location) }
|
||||
|
||||
override fun printStructure(p: Printer) {
|
||||
p.println(javaClass.simpleName)
|
||||
|
||||
@@ -53,7 +53,7 @@ public class DeclarationResolver(
|
||||
public fun checkRedeclarations(c: TopDownAnalysisContext) {
|
||||
for (classDescriptor in c.getDeclaredClasses().values()) {
|
||||
val descriptorMap = HashMultimap.create<Name, DeclarationDescriptor>()
|
||||
for (desc in classDescriptor.getUnsubstitutedMemberScope().getDescriptors()) {
|
||||
for (desc in classDescriptor.getUnsubstitutedMemberScope().getContributedDescriptors()) {
|
||||
if (desc is ClassDescriptor || desc is PropertyDescriptor) {
|
||||
descriptorMap.put(desc.getName(), desc)
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : Ab
|
||||
|
||||
override fun getPackage(name: Name): PackageViewDescriptor? = null
|
||||
|
||||
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
val modifiedFilter = kindFilter.withoutKinds(DescriptorKindFilter.PACKAGES_MASK)
|
||||
if (modifiedFilter.kindMask == 0) return listOf()
|
||||
return workerScope.getDescriptors(modifiedFilter, nameFilter).filter { it !is PackageViewDescriptor }
|
||||
return workerScope.getContributedDescriptors(modifiedFilter, nameFilter).filter { it !is PackageViewDescriptor }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -88,12 +88,12 @@ object OverloadUtil {
|
||||
|
||||
collectModulePackageMembersWithSameName(packageMembersByName, c.functions.values) {
|
||||
scope, name ->
|
||||
scope.getFunctions(name, NoLookupLocation.WHEN_CHECK_REDECLARATIONS)
|
||||
scope.getContributedFunctions(name, NoLookupLocation.WHEN_CHECK_REDECLARATIONS)
|
||||
}
|
||||
|
||||
collectModulePackageMembersWithSameName(packageMembersByName, c.properties.values) {
|
||||
scope, name ->
|
||||
scope.getProperties(name, NoLookupLocation.WHEN_CHECK_REDECLARATIONS).filterIsInstance<CallableMemberDescriptor>()
|
||||
scope.getContributedVariables(name, NoLookupLocation.WHEN_CHECK_REDECLARATIONS).filterIsInstance<CallableMemberDescriptor>()
|
||||
}
|
||||
|
||||
// TODO handle constructor redeclarations in modules. See also: https://youtrack.jetbrains.com/issue/KT-3632
|
||||
|
||||
@@ -794,9 +794,9 @@ public class OverrideResolver {
|
||||
) {
|
||||
for (KotlinType supertype : declaringClass.getTypeConstructor().getSupertypes()) {
|
||||
Set<CallableMemberDescriptor> all = Sets.newLinkedHashSet();
|
||||
all.addAll(supertype.getMemberScope().getFunctions(declared.getName(), NoLookupLocation.WHEN_CHECK_OVERRIDES));
|
||||
all.addAll(supertype.getMemberScope().getContributedFunctions(declared.getName(), NoLookupLocation.WHEN_CHECK_OVERRIDES));
|
||||
//noinspection unchecked
|
||||
all.addAll((Collection) supertype.getMemberScope().getProperties(declared.getName(), NoLookupLocation.WHEN_CHECK_OVERRIDES));
|
||||
all.addAll((Collection) supertype.getMemberScope().getContributedVariables(declared.getName(), NoLookupLocation.WHEN_CHECK_OVERRIDES));
|
||||
for (CallableMemberDescriptor fromSuper : all) {
|
||||
if (OverridingUtil.DEFAULT.isOverridableBy(fromSuper, declared).getResult() == OVERRIDABLE) {
|
||||
if (Visibilities.isVisible(ReceiverValue.IRRELEVANT_RECEIVER, fromSuper, declared)) {
|
||||
|
||||
@@ -80,8 +80,8 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
|
||||
|
||||
val lastPart = qualifierPartList.last()
|
||||
val classifier = when (qualifier) {
|
||||
is PackageViewDescriptor -> qualifier.memberScope.getClassifier(lastPart.name, lastPart.location)
|
||||
is ClassDescriptor -> qualifier.unsubstitutedInnerClassesScope.getClassifier(lastPart.name, lastPart.location)
|
||||
is PackageViewDescriptor -> qualifier.memberScope.getContributedClassifier(lastPart.name, lastPart.location)
|
||||
is ClassDescriptor -> qualifier.unsubstitutedInnerClassesScope.getContributedClassifier(lastPart.name, lastPart.location)
|
||||
else -> null
|
||||
}
|
||||
storeResult(trace, lastPart.expression, classifier, scope.ownerDescriptor, inImport = false, isQualifier = false)
|
||||
@@ -183,24 +183,24 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
|
||||
when (packageOrClassDescriptor) {
|
||||
is PackageViewDescriptor -> {
|
||||
val packageScope = packageOrClassDescriptor.memberScope
|
||||
descriptors.addIfNotNull(packageScope.getClassifier(lastName, location))
|
||||
descriptors.addAll(packageScope.getProperties(lastName, location))
|
||||
descriptors.addAll(packageScope.getFunctions(lastName, location))
|
||||
descriptors.addIfNotNull(packageScope.getContributedClassifier(lastName, location))
|
||||
descriptors.addAll(packageScope.getContributedVariables(lastName, location))
|
||||
descriptors.addAll(packageScope.getContributedFunctions(lastName, location))
|
||||
}
|
||||
|
||||
is ClassDescriptor -> {
|
||||
descriptors.addIfNotNull(
|
||||
packageOrClassDescriptor.unsubstitutedInnerClassesScope.getClassifier(lastName, location)
|
||||
packageOrClassDescriptor.unsubstitutedInnerClassesScope.getContributedClassifier(lastName, location)
|
||||
)
|
||||
val staticClassScope = packageOrClassDescriptor.staticScope
|
||||
descriptors.addAll(staticClassScope.getFunctions(lastName, location))
|
||||
descriptors.addAll(staticClassScope.getProperties(lastName, location))
|
||||
descriptors.addAll(staticClassScope.getContributedFunctions(lastName, location))
|
||||
descriptors.addAll(staticClassScope.getContributedVariables(lastName, location))
|
||||
|
||||
if (packageOrClassDescriptor.kind == ClassKind.OBJECT) {
|
||||
descriptors.addAll(packageOrClassDescriptor.unsubstitutedMemberScope.getFunctions(lastName, location).map {
|
||||
descriptors.addAll(packageOrClassDescriptor.unsubstitutedMemberScope.getContributedFunctions(lastName, location).map {
|
||||
FunctionImportedFromObject(it)
|
||||
})
|
||||
val properties = packageOrClassDescriptor.unsubstitutedMemberScope.getProperties(lastName, location)
|
||||
val properties = packageOrClassDescriptor.unsubstitutedMemberScope.getContributedVariables(lastName, location)
|
||||
.filterIsInstance<PropertyDescriptor>().map { PropertyImportedFromObject(it) }
|
||||
descriptors.addAll(properties)
|
||||
}
|
||||
@@ -230,8 +230,8 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
|
||||
|
||||
is ClassDescriptor -> {
|
||||
val memberScope = packageOrClassDescriptor.unsubstitutedMemberScope
|
||||
descriptors.addAll(memberScope.getFunctions(lastName, lastPart.location))
|
||||
descriptors.addAll(memberScope.getProperties(lastName, lastPart.location))
|
||||
descriptors.addAll(memberScope.getContributedFunctions(lastName, lastPart.location))
|
||||
descriptors.addAll(memberScope.getContributedVariables(lastName, lastPart.location))
|
||||
if (descriptors.isNotEmpty()) {
|
||||
trace.report(Errors.CANNOT_BE_IMPORTED.on(lastPart.expression, lastName))
|
||||
}
|
||||
@@ -304,7 +304,7 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
|
||||
val nextDescriptor = when (descriptor) {
|
||||
// TODO: support inner classes which captured type parameter from outer class
|
||||
is ClassDescriptor ->
|
||||
descriptor.unsubstitutedInnerClassesScope.getClassifier(qualifierPart.name, qualifierPart.location)
|
||||
descriptor.unsubstitutedInnerClassesScope.getContributedClassifier(qualifierPart.name, qualifierPart.location)
|
||||
is PackageViewDescriptor -> {
|
||||
val packageView = if (qualifierPart.typeArguments == null) {
|
||||
moduleDescriptor.getPackage(descriptor.fqName.child(qualifierPart.name))
|
||||
@@ -314,7 +314,7 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
|
||||
if (packageView != null && !packageView.isEmpty()) {
|
||||
packageView
|
||||
} else {
|
||||
descriptor.memberScope.getClassifier(qualifierPart.name, qualifierPart.location)
|
||||
descriptor.memberScope.getContributedClassifier(qualifierPart.name, qualifierPart.location)
|
||||
}
|
||||
}
|
||||
else -> null
|
||||
|
||||
+2
-2
@@ -105,7 +105,7 @@ private object FunctionCollector : CallableDescriptorCollector<FunctionDescripto
|
||||
|
||||
override fun getMembersByName(receiver: KotlinType, name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
val receiverScope = receiver.memberScope
|
||||
val members = receiverScope.getFunctions(name, location)
|
||||
val members = receiverScope.getContributedFunctions(name, location)
|
||||
val constructors = getConstructors(receiverScope.memberScopeAsImportingScope(), name, location, { !isStaticNestedClass(it) })
|
||||
|
||||
if (name == OperatorNameConventions.INVOKE && KotlinBuiltIns.isExtensionFunctionType(receiver)) {
|
||||
@@ -194,7 +194,7 @@ private object VariableCollector : CallableDescriptorCollector<VariableDescripto
|
||||
|
||||
override fun getMembersByName(receiver: KotlinType, name: Name, location: LookupLocation): Collection<VariableDescriptor> {
|
||||
val memberScope = receiver.memberScope
|
||||
val properties = memberScope.getProperties(name, location)
|
||||
val properties = memberScope.getContributedVariables(name, location)
|
||||
val fakeDescriptor = getFakeDescriptorForObject(memberScope.memberScopeAsImportingScope(), name, location)
|
||||
return if (fakeDescriptor != null) properties + fakeDescriptor else properties
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class DynamicCallableDescriptors(private val builtIns: KotlinBuiltIns) {
|
||||
p.println(javaClass.getSimpleName(), ": dynamic candidates for " + call)
|
||||
}
|
||||
|
||||
override fun getFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
if (isAugmentedAssignmentConvention(name)) return listOf()
|
||||
if (call.getCallType() == Call.CallType.INVOKE
|
||||
&& call.getValueArgumentList() == null && call.getFunctionLiteralArguments().isEmpty()) {
|
||||
@@ -78,7 +78,7 @@ class DynamicCallableDescriptors(private val builtIns: KotlinBuiltIns) {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getProperties(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
return if (call.getValueArgumentList() == null && call.getValueArguments().isEmpty()) {
|
||||
listOf(createDynamicProperty(owner, name, call))
|
||||
}
|
||||
|
||||
+4
-4
@@ -72,7 +72,7 @@ public class LazyDeclarationResolver {
|
||||
// class A {} class A { fun foo(): A<completion here>}
|
||||
// and if we find the class by name only, we may b-not get the right one.
|
||||
// This call is only needed to make sure the classes are written to trace
|
||||
ClassifierDescriptor scopeDescriptor = scope.getClassifier(classOrObject.getNameAsSafeName(), location);
|
||||
ClassifierDescriptor scopeDescriptor = scope.getContributedClassifier(classOrObject.getNameAsSafeName(), location);
|
||||
DeclarationDescriptor descriptor = getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, classOrObject);
|
||||
|
||||
if (descriptor == null) {
|
||||
@@ -148,7 +148,7 @@ public class LazyDeclarationResolver {
|
||||
public DeclarationDescriptor visitNamedFunction(@NotNull KtNamedFunction function, Void data) {
|
||||
LookupLocation location = lookupLocationFor(function, function.isTopLevel());
|
||||
MemberScope scopeForDeclaration = getMemberScopeDeclaredIn(function, location);
|
||||
scopeForDeclaration.getFunctions(function.getNameAsSafeName(), location);
|
||||
scopeForDeclaration.getContributedFunctions(function.getNameAsSafeName(), location);
|
||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function);
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ public class LazyDeclarationResolver {
|
||||
// This is a primary constructor parameter
|
||||
ClassDescriptor classDescriptor = getClassDescriptor(jetClass, lookupLocationFor(jetClass, false));
|
||||
if (parameter.hasValOrVar()) {
|
||||
classDescriptor.getDefaultType().getMemberScope().getProperties(parameter.getNameAsSafeName(), lookupLocationFor(parameter, false));
|
||||
classDescriptor.getDefaultType().getMemberScope().getContributedVariables(parameter.getNameAsSafeName(), lookupLocationFor(parameter, false));
|
||||
return getBindingContext().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter);
|
||||
}
|
||||
else {
|
||||
@@ -204,7 +204,7 @@ public class LazyDeclarationResolver {
|
||||
public DeclarationDescriptor visitProperty(@NotNull KtProperty property, Void data) {
|
||||
LookupLocation location = lookupLocationFor(property, property.isTopLevel());
|
||||
MemberScope scopeForDeclaration = getMemberScopeDeclaredIn(property, location);
|
||||
scopeForDeclaration.getProperties(property.getNameAsSafeName(), location);
|
||||
scopeForDeclaration.getContributedVariables(property.getNameAsSafeName(), location);
|
||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property);
|
||||
}
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext {
|
||||
public ClassDescriptor getClassDescriptorForScript(@NotNull KtScript script) {
|
||||
MemberScope memberScope = lazyDeclarationResolver.getMemberScopeDeclaredIn(script, NoLookupLocation.FOR_SCRIPT);
|
||||
FqName fqName = ScriptNameUtil.classNameForScript(script);
|
||||
ClassifierDescriptor classifier = memberScope.getClassifier(fqName.shortName(), NoLookupLocation.FOR_SCRIPT);
|
||||
ClassifierDescriptor classifier = memberScope.getContributedClassifier(fqName.shortName(), NoLookupLocation.FOR_SCRIPT);
|
||||
assert classifier != null : "No descriptor for " + fqName + " in file " + script.getContainingFile();
|
||||
return (ClassDescriptor) classifier;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class ResolveSessionUtils {
|
||||
|
||||
MemberScope scope = outerScope;
|
||||
for (Name name : path.pathSegments()) {
|
||||
ClassifierDescriptor classifier = scope.getClassifier(name, NoLookupLocation.WHEN_FIND_BY_FQNAME);
|
||||
ClassifierDescriptor classifier = scope.getContributedClassifier(name, NoLookupLocation.WHEN_FIND_BY_FQNAME);
|
||||
if (!(classifier instanceof ClassDescriptor)) return null;
|
||||
scope = ((ClassDescriptor) classifier).getUnsubstitutedInnerClassesScope();
|
||||
}
|
||||
|
||||
+6
-6
@@ -61,12 +61,12 @@ protected constructor(
|
||||
|
||||
override fun getContainingDeclaration() = thisDescriptor
|
||||
|
||||
override fun getClassifier(name: Name, location: LookupLocation): ClassDescriptor? {
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassDescriptor? {
|
||||
recordLookup(name, location)
|
||||
return classDescriptors(name).firstOrNull()
|
||||
}
|
||||
|
||||
override fun getFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
recordLookup(name, location)
|
||||
return functionDescriptors(name)
|
||||
}
|
||||
@@ -94,7 +94,7 @@ protected constructor(
|
||||
|
||||
protected abstract fun getNonDeclaredFunctions(name: Name, result: MutableSet<FunctionDescriptor>)
|
||||
|
||||
override fun getProperties(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
recordLookup(name, location)
|
||||
return propertyDescriptors(name)
|
||||
}
|
||||
@@ -138,19 +138,19 @@ protected constructor(
|
||||
else if (declaration is KtFunction) {
|
||||
val name = declaration.nameAsSafeName
|
||||
if (nameFilter(name)) {
|
||||
result.addAll(getFunctions(name, location))
|
||||
result.addAll(getContributedFunctions(name, location))
|
||||
}
|
||||
}
|
||||
else if (declaration is KtProperty) {
|
||||
val name = declaration.nameAsSafeName
|
||||
if (nameFilter(name)) {
|
||||
result.addAll(getProperties(name, location))
|
||||
result.addAll(getContributedVariables(name, location))
|
||||
}
|
||||
}
|
||||
else if (declaration is KtParameter) {
|
||||
val name = declaration.nameAsSafeName
|
||||
if (nameFilter(name)) {
|
||||
result.addAll(getProperties(name, location))
|
||||
result.addAll(getContributedVariables(name, location))
|
||||
}
|
||||
}
|
||||
else if (declaration is KtScript) {
|
||||
|
||||
+1
-1
@@ -361,7 +361,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
}
|
||||
Name name = ((JetClassOrObjectInfo) companionObjectInfo).getName();
|
||||
assert name != null;
|
||||
getUnsubstitutedMemberScope().getClassifier(name, NoLookupLocation.WHEN_GET_COMPANION_OBJECT);
|
||||
getUnsubstitutedMemberScope().getContributedClassifier(name, NoLookupLocation.WHEN_GET_COMPANION_OBJECT);
|
||||
ClassDescriptor companionObjectDescriptor = c.getTrace().get(BindingContext.CLASS, companionObject);
|
||||
if (companionObjectDescriptor instanceof LazyClassDescriptor) {
|
||||
assert DescriptorUtils.isCompanionObject(companionObjectDescriptor) : "Not a companion object: " + companionObjectDescriptor;
|
||||
|
||||
+17
-17
@@ -57,8 +57,8 @@ public open class LazyClassMemberScope(
|
||||
computeExtraDescriptors(NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
}
|
||||
|
||||
override fun getDescriptors(kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
val result = LinkedHashSet(descriptorsFromDeclaredElements())
|
||||
result.addAll(extraDescriptors())
|
||||
return result
|
||||
@@ -67,12 +67,12 @@ public open class LazyClassMemberScope(
|
||||
protected open fun computeExtraDescriptors(location: LookupLocation): Collection<DeclarationDescriptor> {
|
||||
val result = ArrayList<DeclarationDescriptor>()
|
||||
for (supertype in thisDescriptor.typeConstructor.supertypes) {
|
||||
for (descriptor in supertype.memberScope.getDescriptors()) {
|
||||
for (descriptor in supertype.memberScope.getContributedDescriptors()) {
|
||||
if (descriptor is FunctionDescriptor) {
|
||||
result.addAll(getFunctions(descriptor.name, location))
|
||||
result.addAll(getContributedFunctions(descriptor.name, location))
|
||||
}
|
||||
else if (descriptor is PropertyDescriptor) {
|
||||
result.addAll(getProperties(descriptor.name, location))
|
||||
result.addAll(getContributedVariables(descriptor.name, location))
|
||||
}
|
||||
// Nothing else is inherited
|
||||
}
|
||||
@@ -115,9 +115,9 @@ public open class LazyClassMemberScope(
|
||||
OverrideResolver.resolveUnknownVisibilities(result, trace)
|
||||
}
|
||||
|
||||
override fun getFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation): Collection<FunctionDescriptor> {
|
||||
// TODO: this should be handled by lazy function descriptors
|
||||
val functions = super.getFunctions(name, location)
|
||||
val functions = super.getContributedFunctions(name, location)
|
||||
resolveUnknownVisibilitiesForMembers(functions)
|
||||
return functions
|
||||
}
|
||||
@@ -127,7 +127,7 @@ public open class LazyClassMemberScope(
|
||||
|
||||
val fromSupertypes = Lists.newArrayList<FunctionDescriptor>()
|
||||
for (supertype in thisDescriptor.typeConstructor.supertypes) {
|
||||
fromSupertypes.addAll(supertype.memberScope.getFunctions(name, location))
|
||||
fromSupertypes.addAll(supertype.memberScope.getContributedFunctions(name, location))
|
||||
}
|
||||
result.addAll(generateDelegatingDescriptors(name, EXTRACT_FUNCTIONS, result))
|
||||
generateDataClassMethods(result, name, location)
|
||||
@@ -149,7 +149,7 @@ public open class LazyClassMemberScope(
|
||||
if (parameter.getType().isError()) continue
|
||||
if (!primaryConstructorParameters.get(parameter.index).hasValOrVar()) continue
|
||||
|
||||
val properties = getProperties(parameter.name, location)
|
||||
val properties = getContributedVariables(parameter.name, location)
|
||||
if (properties.isEmpty()) continue
|
||||
|
||||
val property = properties.iterator().next()
|
||||
@@ -167,7 +167,7 @@ public open class LazyClassMemberScope(
|
||||
if (name == DescriptorResolver.COPY_METHOD_NAME) {
|
||||
for (parameter in constructor.getValueParameters()) {
|
||||
// force properties resolution to fill BindingContext.VALUE_PARAMETER_AS_PROPERTY slice
|
||||
getProperties(parameter.name, location)
|
||||
getContributedVariables(parameter.name, location)
|
||||
}
|
||||
|
||||
val copyFunctionDescriptor = DescriptorResolver.createCopyFunctionDescriptor(constructor.getValueParameters(), thisDescriptor, trace)
|
||||
@@ -175,9 +175,9 @@ public open class LazyClassMemberScope(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProperties(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> {
|
||||
// TODO: this should be handled by lazy property descriptors
|
||||
val properties = super.getProperties(name, location)
|
||||
val properties = super.getContributedVariables(name, location)
|
||||
resolveUnknownVisibilitiesForMembers(properties as Collection<CallableMemberDescriptor>)
|
||||
return properties
|
||||
}
|
||||
@@ -197,7 +197,7 @@ public open class LazyClassMemberScope(
|
||||
// Members from supertypes
|
||||
val fromSupertypes = ArrayList<PropertyDescriptor>()
|
||||
for (supertype in thisDescriptor.typeConstructor.supertypes) {
|
||||
fromSupertypes.addAll(supertype.memberScope.getProperties(name, NoLookupLocation.FOR_ALREADY_TRACKED))
|
||||
fromSupertypes.addAll(supertype.memberScope.getContributedVariables(name, NoLookupLocation.FOR_ALREADY_TRACKED))
|
||||
}
|
||||
result.addAll(generateDelegatingDescriptors(name, EXTRACT_PROPERTIES, result))
|
||||
generateFakeOverrides(name, fromSupertypes, result, javaClass<PropertyDescriptor>())
|
||||
@@ -249,14 +249,14 @@ public open class LazyClassMemberScope(
|
||||
var n = 1
|
||||
while (true) {
|
||||
val componentName = createComponentName(n)
|
||||
val functions = getFunctions(componentName, location)
|
||||
val functions = getContributedFunctions(componentName, location)
|
||||
if (functions.isEmpty()) break
|
||||
|
||||
result.addAll(functions)
|
||||
|
||||
n++
|
||||
}
|
||||
result.addAll(getFunctions(Name.identifier("copy"), location))
|
||||
result.addAll(getContributedFunctions(Name.identifier("copy"), location))
|
||||
}
|
||||
|
||||
override fun getPackage(name: Name): PackageViewDescriptor? = null
|
||||
@@ -315,13 +315,13 @@ public open class LazyClassMemberScope(
|
||||
companion object {
|
||||
private val EXTRACT_FUNCTIONS: MemberExtractor<FunctionDescriptor> = object : MemberExtractor<FunctionDescriptor> {
|
||||
override fun extract(extractFrom: KotlinType, name: Name): Collection<FunctionDescriptor> {
|
||||
return extractFrom.memberScope.getFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
return extractFrom.memberScope.getContributedFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
}
|
||||
}
|
||||
|
||||
private val EXTRACT_PROPERTIES: MemberExtractor<PropertyDescriptor> = object : MemberExtractor<PropertyDescriptor> {
|
||||
override fun extract(extractFrom: KotlinType, name: Name): Collection<PropertyDescriptor> {
|
||||
return extractFrom.memberScope.getProperties(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
return extractFrom.memberScope.getContributedVariables(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class LazyPackageMemberScope(
|
||||
thisPackage: PackageFragmentDescriptor)
|
||||
: AbstractLazyMemberScope<PackageFragmentDescriptor, PackageMemberDeclarationProvider>(resolveSession, declarationProvider, thisPackage, resolveSession.trace) {
|
||||
|
||||
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
return computeDescriptorsFromDeclaredElements(kindFilter, nameFilter, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -44,11 +44,11 @@ public class LazyScriptClassMemberScope protected constructor(
|
||||
|
||||
override fun computeExtraDescriptors(location: LookupLocation): Collection<DeclarationDescriptor> {
|
||||
return (super.computeExtraDescriptors(location)
|
||||
+ getProperties(Name.identifier(ScriptDescriptor.LAST_EXPRESSION_VALUE_FIELD_NAME), location)
|
||||
+ getContributedVariables(Name.identifier(ScriptDescriptor.LAST_EXPRESSION_VALUE_FIELD_NAME), location)
|
||||
+ getPropertiesForScriptParameters()).toReadOnlyList()
|
||||
}
|
||||
|
||||
private fun getPropertiesForScriptParameters() = getPrimaryConstructor()!!.valueParameters.flatMap { getProperties(it.name, NoLookupLocation.FOR_SCRIPT) }
|
||||
private fun getPropertiesForScriptParameters() = getPrimaryConstructor()!!.valueParameters.flatMap { getContributedVariables(it.name, NoLookupLocation.FOR_SCRIPT) }
|
||||
|
||||
override fun getNonDeclaredProperties(name: Name, result: MutableSet<PropertyDescriptor>) {
|
||||
super.getNonDeclaredProperties(name, result)
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.utils.Printer
|
||||
|
||||
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 getContributedFunctions(name: Name, location: LookupLocation) = workerScope.getContributedFunctions(name, location).filter(predicate)
|
||||
|
||||
override fun getContainingDeclaration() = workerScope.getContainingDeclaration()
|
||||
|
||||
@@ -32,12 +32,12 @@ public class FilteringScope(private val workerScope: MemberScope, private val pr
|
||||
|
||||
override fun getPackage(name: Name) = filterDescriptor(workerScope.getPackage(name))
|
||||
|
||||
override fun getClassifier(name: Name, location: LookupLocation) = filterDescriptor(workerScope.getClassifier(name, location))
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = filterDescriptor(workerScope.getContributedClassifier(name, location))
|
||||
|
||||
override fun getProperties(name: Name, location: LookupLocation) = workerScope.getProperties(name, location).filter(predicate)
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation) = workerScope.getContributedVariables(name, location).filter(predicate)
|
||||
|
||||
override fun getDescriptors(kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean) = workerScope.getDescriptors(kindFilter, nameFilter).filter(predicate)
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean) = workerScope.getContributedDescriptors(kindFilter, nameFilter).filter(predicate)
|
||||
|
||||
override fun printScopeStructure(p: Printer) {
|
||||
p.println(javaClass.getSimpleName(), " {")
|
||||
|
||||
@@ -39,13 +39,13 @@ public class LexicalChainedScope @JvmOverloads constructor(
|
||||
private val scopeChain = memberScopes.clone()
|
||||
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean)
|
||||
= getFromAllScopes(scopeChain) { it.getDescriptors() }
|
||||
= getFromAllScopes(scopeChain) { it.getContributedDescriptors() }
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = getFirstMatch(scopeChain) { it.getClassifier(name, location) }
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = getFirstMatch(scopeChain) { it.getContributedClassifier(name, location) }
|
||||
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation) = getFromAllScopes(scopeChain) { it.getProperties(name, location) }
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation) = getFromAllScopes(scopeChain) { it.getContributedVariables(name, location) }
|
||||
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation) = getFromAllScopes(scopeChain) { it.getFunctions(name, location) }
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation) = getFromAllScopes(scopeChain) { it.getContributedFunctions(name, location) }
|
||||
|
||||
override fun toString(): String = debugName
|
||||
|
||||
|
||||
@@ -134,13 +134,13 @@ private class MemberScopeToImportingScopeAdapter(override val parent: ImportingS
|
||||
= emptyList<FunctionDescriptor>()
|
||||
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean)
|
||||
= memberScope.getDescriptors(kindFilter, nameFilter)
|
||||
= memberScope.getContributedDescriptors(kindFilter, nameFilter)
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = memberScope.getClassifier(name, location)
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = memberScope.getContributedClassifier(name, location)
|
||||
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation) = memberScope.getProperties(name, location)
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation) = memberScope.getContributedVariables(name, location)
|
||||
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation) = memberScope.getFunctions(name, location)
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation) = memberScope.getContributedFunctions(name, location)
|
||||
|
||||
override fun equals(other: Any?) = other is MemberScopeToImportingScopeAdapter && other.memberScope == memberScope
|
||||
|
||||
|
||||
+2
-2
@@ -135,10 +135,10 @@ private inline fun resolveSupertypesByMembers(
|
||||
}
|
||||
|
||||
private fun getFunctionMembers(type: KotlinType, name: Name, location: LookupLocation): Collection<MemberDescriptor> =
|
||||
type.memberScope.getFunctions(name, location)
|
||||
type.memberScope.getContributedFunctions(name, location)
|
||||
|
||||
private fun getPropertyMembers(type: KotlinType, name: Name, location: LookupLocation): Collection<MemberDescriptor> =
|
||||
type.memberScope.getProperties(name, location).filterIsInstanceTo(SmartList<MemberDescriptor>())
|
||||
type.memberScope.getContributedVariables(name, location).filterIsInstanceTo(SmartList<MemberDescriptor>())
|
||||
|
||||
private fun isConcreteMember(supertype: KotlinType, memberDescriptor: MemberDescriptor): Boolean {
|
||||
// "Concrete member" is a function or a property that is not abstract,
|
||||
|
||||
Reference in New Issue
Block a user