feat(Escaped Identifiers): add ability to use any symbol wrapped in back ticks.

This commit is contained in:
Artem Kobzar
2021-10-29 17:55:59 +00:00
committed by Space
parent ea10b4a781
commit 979e9f94ef
59 changed files with 1260 additions and 159 deletions
@@ -0,0 +1,28 @@
// IGNORE_BACKEND: JS
// MODULE_KIND: COMMON_JS
// !LANGUAGE: +JsAllowInvalidCharsIdentifiersEscaping
// FILE: lib.kt
@file:JsModule("lib")
package lib
external fun `@get something-invalid`(): String = definedExternally
external val `some+value`: Int = definedExternally
external object `+some+object%:` {
val foo: String = definedExternally
}
// FILE: main.kt
import lib.`some+value`
import lib.`@get something-invalid`
import lib.`+some+object%:`
fun box(): String {
assertEquals(42, `some+value`)
assertEquals("%%++%%", `+some+object%:`.foo)
assertEquals("something invalid", `@get something-invalid`())
return "OK"
}