Got rid of regexp check for java.lang.Object methods.

This commit is contained in:
Evgeny Gerashchenko
2012-12-26 21:25:45 +04:00
parent 5196a17f69
commit 0ce1c56999
@@ -18,6 +18,7 @@ package org.jetbrains.jet.test.util;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.containers.ContainerUtil;
@@ -53,6 +54,9 @@ public class NamespaceComparator {
.setExcludedAnnotationClasses(Arrays.asList(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)))
.setVerbose(true).build();
private static final ImmutableSet<String> JAVA_OBJECT_METHOD_NAMES = ImmutableSet.of(
"equals", "hashCode", "finalize", "wait", "notify", "notifyAll", "toString", "clone", "getClass");
private final Configuration conf;
private NamespaceComparator(@NotNull Configuration conf) {
@@ -105,15 +109,15 @@ public class NamespaceComparator {
Collections.sort(subDescriptors, MemberComparator.INSTANCE);
for (DeclarationDescriptor subDescriptor : subDescriptors) {
if (!conf.includeMethodsOfJavaObject) {
// TODO regexp check? oh dear
if (subDescriptor.getName().getName().matches("equals|hashCode|finalize|wait|notify(All)?|toString|clone|getClass")) {
continue;
}
if (!conf.includeMethodsOfJavaObject && subDescriptor instanceof FunctionDescriptor
&& JAVA_OBJECT_METHOD_NAMES.contains(subDescriptor.getName().getName())) {
continue;
}
if (subDescriptor instanceof NamespaceDescriptor && !conf.recurseIntoPackage.apply(DescriptorUtils.getFQName(subDescriptor))) {
continue;
}
appendDeclarationRecursively(subDescriptor, printer, false);
}