Ignore anonymous inner classes in LightAnalysisMode tests
This commit is contained in:
+1
-22
@@ -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);
|
||||
|
||||
+11
-10
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+4
-3
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user