From 2533887253b69d57177a7b7fb9d9b8b3b396af88 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 10 Nov 2014 15:42:16 +0300 Subject: [PATCH] Refactor: Make ValidationVisitor stateful so it's possible to inherit from it --- .../checkers/AbstractJetDiagnosticsTest.java | 2 +- .../jvm/compiler/AbstractLoadJavaTest.java | 4 +-- ...ompileKotlinAgainstCustomBinariesTest.java | 2 +- ...ractLazyResolveRecursiveComparingTest.java | 6 ++-- .../jet/test/util/DescriptorValidator.java | 28 ++++++++++++------- .../util/RecursiveDescriptorComparator.java | 18 ++++++------ .../stubs/AbstractLazyResolveByStubTest.java | 4 +-- 7 files changed, 36 insertions(+), 28 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/checkers/AbstractJetDiagnosticsTest.java b/compiler/tests/org/jetbrains/jet/checkers/AbstractJetDiagnosticsTest.java index d338be94b51..5512dd97320 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/AbstractJetDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/jet/checkers/AbstractJetDiagnosticsTest.java @@ -262,7 +262,7 @@ public abstract class AbstractJetDiagnosticsTest extends BaseDiagnosticsTest { } }; - return RECURSIVE.filterRecursion(stepIntoFilter).withValidationStrategy(DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES); + return RECURSIVE.filterRecursion(stepIntoFilter).withValidationStrategy(DescriptorValidator.ValidationVisitor.errorTypesAllowed()); } public static Map createModules(Map> groupedByModule) { diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java index 0ba4d62f135..8ae8cb4ce2b 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java @@ -61,7 +61,7 @@ import java.util.regex.Pattern; import static org.jetbrains.jet.JetTestUtils.*; import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.*; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES; +import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.errorTypesAllowed; import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.*; /* @@ -213,7 +213,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { tmpdir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY); checkJavaPackage(expectedFile, javaPackageAndContext.first, javaPackageAndContext.second, - DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy(ALLOW_ERROR_TYPES)); + DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy(errorTypesAllowed())); } private void doTestCompiledJava(@NotNull String javaFileName, Configuration configuration) throws Exception { diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java index 3c4f13300b6..3b70b326cb8 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java @@ -74,7 +74,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { RecursiveDescriptorComparator.Configuration comparator = RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy( - DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES); + DescriptorValidator.ValidationVisitor.errorTypesAllowed()); validateAndCompareDescriptorWithFile(packageView, comparator, getTestDataFileWithExtension("txt")); } 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 ab0dfd9f47b..b35acc6af11 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveRecursiveComparingTest.java @@ -34,8 +34,8 @@ import java.util.List; import java.util.Map; import static org.jetbrains.jet.lang.psi.PsiPackage.JetPsiFactory; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES; +import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.errorTypesAllowed; +import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.errorTypesForbidden; public abstract class AbstractLazyResolveRecursiveComparingTest extends KotlinTestWithEnvironment { @@ -79,7 +79,7 @@ public abstract class AbstractLazyResolveRecursiveComparingTest extends KotlinTe .filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES) .checkPrimaryConstructors(checkPrimaryConstructors) .checkPropertyAccessors(checkPropertyAccessors) - .withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES), + .withValidationStrategy(allowErrorTypes ? errorTypesAllowed() : errorTypesForbidden()), serializeResultsTo); } } diff --git a/compiler/tests/org/jetbrains/jet/test/util/DescriptorValidator.java b/compiler/tests/org/jetbrains/jet/test/util/DescriptorValidator.java index 122b9dd50da..7ea76690499 100644 --- a/compiler/tests/org/jetbrains/jet/test/util/DescriptorValidator.java +++ b/compiler/tests/org/jetbrains/jet/test/util/DescriptorValidator.java @@ -56,22 +56,30 @@ public class DescriptorValidator { } public static class ValidationVisitor implements DeclarationDescriptorVisitor { - public static final ValidationVisitor FORBID_ERROR_TYPES = new ValidationVisitor( - false, Predicates.alwaysTrue()); - public static final ValidationVisitor ALLOW_ERROR_TYPES = new ValidationVisitor( - true, Predicates.alwaysTrue()); + public static ValidationVisitor errorTypesForbidden() { + return new ValidationVisitor(); + } - private final boolean allowErrorTypes; - private final Predicate recursiveFilter; + public static ValidationVisitor errorTypesAllowed() { + return new ValidationVisitor().allowErrorTypes(); + } - private ValidationVisitor(boolean allowErrorTypes, @NotNull Predicate recursiveFilter) { - this.allowErrorTypes = allowErrorTypes; - this.recursiveFilter = recursiveFilter; + private boolean allowErrorTypes = false; + private Predicate recursiveFilter = Predicates.alwaysTrue(); + + private ValidationVisitor() { } @NotNull public ValidationVisitor withStepIntoFilter(@NotNull Predicate filter) { - return new ValidationVisitor(allowErrorTypes, filter); + this.recursiveFilter = filter; + return this; + } + + @NotNull + public ValidationVisitor allowErrorTypes() { + this.allowErrorTypes = true; + return this; } private void validateScope(@NotNull JetScope scope, @NotNull DiagnosticCollector collector) { diff --git a/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java b/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java index a8b5d3127f6..d3b86b2314b 100644 --- a/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java +++ b/compiler/tests/org/jetbrains/jet/test/util/RecursiveDescriptorComparator.java @@ -42,7 +42,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES; +import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.errorTypesForbidden; public class RecursiveDescriptorComparator { private static final DescriptorRenderer DEFAULT_RENDERER = new DescriptorRendererBuilder() @@ -52,16 +52,16 @@ public class RecursiveDescriptorComparator { .setIncludePropertyConstant(true) .setVerbose(true).build(); - public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, false, + public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, false, Predicates.alwaysTrue(), - FORBID_ERROR_TYPES, DEFAULT_RENDERER); - public static final Configuration RECURSIVE = new Configuration(false, false, true, + errorTypesForbidden(), DEFAULT_RENDERER); + public static final Configuration RECURSIVE = new Configuration(false, false, true, Predicates.alwaysTrue(), - FORBID_ERROR_TYPES, DEFAULT_RENDERER); + errorTypesForbidden(), DEFAULT_RENDERER); - public static final Configuration RECURSIVE_ALL = new Configuration(true, true, true, + public static final Configuration RECURSIVE_ALL = new Configuration(true, true, true, Predicates.alwaysTrue(), - FORBID_ERROR_TYPES, DEFAULT_RENDERER); + errorTypesForbidden(), DEFAULT_RENDERER); public static final Predicate SKIP_BUILT_INS_PACKAGES = new Predicate() { @Override @@ -280,13 +280,13 @@ public class RecursiveDescriptorComparator { this.checkPropertyAccessors = checkPropertyAccessors; this.includeMethodsOfKotlinAny = includeMethodsOfKotlinAny; this.recursiveFilter = recursiveFilter; - this.validationStrategy = validationStrategy.withStepIntoFilter(recursiveFilter); + this.validationStrategy = validationStrategy; this.renderer = renderer; } public Configuration filterRecursion(@NotNull Predicate stepIntoFilter) { return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfKotlinAny, stepIntoFilter, - validationStrategy, renderer); + validationStrategy.withStepIntoFilter(stepIntoFilter), renderer); } public Configuration checkPrimaryConstructors(boolean checkPrimaryConstructors) { diff --git a/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java b/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java index 406567bc21a..d5426460cb1 100644 --- a/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/stubs/AbstractLazyResolveByStubTest.java @@ -39,7 +39,7 @@ import org.junit.Assert; import java.io.File; import static com.intellij.openapi.roots.ModuleRootModificationUtil.updateModel; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES; +import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.errorTypesForbidden; public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTestCase { protected void doTest(String testFileName) throws Exception { @@ -78,7 +78,7 @@ public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTes .filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES) .checkPrimaryConstructors(checkPrimaryConstructors) .checkPropertyAccessors(checkPropertyAccessors) - .withValidationStrategy(FORBID_ERROR_TYPES), + .withValidationStrategy(errorTypesForbidden()), fileToCompareTo ); }