diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/Namer.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/Namer.java index 4bee4d7851b..2ffa9fe4a11 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/Namer.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/Namer.java @@ -189,7 +189,7 @@ public final class Namer { @NotNull public static String isInstanceSuggestedName(@NotNull TypeParameterDescriptor descriptor) { - return "is" + descriptor.getName().getIdentifier(); + return "is" + NameSuggestion.sanitizeName(descriptor.getName().getIdentifier()); } @NotNull diff --git a/js/js.translator/testData/box/jsName/peculiarIdentifiers.kt b/js/js.translator/testData/box/jsName/peculiarIdentifiers.kt index d64a5b92472..b94320398ef 100644 --- a/js/js.translator/testData/box/jsName/peculiarIdentifiers.kt +++ b/js/js.translator/testData/box/jsName/peculiarIdentifiers.kt @@ -28,10 +28,20 @@ fun test4(): String { return `[£]`() } +inline fun test5(): String = `-`::class.simpleName!! + +inline fun test6(x: Any): Boolean = x is `-` + +class OK + fun box(): String { if (test1() != 20) return "fail1" if (test2(10, 13) != 23) return "fail2" if (test3() != "OK") return "fail3" if (test4() != "OK") return "fail4" + + if (test5() != "OK") return "fail5" + if (!test6("foo")) return "fail6" + return "OK" } \ No newline at end of file