Removed output filter from NamespaceComparator.

This commit is contained in:
Evgeny Gerashchenko
2012-12-26 19:33:59 +04:00
parent 5dec5a4c28
commit d01193f8a3
2 changed files with 17 additions and 33 deletions
@@ -25,7 +25,9 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.test.util.NamespaceComparator;
import java.io.File;
@@ -70,11 +72,12 @@ public abstract class AbstractLazyResolveNamespaceComparingTest extends KotlinTe
File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt");
NamespaceComparator.compareNamespaces(expected, actual,
NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterOutput(new Predicate<NamespaceDescriptor>() {
@Override
public boolean apply(NamespaceDescriptor namespaceDescriptor) {
return !namespaceDescriptor.getName().equals(Name.identifier("jet"));
}
}).checkPrimaryConstructors(checkPrimaryConstructors), serializeResultsTo);
NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecusion(
new Predicate<FqNameUnsafe>() {
@Override
public boolean apply(FqNameUnsafe fqName) {
return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.toUnsafe().equals(fqName);
}
}).checkPrimaryConstructors(checkPrimaryConstructors), serializeResultsTo);
}
}
@@ -19,28 +19,19 @@ package org.jetbrains.jet.test.util;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.PropertyCodegen;
import org.jetbrains.jet.jvm.compiler.ExpectedLoadErrorsUtil;
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.MemberComparator;
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.ErrorUtils;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.Variance;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
import org.jetbrains.jet.utils.Printer;
@@ -49,7 +40,6 @@ import org.junit.ComparisonFailure;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.*;
/**
@@ -97,38 +87,31 @@ public class NamespaceComparator {
return serialized;
}
public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, Predicates.<FqNameUnsafe>alwaysTrue(), Predicates.<NamespaceDescriptor>alwaysTrue());
public static final Configuration RECURSIVE = new Configuration(false, true, Predicates.<FqNameUnsafe>alwaysTrue(), Predicates.<NamespaceDescriptor>alwaysTrue());
public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, Predicates.<FqNameUnsafe>alwaysTrue());
public static final Configuration RECURSIVE = new Configuration(false, true, Predicates.<FqNameUnsafe>alwaysTrue());
public static class Configuration {
private final boolean checkPrimaryConstructors;
private final boolean includeObject;
private final Predicate<FqNameUnsafe> recurseIntoPackage;
private final Predicate<NamespaceDescriptor> includeIntoOutput;
public Configuration(
boolean checkPrimaryConstructors,
boolean includeObject,
Predicate<FqNameUnsafe> recurseIntoPackage,
Predicate<NamespaceDescriptor> includeIntoOutput
Predicate<FqNameUnsafe> recurseIntoPackage
) {
this.checkPrimaryConstructors = checkPrimaryConstructors;
this.includeObject = includeObject;
this.recurseIntoPackage = recurseIntoPackage;
this.includeIntoOutput = includeIntoOutput;
}
public Configuration filterOutput(@NotNull Predicate<NamespaceDescriptor> includeIntoOutput) {
return new Configuration(checkPrimaryConstructors, includeObject, recurseIntoPackage, includeIntoOutput);
}
public Configuration filterRecusion(@NotNull Predicate<FqNameUnsafe> recurseIntoPackage) {
return new Configuration(checkPrimaryConstructors, includeObject, recurseIntoPackage, includeIntoOutput);
return new Configuration(checkPrimaryConstructors, includeObject, recurseIntoPackage);
}
public Configuration checkPrimaryConstructors(boolean checkPrimaryConstructors) {
return new Configuration(checkPrimaryConstructors, includeObject, recurseIntoPackage, includeIntoOutput);
return new Configuration(checkPrimaryConstructors, includeObject, recurseIntoPackage);
}
}
@@ -172,11 +155,9 @@ public class NamespaceComparator {
}
else {
String comparison = doCompareNamespaces(namespaceDescriptorA, namespaceDescriptorB);
if (conf.includeIntoOutput.apply(namespaceDescriptorA)) {
sb.append("// <namespace name=\"" + namespaceDescriptorA.getName() + "\">\n");
sb.append(comparison);
sb.append("// </namespace name=\"" + namespaceDescriptorA.getName() + "\">\n");
}
sb.append("// <namespace name=\"" + namespaceDescriptorA.getName() + "\">\n");
sb.append(comparison);
sb.append("// </namespace name=\"" + namespaceDescriptorA.getName() + "\">\n");
}
}
}