From d7cd2b72b083bd09f3966543921c9071fdf71d4f Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 20 Sep 2022 14:05:28 +0300 Subject: [PATCH] [AA LC] Add test for strange JVM identifiers --- ...htClassesByPsiForLibraryTestGenerated.java | 6 +++ ...ghtClassesByPsiForSourceTestGenerated.java | 6 +++ .../lightClassByPsi/strangeIdentifiers.kt | 41 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java index d39a30cb8f2..315748b59ce 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java @@ -228,6 +228,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.kt"); } + @Test + @TestMetadata("strangeIdentifiers.kt") + public void testStrangeIdentifiers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt"); + } + @Test @TestMetadata("throwsAnnotation.kt") public void testThrowsAnnotation() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java index 41797df0786..c3d65340e83 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java @@ -228,6 +228,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.kt"); } + @Test + @TestMetadata("strangeIdentifiers.kt") + public void testStrangeIdentifiers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt"); + } + @Test @TestMetadata("throwsAnnotation.kt") public void testThrowsAnnotation() throws Exception { diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt new file mode 100644 index 00000000000..080eedb0216 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/strangeIdentifiers.kt @@ -0,0 +1,41 @@ +// IGNORE_FIR +// COMPILATION_ERRORS + +class `:)` { + lateinit val f: String +} + +// Commented declarations won't compile with the current Kotlin +class Test { + class `(^_^)` + + lateinit var simpleName: String + lateinit var `strange name`: String + lateinit var strangeType: List<`!A@`> + + fun simpleFun() {} + + @Anno(name = "Woofwoof", size = StrangeEnum.`60x60`, `A B` = "S") + fun simpleFun2(a: String, b: String) {} + + fun `strange!Fun`() {} + fun strangeFun2(a: String, b: `A()B()`) {} + fun strangeFun3(a: String, b: `A B`) {} + fun strangeFun4(a: String, `A()B()`: String) {} + fun strangeFun5(a: `A B`.C) {} +} + +enum class StrangeEnum(val size: String) { + `60x60`("60x60"), + `70x70`("70x70"), + `80x80`("80x80"), + InvalidFieldName("0x0") +} + +annotation class Anno(val size: StrangeEnum, val name: String, val `A B`: String) + +class `!A@` +class `A()B()` +class `A B` { + class C +}