From 4780c73e40665bd173ad169abe5a6778310911af Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Fri, 18 Dec 2020 16:11:20 +0300 Subject: [PATCH] Ignore anonymous inner classes in LightAnalysisMode tests --- .../codegen/AbstractBlackBoxCodegenTest.java | 23 +------------------ .../codegen/AbstractBytecodeListingTest.kt | 21 +++++++++-------- .../codegen/AbstractLightAnalysisModeTest.kt | 7 +++--- 3 files changed, 16 insertions(+), 35 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBlackBoxCodegenTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBlackBoxCodegenTest.java index fa0d92bdb95..e5a105425b4 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBlackBoxCodegenTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBlackBoxCodegenTest.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.TestsRuntimeError; import org.jetbrains.kotlin.backend.common.CodegenUtil; -import org.jetbrains.kotlin.builtins.StandardNames; import org.jetbrains.kotlin.codegen.ir.AbstractFirBlackBoxCodegenTest; import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil; import org.jetbrains.kotlin.psi.KtFile; @@ -74,27 +73,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { String text = BytecodeListingTextCollectingVisitor.Companion.getText( classFileFactory, - new BytecodeListingTextCollectingVisitor.Filter() { - @Override - public boolean shouldWriteClass(int access, @NotNull String name) { - return !name.startsWith("helpers/"); - } - - @Override - public boolean shouldWriteMethod(int access, @NotNull String name, @NotNull String desc) { - return true; - } - - @Override - public boolean shouldWriteField(int access, @NotNull String name, @NotNull String desc) { - return true; - } - - @Override - public boolean shouldWriteInnerClass(@NotNull String name) { - return true; - } - } + BytecodeListingTextCollectingVisitor.Filter.ForCodegenTests.INSTANCE ); assertEqualsToFile(expectedFile, text); diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt index 701cb204048..efd37f75dec 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.codegen -import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult import org.jetbrains.kotlin.utils.sure @@ -22,12 +21,7 @@ abstract class AbstractBytecodeListingTest : CodegenTestCase() { classFileFactory, withSignatures = isWithSignatures(wholeFile), withAnnotations = isWithAnnotations(wholeFile), - filter = object : BytecodeListingTextCollectingVisitor.Filter { - override fun shouldWriteClass(access: Int, name: String): Boolean = !name.startsWith("helpers/") - override fun shouldWriteMethod(access: Int, name: String, desc: String): Boolean = true - override fun shouldWriteField(access: Int, name: String, desc: String): Boolean = true - override fun shouldWriteInnerClass(name: String): Boolean = true - } + filter = BytecodeListingTextCollectingVisitor.Filter.ForCodegenTests ) val prefixes = when { @@ -119,13 +113,20 @@ class BytecodeListingTextCollectingVisitor( fun shouldWriteClass(access: Int, name: String): Boolean fun shouldWriteMethod(access: Int, name: String, desc: String): Boolean fun shouldWriteField(access: Int, name: String, desc: String): Boolean - fun shouldWriteInnerClass(name: String): Boolean + fun shouldWriteInnerClass(name: String, outerName: String?, innerName: String?): Boolean object EMPTY : Filter { override fun shouldWriteClass(access: Int, name: String) = true override fun shouldWriteMethod(access: Int, name: String, desc: String) = true override fun shouldWriteField(access: Int, name: String, desc: String) = true - override fun shouldWriteInnerClass(name: String) = true + override fun shouldWriteInnerClass(name: String, outerName: String?, innerName: String?) = true + } + + object ForCodegenTests : Filter { + override fun shouldWriteClass(access: Int, name: String): Boolean = !name.startsWith("helpers/") + override fun shouldWriteMethod(access: Int, name: String, desc: String): Boolean = true + override fun shouldWriteField(access: Int, name: String, desc: String): Boolean = true + override fun shouldWriteInnerClass(name: String, outerName: String?, innerName: String?): Boolean = true } } @@ -320,7 +321,7 @@ class BytecodeListingTextCollectingVisitor( } override fun visitInnerClass(name: String, outerName: String?, innerName: String?, access: Int) { - if (!filter.shouldWriteInnerClass(name)) { + if (!filter.shouldWriteInnerClass(name, outerName, innerName)) { return } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt index 349e603f1d3..d2f583c2e14 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt @@ -80,12 +80,12 @@ abstract class AbstractLightAnalysisModeTest : CodegenTestCase() { return super.shouldWriteClass(access, name) } - override fun shouldWriteInnerClass(name: String): Boolean { + override fun shouldWriteInnerClass(name: String, outerName: String?, innerName: String?): Boolean { val classDescriptor = classInternalNames[name] if (classDescriptor != null && shouldFilterClass(classDescriptor)) { return false } - return super.shouldWriteInnerClass(name) + return super.shouldWriteInnerClass(name, outerName, innerName) } private fun shouldFilterClass(descriptor: ClassDescriptor): Boolean { @@ -117,6 +117,7 @@ abstract class AbstractLightAnalysisModeTest : CodegenTestCase() { else -> true } - override fun shouldWriteInnerClass(name: String) = true + override fun shouldWriteInnerClass(name: String, outerName: String?, innerName: String?) = + outerName != null && innerName != null } }