diff --git a/plugins/java-decompiler/plugin/test/org/jetbrains/java/decompiler/IdeaDecompilerTest.kt b/plugins/java-decompiler/plugin/test/org/jetbrains/java/decompiler/IdeaDecompilerTest.kt index 66e75b0f2a19..378d90a80cc1 100644 --- a/plugins/java-decompiler/plugin/test/org/jetbrains/java/decompiler/IdeaDecompilerTest.kt +++ b/plugins/java-decompiler/plugin/test/org/jetbrains/java/decompiler/IdeaDecompilerTest.kt @@ -126,7 +126,31 @@ class IdeaDecompilerTest : LightJavaCodeInsightFixtureTestCase() { myFixture.openFileInEditor(getTestFile("module-info.class")) IdentifierHighlighterPassFactory.doWithHighlightingEnabled(project, testRootDisposable, Runnable { val infos = myFixture.doHighlighting() + .filter { it.severity === HighlightInfoType.SYMBOL_TYPE_SEVERITY } assertEquals(5, infos.size) + val texts = infos.map { it.text }.toSet() + assertContainsElements(texts, + "module", + "requires", + "exports", + ) + }) + } + + fun testNameHighlightingInsideCompiledFileWithRecords() { + myFixture.setReadEditorMarkupModel(true) + val testFile = getTestFile("RecordHighlighting.class") + testFile.parent.children ; testFile.parent.refresh(false, true) // inner classes + myFixture.openFileInEditor(testFile) + IdentifierHighlighterPassFactory.doWithHighlightingEnabled(project, testRootDisposable, Runnable { + val infos = myFixture.doHighlighting() + .filter { it.severity === HighlightInfoType.SYMBOL_TYPE_SEVERITY } + val texts = infos.map { it.text }.toSet() + assertContainsElements(texts, + "sealed", + "record", + "permits", + ) }) } diff --git a/plugins/java-decompiler/plugin/testData/RecordHighlighting$A.class b/plugins/java-decompiler/plugin/testData/RecordHighlighting$A.class new file mode 100644 index 000000000000..ccb9e0bd778b Binary files /dev/null and b/plugins/java-decompiler/plugin/testData/RecordHighlighting$A.class differ diff --git a/plugins/java-decompiler/plugin/testData/RecordHighlighting$B.class b/plugins/java-decompiler/plugin/testData/RecordHighlighting$B.class new file mode 100644 index 000000000000..eed972abe4cd Binary files /dev/null and b/plugins/java-decompiler/plugin/testData/RecordHighlighting$B.class differ diff --git a/plugins/java-decompiler/plugin/testData/RecordHighlighting$C.class b/plugins/java-decompiler/plugin/testData/RecordHighlighting$C.class new file mode 100644 index 000000000000..b54d55c5660a Binary files /dev/null and b/plugins/java-decompiler/plugin/testData/RecordHighlighting$C.class differ diff --git a/plugins/java-decompiler/plugin/testData/RecordHighlighting.class b/plugins/java-decompiler/plugin/testData/RecordHighlighting.class new file mode 100644 index 000000000000..0cfe51abb14d Binary files /dev/null and b/plugins/java-decompiler/plugin/testData/RecordHighlighting.class differ diff --git a/plugins/java-decompiler/plugin/testData/RecordHighlighting.java b/plugins/java-decompiler/plugin/testData/RecordHighlighting.java new file mode 100644 index 000000000000..21df8f8d4b64 --- /dev/null +++ b/plugins/java-decompiler/plugin/testData/RecordHighlighting.java @@ -0,0 +1,16 @@ +public class RecordHighlighting { + + public static void main(String[] args) { + + } + + sealed interface A { + + } + + record B() implements A { + } + + record C() implements A { + } +} \ No newline at end of file