[FIR JS] Prepare the test data for FIR

This commit is contained in:
Nikolay Lunyak
2023-01-03 13:24:08 +02:00
committed by Space Team
parent 0e38d0ebd2
commit 73c89a5d9d
181 changed files with 3790 additions and 10 deletions
@@ -0,0 +1,18 @@
interface I {
fun foo()
}
interface J {
@JsName("bar")
fun foo()
}
interface K : I, J {
override fun foo()
}
interface L : K {
override fun foo()
fun bar()
}
@@ -0,0 +1,56 @@
class C {
class prototype
class length
class `$metadata$`
fun constructor() {}
}
class D {
private class prototype
private class length
private class `$metadata$`
private fun constructor() {}
}
class E {
@JsName("prototype")
class D
@JsName("constructor")
fun f() {}
}
class F {
@JsName("A")
class prototype
@JsName("B")
class length
@JsName("f")
fun constructor() {}
}
class prototype
class length
fun constructor() {
}
fun f() {
class prototype
class length
fun constructor() {}
}
external interface Object {
val constructor: Any?
}
@@ -0,0 +1,5 @@
package foo
class A(val x: Int)
fun A() {}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package foo
@JsName("B") class A(val x: Int)
@@ -0,0 +1,7 @@
package foo
class A {
fun bar() = 23
val bar = 23
}
@@ -0,0 +1,23 @@
interface A {
@JsName("foo") fun f()
}
interface B {
@JsName("foo") fun g()
}
class C : A, B {
override fun f() {}
override fun g() {}
}
abstract class D : A, B
open class E {
open fun f() {}
open fun g() {}
}
class F : E(), A, B
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: first.kt
package foo
@@ -0,0 +1,8 @@
package foo
class A
fun A.get_bar() = 23
val A.bar: Int
get() = 42
@@ -0,0 +1,25 @@
private fun ` .private `(): String = TODO("")
fun ` .public `(): String = TODO("")
@JsName(" __ ")
fun foo(): String = TODO("")
@JsName(" ___ ")
private fun bar(): String = TODO("")
@JsName("validName")
private fun ` .private with @JsName `(): String = TODO("")
private class ` .private class ` {
val ` .field. ` = ""
}
val x: Int
@JsName(".")
get() = TODO("")
fun box(x: dynamic) {
x.`foo-bar`()
x.`ba-z`
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// SKIP_TXT
// IGNORE_BACKEND: JS
// !LANGUAGE: +JsAllowInvalidCharsIdentifiersEscaping
@@ -0,0 +1,3 @@
package `//`
class A
@@ -0,0 +1,9 @@
package foo
open class Super {
fun foo() = 23
}
class Sub : Super() {
@JsName("foo") fun bar() = 42
}
@@ -0,0 +1,5 @@
package foo
@JsName("x") fun foo(x: Int) = x
@JsName("x") fun bar() = 42
@@ -0,0 +1,5 @@
package foo
@JsName("bar") fun foo(x: Int) = x
fun bar() = 42
@@ -0,0 +1,23 @@
package foo
class A {
var x: Int
@JsName("get_x") get() = 23
set(value) {}
var y: Int
get() = 23
@JsName("set_y") set(value) {}
var z: Int
@JsName("get_z") get() = 23
@JsName("set_z") set(value) {}
}
var xx: Int
@JsName("get_xx") get() = 23
set(value) {}
var A.ext: Int
@JsName("get_ext") get() = 23
set(value) {}
@@ -0,0 +1,7 @@
package foo
class A {
var x: Int
@JsName("xx") get() = 0
@JsName("xx") set(value) {}
}
@@ -0,0 +1,19 @@
package foo
open class A {
@JsName("foo_") open fun foo() = 23
@JsName("bar_") open val bar = 123
open val baz: Int
@JsName("getBaz_") get() = 55
}
class B : A() {
@JsName("foo__") override fun foo() = 42
@JsName("bar__") override val bar = 142
override val baz: Int
@JsName("getBaz__") get() = 155
}
@@ -0,0 +1,21 @@
package foo
class A {
@JsName("x_") val x: Int
@JsName("get_x") get() = 23
@JsName("y_") val y = 0
@JsName("m_") var m: Int
@JsName("get_m") get() = 23
@JsName("set_m") set(value) {}
}
@JsName("xx_") val xx: Int
@JsName("get_xx") get() = 23
@JsName("yy_") val yy = 0
@JsName("mm_") var mm: Int
@JsName("get_mm") get() = 23
@JsName("set_mm") set(value) {}
@@ -0,0 +1,3 @@
package foo
class A @JsName("B") constructor()
@@ -0,0 +1,9 @@
package foo
class A
@JsName("xx") val A.x: Int
get() = 23
@property:JsName("yy") val A.y: Int
get() = 42
@@ -0,0 +1,5 @@
class A {
@property:JsName("x_") @get:JsName("getX_") val x: Int = 0
@get:JsName("getY_") var y: Int = 0
}
@@ -0,0 +1,7 @@
// !DIAGNOSTICS: -NO_VALUE_FOR_PARAMETER, -CONSTANT_EXPECTED_TYPE_MISMATCH
// This should not crash, see KT-14752
package foo
@JsName fun foo(x: Int) = x
@JsName(<!ARGUMENT_TYPE_MISMATCH!>23<!>) fun bar(x: Int) = x
@@ -0,0 +1,5 @@
package foo
fun bar(x: Int) = x
fun `bar_za3lpa$`() = 42
@@ -0,0 +1,21 @@
interface I {
@JsName("bar")
fun foo()
@JsName("foo")
fun bar()
}
interface J {
fun foo()
fun bar()
}
class A : I, J {
// Duplicate diagnostics are expected here, since `bar()` function gets both `foo` and `bar` names and clashes with both
// names of `foo()` function.
override fun bar() {}
override fun foo() {}
}
@@ -0,0 +1,9 @@
external open class A {
open fun f(x: Int): Unit
open fun f(x: String): Unit
}
class InheritClass : A() {
override fun f(x: Int): Unit { }
}
@@ -0,0 +1,11 @@
// FILE: foo.kt
package foo
fun bar() = 23
// FILE: foobar.kt
package foo.bar
val x = 42
@@ -0,0 +1,11 @@
// FILE: foo.kt
package foo
val bar = 23
// FILE: foobar.kt
package foo.bar
val x = 42
@@ -0,0 +1,5 @@
package foo
@JsName("bar") private fun foo(x: Int) = x
fun bar() = 42
@@ -0,0 +1,9 @@
package foo
interface I {
fun foo() = 23
}
class Sub : I {
var foo = 42
}
@@ -0,0 +1,9 @@
package foo
open class Super {
val foo = 23
}
class Sub : Super() {
fun foo() = 42
}
@@ -0,0 +1,7 @@
package foo
class A(val x: String) {
@JsName("aa") constructor(x: Int) : this("int $x")
}
fun aa() {}
@@ -0,0 +1,5 @@
package foo
fun bar() = 23
val bar = 32