Descriptor kind filter replaced with bit mask

This commit is contained in:
Valentin Kipyatkov
2014-11-02 11:18:57 +03:00
parent 43df891515
commit 6f2da4930a
34 changed files with 90 additions and 108 deletions
@@ -64,7 +64,7 @@ public object TipsManager{
if (qualifier != null) {
//TODO: filter out extensions!
// It's impossible to add extension function for package or class (if it's class object, expression type is not null)
qualifier.scope.getDescriptors(JetScope.DescriptorKind.NON_EXTENSIONS, nameFilter).filterTo(descriptors, ::filterIfInfix)
qualifier.scope.getDescriptors(JetScope.NON_EXTENSIONS_MASK, nameFilter).filterTo(descriptors, ::filterIfInfix)
}
val expressionType = context[BindingContext.EXPRESSION_TYPE, receiverExpression]
@@ -87,7 +87,7 @@ public object TipsManager{
}
if (parent is JetImportDirective || parent is JetPackageDirective) {
return excludeNonPackageDescriptors(resolutionScope.getDescriptors({ it == JetScope.DescriptorKind.PACKAGE }, nameFilter))
return excludeNonPackageDescriptors(resolutionScope.getDescriptors(JetScope.PACKAGE, nameFilter))
}
else {
val descriptorsSet = HashSet<DeclarationDescriptor>()
@@ -96,7 +96,7 @@ public object TipsManager{
receiverDescriptor.getType().getMemberScope().getDescriptors().filterTo(descriptorsSet) { !it.isExtension }
}
descriptorsSet.addAll(resolutionScope.getDescriptors({ true }, nameFilter))
descriptorsSet.addAll(resolutionScope.getDescriptors(JetScope.ALL_KINDS_MASK, nameFilter))
descriptorsSet.excludeNotCallableExtensions(resolutionScope, context, context.getDataFlowInfo(expression))
@@ -108,7 +108,7 @@ public object TipsManager{
context: BindingContext,
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
val resolutionScope = context[BindingContext.RESOLUTION_SCOPE, expression] ?: return listOf()
return excludeNonPackageDescriptors(resolutionScope.getDescriptors({ it == JetScope.DescriptorKind.PACKAGE }, nameFilter))
return excludeNonPackageDescriptors(resolutionScope.getDescriptors(JetScope.PACKAGE, nameFilter))
}
public fun excludeNotCallableExtensions(descriptors: Collection<DeclarationDescriptor>,
@@ -75,7 +75,7 @@ public abstract class BaseJetVariableMacro extends Macro {
new InjectorForMacros(project, resolveSession.getModuleDescriptor()).getExpressionTypingComponents();
List<VariableDescriptor> filteredDescriptors = new ArrayList<VariableDescriptor>();
for (DeclarationDescriptor declarationDescriptor : scope.getDescriptors(JetScope.DescriptorKind.VARIABLES_AND_PROPERTIES, JetScope.ALL_NAME_FILTER)) {
for (DeclarationDescriptor declarationDescriptor : scope.getDescriptors(JetScope.VARIABLES_AND_PROPERTIES_MASK, JetScope.ALL_NAME_FILTER)) {
if (declarationDescriptor instanceof VariableDescriptor) {
VariableDescriptor variableDescriptor = (VariableDescriptor) declarationDescriptor;
if (isSuitable(variableDescriptor, scope, project, components)) {
@@ -96,7 +96,7 @@ public class JetAnonymousSuperMacro extends Macro {
List<PsiNamedElement> result = new ArrayList<PsiNamedElement>();
for (DeclarationDescriptor descriptor : scope.getDescriptors(JetScope.DescriptorKind.CLASSIFIERS, JetScope.ALL_NAME_FILTER)) {
for (DeclarationDescriptor descriptor : scope.getDescriptors(JetScope.TYPE, JetScope.ALL_NAME_FILTER)) {
if (!(descriptor instanceof ClassDescriptor)) continue;
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
if (!classDescriptor.getModality().isOverridable()) continue;