Refactoring: Extract filter for skipping built-ins packages
This commit is contained in:
+5
-16
@@ -16,18 +16,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.lazy;
|
package org.jetbrains.jet.lang.resolve.lazy;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.ConfigurationKind;
|
import org.jetbrains.jet.ConfigurationKind;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|
||||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
@@ -78,19 +75,11 @@ public abstract class AbstractLazyResolveRecursiveComparingTest extends KotlinTe
|
|||||||
File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt");
|
File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt");
|
||||||
|
|
||||||
RecursiveDescriptorComparator.validateAndCompareDescriptors(
|
RecursiveDescriptorComparator.validateAndCompareDescriptors(
|
||||||
expected, actual, RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion(
|
expected, actual, RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT
|
||||||
new Predicate<DeclarationDescriptor>() {
|
.filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES)
|
||||||
@Override
|
.checkPrimaryConstructors(checkPrimaryConstructors)
|
||||||
public boolean apply(DeclarationDescriptor descriptor) {
|
.checkPropertyAccessors(checkPropertyAccessors)
|
||||||
if (descriptor instanceof PackageViewDescriptor) {
|
.withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES),
|
||||||
return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(((PackageViewDescriptor) descriptor).getFqName());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.checkPrimaryConstructors(checkPrimaryConstructors)
|
|
||||||
.checkPropertyAccessors(checkPropertyAccessors)
|
|
||||||
.withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES),
|
|
||||||
serializeResultsTo);
|
serializeResultsTo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
|||||||
import org.jetbrains.jet.lang.resolve.MemberComparator;
|
import org.jetbrains.jet.lang.resolve.MemberComparator;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||||
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
|
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
|
||||||
import org.jetbrains.jet.utils.Printer;
|
import org.jetbrains.jet.utils.Printer;
|
||||||
@@ -62,6 +63,16 @@ public class RecursiveDescriptorComparator {
|
|||||||
Predicates.<DeclarationDescriptor>alwaysTrue(),
|
Predicates.<DeclarationDescriptor>alwaysTrue(),
|
||||||
FORBID_ERROR_TYPES, DEFAULT_RENDERER);
|
FORBID_ERROR_TYPES, DEFAULT_RENDERER);
|
||||||
|
|
||||||
|
public static final Predicate<DeclarationDescriptor> SKIP_BUILT_INS_PACKAGES = new Predicate<DeclarationDescriptor>() {
|
||||||
|
@Override
|
||||||
|
public boolean apply(DeclarationDescriptor descriptor) {
|
||||||
|
if (descriptor instanceof PackageViewDescriptor) {
|
||||||
|
return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(((PackageViewDescriptor) descriptor).getFqName());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private static final ImmutableSet<String> KOTLIN_ANY_METHOD_NAMES = ImmutableSet.of("equals", "hashCode", "toString");
|
private static final ImmutableSet<String> KOTLIN_ANY_METHOD_NAMES = ImmutableSet.of("equals", "hashCode", "toString");
|
||||||
|
|
||||||
private final Configuration conf;
|
private final Configuration conf;
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.stubs;
|
package org.jetbrains.jet.plugin.stubs;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.roots.ContentEntry;
|
import com.intellij.openapi.roots.ContentEntry;
|
||||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||||
@@ -26,12 +25,10 @@ import com.intellij.util.Consumer;
|
|||||||
import kotlin.Function0;
|
import kotlin.Function0;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|
||||||
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
||||||
import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase;
|
import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheService;
|
import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheService;
|
||||||
@@ -77,18 +74,8 @@ public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTes
|
|||||||
|
|
||||||
RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile(
|
RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile(
|
||||||
packageViewDescriptor,
|
packageViewDescriptor,
|
||||||
RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion(
|
RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT
|
||||||
new Predicate<DeclarationDescriptor>() {
|
.filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES)
|
||||||
@Override
|
|
||||||
public boolean apply(DeclarationDescriptor descriptor) {
|
|
||||||
if (descriptor instanceof PackageViewDescriptor) {
|
|
||||||
return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME
|
|
||||||
.equals(((PackageViewDescriptor) descriptor).getFqName());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.checkPrimaryConstructors(checkPrimaryConstructors)
|
.checkPrimaryConstructors(checkPrimaryConstructors)
|
||||||
.checkPropertyAccessors(checkPropertyAccessors)
|
.checkPropertyAccessors(checkPropertyAccessors)
|
||||||
.withValidationStrategy(FORBID_ERROR_TYPES),
|
.withValidationStrategy(FORBID_ERROR_TYPES),
|
||||||
|
|||||||
Reference in New Issue
Block a user