JS backend: added tests for reserved words.

This commit is contained in:
Zalim Bashorov
2014-09-24 00:33:34 +04:00
parent e91e724469
commit 5a5c4145f2
183 changed files with 4381 additions and 3 deletions
+1
View File
@@ -23,6 +23,7 @@
<orderEntry type="module" module-name="j2k" scope="TEST" />
<orderEntry type="library" scope="TEST" name="kotlin-runtime" level="project" />
<orderEntry type="library" scope="TEST" name="jps-test" level="project" />
<orderEntry type="module" module-name="js.dart-ast" />
</component>
</module>
@@ -120,6 +120,8 @@ import org.jetbrains.jet.plugin.parameterInfo.AbstractFunctionParameterInfoTest
import org.jetbrains.jet.psi.patternMatching.AbstractJetPsiUnifierTest
import org.jetbrains.jet.completion.weighers.AbstractBasicCompletionWeigherTest
import org.jetbrains.jet.completion.weighers.AbstractSmartCompletionWeigherTest
import org.jetbrains.jet.generators.tests.reservedWords.generateTestDataForReservedWords
import org.jetbrains.k2js.test.semantics.AbstractReservedWordTest
fun main(args: Array<String>) {
System.setProperty("java.awt.headless", "true")
@@ -617,6 +619,14 @@ fun main(args: Array<String>) {
model("incremental", extension = null, excludeParentDirs = true)
}
}
generateTestDataForReservedWords()
testGroup("js/js.tests/test", "js/js.translator/testData") {
testClass(javaClass<AbstractReservedWordTest>()) {
model("reservedWords/cases")
}
}
}
private class TestGroup(val testsRoot: String, val testDataRoot: String) {
@@ -0,0 +1,331 @@
/*
* Copyright 2010-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.generators.tests.reservedWords
import java.io.File
import org.jetbrains.jet.renderer.KeywordStringsGenerated
import com.google.dart.compiler.backend.js.ast.JsFunctionScope
val commonCases: CaseBuilder.(String, String) -> Unit = { (testByName, testByRef) ->
case("val", "val $KEYWORD_MARKER: Int", " = 0", testByName)
case("var", "var $KEYWORD_MARKER: Int", " = 0", testByName)
case("fun", "fun $KEYWORD_MARKER()", " { $KEYWORD_MARKER() }", testByRef)
case("funParam",
"fun foo($KEYWORD_MARKER: String)", """ {
assertEquals("123", $KEYWORD_MARKER)
$testRenamedByName
}""", "foo(\"123\")")
case("label", "val t: Int", " = 0", "testRenamed(\"$KEYWORD_MARKER\", { @$KEYWORD_MARKER while (false) {} })")
}
val commonCasesWithTestNotRenamed: CaseBuilder.() -> Unit = { commonCases(testNotRenamedByName, testNotRenamedByRef) }
fun main(args: Array<String>) {
generateTestDataForReservedWords()
}
fun generateTestDataForReservedWords() {
generate("js/js.translator/testData/reservedWords/cases") {
suite("toplevel",
"""
$DEFINITION_MARKER
fun box(): String {
$TEST_BLOCK_MARKER
return "OK"
}"""
) {
commonCasesWithTestNotRenamed()
case("class", "class $KEYWORD_MARKER { class object {} }", "", testNotRenamedByName)
case("trait", "trait $KEYWORD_MARKER { class object {} }", "", testNotRenamedByName)
case("enum", "enum class $KEYWORD_MARKER { foo }", "", testNotRenamed("$KEYWORD_MARKER.foo"))
case("object", "object $KEYWORD_MARKER {}", "", testNotRenamedByName)
}
// -------------------------
suite("local",
"""
fun box(): String {
$DEFINITION_MARKER
$TEST_BLOCK_MARKER
return "OK"
}"""
) {
commonCases(testRenamedByName, testRenamedByRef)
case("catch", "", "",
"""
try {
throw Exception()
}
catch($KEYWORD_MARKER: Exception) {
$testRenamedByName
}""")
}
// -------------------------
suite("insideClass",
"""
class TestClass {
$DEFINITION_MARKER
fun test() {
$TEST_BLOCK_MARKER
}
}
fun box(): String {
TestClass().test()
return "OK"
}""", commonCasesWithTestNotRenamed)
// -------------------------
suite("insideClassObject",
"""
class TestClass {
class object {
$DEFINITION_MARKER
fun test() {
$TEST_BLOCK_MARKER
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}""", commonCasesWithTestNotRenamed)
// -------------------------
suite("insideObject",
"""
object TestObject {
$DEFINITION_MARKER
fun test() {
$TEST_BLOCK_MARKER
}
}
fun box(): String {
TestObject.test()
return "OK"
}""", commonCasesWithTestNotRenamed)
// -------------------------
suite("dataClass",
"""
data class DataClass($DEFINITION_MARKER: String) {
{
$TEST_BLOCK_MARKER
}
}
fun box(): String {
DataClass("123")
return "OK"
}"""
) {
case("val", "val $KEYWORD_MARKER", "", testNotRenamedByName)
case("var", "var $KEYWORD_MARKER", "", testNotRenamedByName)
case("param", "$KEYWORD_MARKER", "",testRenamedByName)
}
// -------------------------
suite("delegated",
"""
trait Trait {
$DECLARATION_MARKER
}
class TraitImpl : Trait {
override $DEFINITION_MARKER
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
$TEST_BLOCK_MARKER
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}""", commonCasesWithTestNotRenamed)
// -------------------------
suite("enum",
"""
enum class Foo {
BAR
$DEFINITION_MARKER
fun test() {
$TEST_BLOCK_MARKER
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}""", commonCasesWithTestNotRenamed)
// -------------------------
suite("enum",
"""
enum class Foo {
$KEYWORD_MARKER
}
fun box(): String {
${testNotRenamed("Foo.$KEYWORD_MARKER")}
return "OK"
}"""
) {
case("entry", "", "", "")
}
// -------------------------
}
}
// DSL
class Case(val name: String, val testDeclaration: String, val testDeclarationInit: String, val testBlock: String)
class Suite(val name: String, val code: String, val cases: List<Case>)
class CaseBuilder {
val cases = arrayListOf<Case>()
fun case(name: String, testDeclaration: String, testDeclarationInit: String, testBlock: String) {
cases.add(Case(name, testDeclaration, testDeclarationInit, testBlock))
}
}
class TestDataBuilder() {
val suites = arrayListOf<Suite>()
fun suite(name: String, code: String, f: CaseBuilder.() -> Unit) {
val builder = CaseBuilder()
builder.f()
suites.add(Suite(name, PREAMBLE + code, builder.cases))
}
fun generate(testDataDirPath: String) {
val testDataDir = File(testDataDirPath)
if (!testDataDir.exists() && !testDataDir.mkdirs()) {
println("Unable to find or create test data dir: '$testDataDirPath'.")
return
}
for (suite in suites) {
for (case in suite.cases) {
// Uses small portions of keywords instead of ALL_KEYWORDS to avoid a combinatorial explosion
// Each portion contains at least one keyword which should be escaped and at least one which should not.
for (keyword in nextKeywordPortion()) {
val keywordWithEscapeIfNeed = if (keyword in SHOULD_BE_ESCAPED) "`$keyword`" else keyword
val out = suite.code
.replace(DEFINITION_MARKER, case.testDeclaration + case.testDeclarationInit)
.replace(DECLARATION_MARKER, case.testDeclaration)
.replace(DECLARATION_INIT_MARKER, case.testDeclarationInit)
.replace(TEST_BLOCK_MARKER, case.testBlock)
.replace("\"$KEYWORD_MARKER\"", "\"$keyword\"")
.replace(KEYWORD_MARKER, keywordWithEscapeIfNeed)
val fileName = "${suite.name.decapitalize()}${case.name.capitalize()}${keyword.capitalize()}.kt"
File(testDataDirPath + "/" + fileName).writeText(out)
}
}
}
}
}
fun generate(testDataDirPath: String, f: TestDataBuilder.() -> Unit) {
val builder = TestDataBuilder()
builder.f()
builder.generate(testDataDirPath)
}
val DEFINITION_MARKER = "DEFINITION"
val DECLARATION_MARKER = "DECLARATION"
val DECLARATION_INIT_MARKER = "DECLARATION_INIT"
val TEST_BLOCK_MARKER = "TEST_BLOCK"
val KEYWORD_MARKER = "KEYWORD"
val PREAMBLE = """package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
"""
fun testRenamed(reference: String = "$KEYWORD_MARKER") = "testRenamed(\"$KEYWORD_MARKER\", { $reference })"
fun testNotRenamed(reference: String = "$KEYWORD_MARKER") = "testNotRenamed(\"$KEYWORD_MARKER\", { $reference })"
val testRenamedByName = testRenamed()
val testRenamedByRef = testRenamed("::$KEYWORD_MARKER")
val testNotRenamedByName = testNotRenamed()
val testNotRenamedByRef = testNotRenamed("::$KEYWORD_MARKER")
// KEYWORDS
val ALL_KEYWORDS = JsFunctionScope.RESERVED_WORDS.toList()
val SHOULD_BE_ESCAPED = (ALL_KEYWORDS.filter { it in KeywordStringsGenerated.KEYWORDS } union setOf("catch", "finally")).toSortedList()
val SHOULD_NOT_BE_ESCAPED = ALL_KEYWORDS.filter { it !in SHOULD_BE_ESCAPED }.toSortedList()
// all keywords by portions
// cyclic keyword streams
val s1 = SHOULD_BE_ESCAPED.cyclicStream()
val s2 = SHOULD_NOT_BE_ESCAPED.cyclicStream()
val PORTION_PART_SIZE = 2;
fun nextKeywordPortion() = s1.take(PORTION_PART_SIZE).toList() + s2.take(PORTION_PART_SIZE).toList()
// CyclicStream
fun <T> List<T>.cyclicStream() = CyclicStream(this)
class CyclicStream<T>(val c: List<T>) : Stream<T> {
var i = 0
override fun iterator(): Iterator<T> = object : Iterator<T>{
override fun next(): T {
i = if (i >= c.size) 0 else i
return c[i++]
}
override fun hasNext(): Boolean = true
}
}
@@ -0,0 +1,23 @@
/*
* Copyright 2010-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.k2js.test.semantics
import org.jetbrains.k2js.test.SingleFileTranslationTest
public abstract class AbstractReservedWordTest : SingleFileTranslationTest("reservedWords/") {
fun doTest(fileName: String) = checkFooBoxIsOk()
}
@@ -1,15 +1,19 @@
package kotlin
fun fail(message: String? = null) = throw Exception(message)
fun assertEquals<T>(expected: T, actual: T, message: String? = null) {
if (expected != actual) {
val msg = if (message == null) "" else (" message = '" + message + "',")
throw Exception("Unexpected value:$msg expected = '$expected', actual = '$actual'")
fail("Unexpected value:$msg expected = '$expected', actual = '$actual'")
}
}
fun assertNotEquals<T>(illegal: T, actual: T, message: String? = null) {
if (illegal == actual) {
val msg = if (message == null) "" else (" message = '" + message + "',")
throw Exception("Illegal value:$msg illegal = '$illegal', actual = '$actual'")
fail("Illegal value:$msg illegal = '$illegal', actual = '$actual'")
}
}
}
fun assertTrue(actual: Boolean, message: String? = null) = assertEquals(true, actual, message)
@@ -0,0 +1,32 @@
package foo
fun testRenamed(case: String, f: () -> Unit) = test(case, true, f)
fun testNotRenamed(case: String, f: () -> Unit) = test(case, false, f)
native
fun String.replace(r: String, s: String): String = noImpl
native
class RegExp(pattern: String, flag: String)
native
fun String.match(r: RegExp): Array<String> = noImpl
fun test(keyword: String, expectedRenamed: Boolean, f: Any) {
val fs = f.toString().replace("while (false)", "")
val matches = fs.match(RegExp("[\\w$]*$keyword[\\w_$]*", "g"))
assertNotEquals(null, matches, "matches == null, fs = $fs")
assertNotEquals(0, matches.size, "matches = $matches")
val actual = matches[matches.size -1]
assertTrue(actual.contains(keyword), "'$keyword' not found in '$matches' from '$fs'")
if (expectedRenamed) {
assertNotEquals(keyword, actual, "fs = $fs")
}
else {
assertEquals(keyword, actual, "fs = $fs")
}
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(arguments: String) {
{
testRenamed("arguments", { arguments })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(await: String) {
{
testRenamed("await", { await })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(`package`: String) {
{
testRenamed("package", { `package` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(`return`: String) {
{
testRenamed("return", { `return` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(val `false`: String) {
{
testNotRenamed("false", { `false` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(val `finally`: String) {
{
testNotRenamed("finally", { `finally` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(val void: String) {
{
testNotRenamed("void", { void })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(val with: String) {
{
testNotRenamed("with", { with })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(var `if`: String) {
{
testNotRenamed("if", { `if` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(var `in`: String) {
{
testNotRenamed("in", { `in` })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(var Infinity: String) {
{
testNotRenamed("Infinity", { Infinity })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,15 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
data class DataClass(var Kotlin: String) {
{
testNotRenamed("Kotlin", { Kotlin })
}
}
fun box(): String {
DataClass("123")
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun `break`()
}
class TraitImpl : Trait {
override fun `break`() { `break`() }
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("break", { ::`break` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun `catch`()
}
class TraitImpl : Trait {
override fun `catch`() { `catch`() }
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("catch", { ::`catch` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun export()
}
class TraitImpl : Trait {
override fun export() { export() }
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("export", { ::export })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun extends()
}
class TraitImpl : Trait {
override fun extends() { extends() }
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("extends", { ::extends })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,26 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun foo(`continue`: String)
}
class TraitImpl : Trait {
override fun foo(`continue`: String) {
assertEquals("123", `continue`)
testRenamed("continue", { `continue` })
}
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
foo("123")
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,26 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun foo(`do`: String)
}
class TraitImpl : Trait {
override fun foo(`do`: String) {
assertEquals("123", `do`)
testRenamed("do", { `do` })
}
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
foo("123")
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,26 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun foo(implements: String)
}
class TraitImpl : Trait {
override fun foo(implements: String) {
assertEquals("123", implements)
testRenamed("implements", { implements })
}
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
foo("123")
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,26 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
fun foo(import: String)
}
class TraitImpl : Trait {
override fun foo(import: String) {
assertEquals("123", import)
testRenamed("import", { import })
}
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
foo("123")
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val t: Int
}
class TraitImpl : Trait {
override val t: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testRenamed("false", { @`false` while (false) {} })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val t: Int
}
class TraitImpl : Trait {
override val t: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testRenamed("finally", { @`finally` while (false) {} })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val t: Int
}
class TraitImpl : Trait {
override val t: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testRenamed("interface", { @interface while (false) {} })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val t: Int
}
class TraitImpl : Trait {
override val t: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testRenamed("let", { @let while (false) {} })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val const: Int
}
class TraitImpl : Trait {
override val const: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("const", { const })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val debugger: Int
}
class TraitImpl : Trait {
override val debugger: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("debugger", { debugger })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val `this`: Int
}
class TraitImpl : Trait {
override val `this`: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("this", { `this` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
val `throw`: Int
}
class TraitImpl : Trait {
override val `throw`: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("throw", { `throw` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
var delete: Int
}
class TraitImpl : Trait {
override var delete: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("delete", { delete })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
var enum: Int
}
class TraitImpl : Trait {
override var enum: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("enum", { enum })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
var `try`: Int
}
class TraitImpl : Trait {
override var `try`: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("try", { `try` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,23 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
trait Trait {
var `var`: Int
}
class TraitImpl : Trait {
override var `var`: Int = 0
}
class TestDelegate : Trait by TraitImpl() {
fun test() {
testNotRenamed("var", { `var` })
}
}
fun box(): String {
TestDelegate().test()
return "OK"
}
@@ -0,0 +1,13 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
case
}
fun box(): String {
testNotRenamed("case", { Foo.case })
return "OK"
}
@@ -0,0 +1,13 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
const
}
fun box(): String {
testNotRenamed("const", { Foo.const })
return "OK"
}
@@ -0,0 +1,13 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
`continue`
}
fun box(): String {
testNotRenamed("continue", { Foo.`continue` })
return "OK"
}
@@ -0,0 +1,13 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
`do`
}
fun box(): String {
testNotRenamed("do", { Foo.`do` })
return "OK"
}
@@ -0,0 +1,21 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun foo(Infinity: String) {
assertEquals("123", Infinity)
testRenamed("Infinity", { Infinity })
}
fun test() {
foo("123")
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,21 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun foo(`try`: String) {
assertEquals("123", `try`)
testRenamed("try", { `try` })
}
fun test() {
foo("123")
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,21 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun foo(`var`: String) {
assertEquals("123", `var`)
testRenamed("var", { `var` })
}
fun test() {
foo("123")
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,21 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun foo(yield: String) {
assertEquals("123", yield)
testRenamed("yield", { yield })
}
fun test() {
foo("123")
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun `this`() { `this`() }
fun test() {
testNotRenamed("this", { ::`this` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun `throw`() { `throw`() }
fun test() {
testNotRenamed("throw", { ::`throw` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun undefined() { undefined() }
fun test() {
testNotRenamed("undefined", { ::undefined })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
fun void() { void() }
fun test() {
testNotRenamed("void", { ::void })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val t: Int = 0
fun test() {
testRenamed("arguments", { @arguments while (false) {} })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val t: Int = 0
fun test() {
testRenamed("break", { @`break` while (false) {} })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val t: Int = 0
fun test() {
testRenamed("catch", { @`catch` while (false) {} })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val t: Int = 0
fun test() {
testRenamed("NaN", { @NaN while (false) {} })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val `if`: Int = 0
fun test() {
testNotRenamed("if", { `if` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val `in`: Int = 0
fun test() {
testNotRenamed("in", { `in` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val private: Int = 0
fun test() {
testNotRenamed("private", { private })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
val protected: Int = 0
fun test() {
testNotRenamed("protected", { protected })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
var `package`: Int = 0
fun test() {
testNotRenamed("package", { `package` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
var `return`: Int = 0
fun test() {
testNotRenamed("return", { `return` })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
var static: Int = 0
fun test() {
testNotRenamed("static", { static })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,18 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
enum class Foo {
BAR
var switch: Int = 0
fun test() {
testNotRenamed("switch", { switch })
}
}
fun box(): String {
Foo.BAR.test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun `if`() { `if`() }
fun test() {
testNotRenamed("if", { ::`if` })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun `in`() { `in`() }
fun test() {
testNotRenamed("in", { ::`in` })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun new() { new() }
fun test() {
testNotRenamed("new", { ::new })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,20 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun foo(`package`: String) {
assertEquals("123", `package`)
testRenamed("package", { `package` })
}
fun test() {
foo("123")
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,20 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun foo(public: String) {
assertEquals("123", public)
testRenamed("public", { public })
}
fun test() {
foo("123")
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,20 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun foo(`return`: String) {
assertEquals("123", `return`)
testRenamed("return", { `return` })
}
fun test() {
foo("123")
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,20 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun foo(static: String) {
assertEquals("123", static)
testRenamed("static", { static })
}
fun test() {
foo("123")
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
fun private() { private() }
fun test() {
testNotRenamed("private", { ::private })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val t: Int = 0
fun test() {
testRenamed("this", { @`this` while (false) {} })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val t: Int = 0
fun test() {
testRenamed("throw", { @`throw` while (false) {} })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val t: Int = 0
fun test() {
testRenamed("typeof", { @typeof while (false) {} })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val t: Int = 0
fun test() {
testRenamed("undefined", { @undefined while (false) {} })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun await() { await() }
fun test() {
testNotRenamed("await", { ::await })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun case() { case() }
fun test() {
testNotRenamed("case", { ::case })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun `continue`() { `continue`() }
fun test() {
testNotRenamed("continue", { ::`continue` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun `do`() { `do`() }
fun test() {
testNotRenamed("do", { ::`do` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,22 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun foo(debugger: String) {
assertEquals("123", debugger)
testRenamed("debugger", { debugger })
}
fun test() {
foo("123")
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,22 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun foo(default: String) {
assertEquals("123", default)
testRenamed("default", { default })
}
fun test() {
foo("123")
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,22 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun foo(`false`: String) {
assertEquals("123", `false`)
testRenamed("false", { `false` })
}
fun test() {
foo("123")
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,22 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
fun foo(`finally`: String) {
assertEquals("123", `finally`)
testRenamed("finally", { `finally` })
}
fun test() {
foo("123")
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val t: Int = 0
fun test() {
testRenamed("enum", { @enum while (false) {} })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val t: Int = 0
fun test() {
testRenamed("eval", { @eval while (false) {} })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val t: Int = 0
fun test() {
testRenamed("if", { @`if` while (false) {} })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val t: Int = 0
fun test() {
testRenamed("in", { @`in` while (false) {} })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val `try`: Int = 0
fun test() {
testNotRenamed("try", { `try` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val `var`: Int = 0
fun test() {
testNotRenamed("var", { `var` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val with: Int = 0
fun test() {
testNotRenamed("with", { with })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
val yield: Int = 0
fun test() {
testNotRenamed("yield", { yield })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
var `break`: Int = 0
fun test() {
testNotRenamed("break", { `break` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
var `catch`: Int = 0
fun test() {
testNotRenamed("catch", { `catch` })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
var Kotlin: Int = 0
fun test() {
testNotRenamed("Kotlin", { Kotlin })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,19 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
class object {
var NaN: Int = 0
fun test() {
testNotRenamed("NaN", { NaN })
}
}
}
fun box(): String {
TestClass.test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val `continue`: Int = 0
fun test() {
testNotRenamed("continue", { `continue` })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val `do`: Int = 0
fun test() {
testNotRenamed("do", { `do` })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val function: Int = 0
fun test() {
testNotRenamed("function", { function })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
val implements: Int = 0
fun test() {
testNotRenamed("implements", { implements })
}
}
fun box(): String {
TestClass().test()
return "OK"
}
@@ -0,0 +1,17 @@
package foo
// NOTE THIS FILE IS AUTO-GENERATED by the generateTestDataForReservedWords.kt. DO NOT EDIT!
class TestClass {
var `false`: Int = 0
fun test() {
testNotRenamed("false", { `false` })
}
}
fun box(): String {
TestClass().test()
return "OK"
}

Some files were not shown because too many files have changed in this diff Show More