DescriptorMatcher

This commit is contained in:
Stepan Koltsov
2012-06-16 06:44:15 +04:00
parent 7116beb95a
commit 3a9f6c0928
31 changed files with 360 additions and 83 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.DescriptorPredicate;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ExtensionReceiver;
import org.jetbrains.jet.lang.types.ErrorUtils;
@@ -98,13 +99,13 @@ public class NamespaceComparator {
sb.append("namespace " + nsa.getName() + "\n\n");
Assert.assertTrue(!nsa.getMemberScope().getAllDescriptors().isEmpty());
Assert.assertTrue(!nsa.getMemberScope().getAllDescriptors(DescriptorPredicate.all()).isEmpty());
Set<Name> classifierNames = new HashSet<Name>();
Set<Name> propertyNames = new HashSet<Name>();
Set<Name> functionNames = new HashSet<Name>();
for (DeclarationDescriptor ad : nsa.getMemberScope().getAllDescriptors()) {
for (DeclarationDescriptor ad : nsa.getMemberScope().getAllDescriptors(DescriptorPredicate.all())) {
if (ad instanceof ClassifierDescriptor) {
classifierNames.add(ad.getName());
}
@@ -563,7 +564,7 @@ public class NamespaceComparator {
}
JetScope memberScope = klass.getMemberScope(typeArguments);
for (DeclarationDescriptor member : memberScope.getAllDescriptors()) {
for (DeclarationDescriptor member : memberScope.getAllDescriptors(DescriptorPredicate.all())) {
if (!includeObject) {
if (member.getName().getName().matches("equals|hashCode|finalize|wait|notify(All)?|toString|clone|getClass")) {
continue;
@@ -36,6 +36,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
import org.jetbrains.jet.lang.resolve.scopes.DescriptorPredicate;
import java.io.File;
import java.io.FileInputStream;
@@ -196,7 +197,7 @@ public class ResolveDescriptorsFromExternalLibraries {
if (clazz == null) {
throw new IllegalStateException("class not found by name " + className + " in " + libDescription);
}
clazz.getDefaultType().getMemberScope().getAllDescriptors();
clazz.getDefaultType().getMemberScope().getAllDescriptors(DescriptorPredicate.all());
}
catch (Exception e) {
System.err.println("failed to resolve " + className);
@@ -29,6 +29,7 @@ import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.DescriptorPredicate;
import java.io.File;
import java.io.IOException;
@@ -101,6 +102,6 @@ public abstract class AbstractLazyResolveNamespaceComparingTest extends Abstract
}
private NamespaceDescriptor theOnlySubPackage(NamespaceDescriptor namespace) {
return (NamespaceDescriptor) namespace.getMemberScope().getAllDescriptors().iterator().next();
return (NamespaceDescriptor) namespace.getMemberScope().getAllDescriptors(DescriptorPredicate.all()).iterator().next();
}
}