From fbd09911f3c42636bf226bd62175c35f9913d1c1 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 17 Sep 2014 14:43:25 +0400 Subject: [PATCH] Refactoring: Extract filter for skipping built-ins packages --- ...ractLazyResolveRecursiveComparingTest.java | 21 +++++-------------- .../util/RecursiveDescriptorComparator.java | 11 ++++++++++ .../stubs/AbstractLazyResolveByStubTest.java | 17 ++------------- 3 files changed, 18 insertions(+), 31 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java index 482625cbc99..ab0dfd9f47b 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java @@ -16,18 +16,15 @@ package org.jetbrains.jet.lang.resolve.lazy; -import com.google.common.base.Predicate; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.ConfigurationKind; import org.jetbrains.jet.JetTestUtils; 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.PackageViewDescriptor; import org.jetbrains.jet.lang.psi.JetFile; 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.junit.Assert; @@ -78,19 +75,11 @@ public abstract class AbstractLazyResolveRecursiveComparingTest extends KotlinTe File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt"); RecursiveDescriptorComparator.validateAndCompareDescriptors( - expected, actual, RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion( - new Predicate() { - @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) - .checkPropertyAccessors(checkPropertyAccessors) - .withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES), + expected, actual, RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT + .filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES) + .checkPrimaryConstructors(checkPrimaryConstructors) + .checkPropertyAccessors(checkPropertyAccessors) + .withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES), serializeResultsTo); } } diff --git a/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java b/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java index a96a0041d5e..a8b5d3127f6 100644 --- a/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java +++ b/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java @@ -30,6 +30,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.MemberComparator; import org.jetbrains.jet.lang.resolve.name.FqName; 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.DescriptorRendererBuilder; import org.jetbrains.jet.utils.Printer; @@ -62,6 +63,16 @@ public class RecursiveDescriptorComparator { Predicates.alwaysTrue(), FORBID_ERROR_TYPES, DEFAULT_RENDERER); + public static final Predicate SKIP_BUILT_INS_PACKAGES = new Predicate() { + @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 KOTLIN_ANY_METHOD_NAMES = ImmutableSet.of("equals", "hashCode", "toString"); private final Configuration conf; diff --git a/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java b/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java index 1f916ab22d9..406567bc21a 100644 --- a/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java @@ -16,7 +16,6 @@ package org.jetbrains.jet.plugin.stubs; -import com.google.common.base.Predicate; import com.intellij.openapi.module.Module; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; @@ -26,12 +25,10 @@ import com.intellij.util.Consumer; import kotlin.Function0; import kotlin.Unit; 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.PackageViewDescriptor; import org.jetbrains.jet.lang.psi.JetFile; 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.KotlinCodeInsightTestCase; import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheService; @@ -77,18 +74,8 @@ public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTes RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile( packageViewDescriptor, - RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion( - new Predicate() { - @Override - public boolean apply(DeclarationDescriptor descriptor) { - if (descriptor instanceof PackageViewDescriptor) { - return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME - .equals(((PackageViewDescriptor) descriptor).getFqName()); - } - return true; - } - } - ) + RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT + .filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES) .checkPrimaryConstructors(checkPrimaryConstructors) .checkPropertyAccessors(checkPropertyAccessors) .withValidationStrategy(FORBID_ERROR_TYPES),