Files
kotlin-fork/js/js.translator/testData/box/native/nestedElements.kt
T
Alexey Andreev 79ba6a57d6 JS: report errors on different external items:
* data classes
* val/var parameters of primary constructors
* enum entry with body
* anonymous `init {}` block in classes
2016-12-29 16:00:35 +03:00

211 lines
5.6 KiB
Kotlin
Vendored

package foo
fun box(): String {
// in object
assertEquals("Object.Object.a", Object.Object.a)
assertEquals("Object.Object.b", Object.Object.b)
assertEquals(123, Object.Object.test())
assertEquals("Object.Object.Class().a", Object.Object.Class("Object.Object.Class().a").a)
assertEquals("Object.Object.Class().b", Object.Object.Class("something").b)
assertEquals(42, Object.Object.Class("something").test())
assertEquals("Object.Object.Class.a", Object.Object.Class.a)
assertEquals("Object.Object.Class.b", Object.Object.Class.b)
assertEquals(142, Object.Object.Class.test())
assertEquals("Object.Class().a", Object.Class("Object.Class().a").a)
assertEquals("Object.Class().b", Object.Class("something").b)
assertEquals(42, Object.Class("something").test())
assertEquals("Object.Class.a", Object.Class.a)
assertEquals("Object.Class.b", Object.Class.b)
assertEquals(142, Object.Class.test())
assertEquals("Object.Trait.a", Object.Trait.a)
assertEquals("Object.Trait.b", Object.Trait.b)
assertEquals(324, Object.Trait.test())
assertEquals("Object.a.a", Object.a.a)
assertEquals("Object.a.b", Object.a.b)
assertEquals(34, Object.a.test())
assertEquals("Object.b", Object.b)
assertEquals(23, Object.test())
// in class
assertEquals("Class.Object.a", Class.Object.a)
assertEquals("Class.Object.b", Class.Object.b)
assertEquals(55, Class.Object.test())
assertEquals("Class.Class().a", Class.Class("Class.Class().a").a)
assertEquals("Class.Class().b", Class.Class("something").b)
assertEquals(66, Class.Class("something").test())
assertEquals("Class.Class.a", Class.Class.a)
assertEquals("Class.Class.b", Class.Class.b)
assertEquals(88, Class.Class.test())
assertEquals("Class.Trait.a", Class.Trait.a)
assertEquals("Class.Trait.b", Class.Trait.b)
assertEquals(55, Class.Trait.test())
assertEquals("Class.a.a", Class.a.a)
assertEquals("Class.a.b", Class.a.b)
assertEquals(22, Class.a.test())
assertEquals("Class.b", Class.b)
assertEquals(77, Class.test())
// in trait
assertEquals("Trait.Object.a", Trait.Object.a)
assertEquals("Trait.Object.b", Trait.Object.b)
assertEquals(90, Trait.Object.test())
assertEquals("Trait.Class().a", Trait.Class("Trait.Class().a").a)
assertEquals("Trait.Class().b", Trait.Class("something").b)
assertEquals(66, Trait.Class("something").test())
assertEquals("Trait.Class.a", Trait.Class.a)
assertEquals("Trait.Class.b", Trait.Class.b)
assertEquals(88, Trait.Class.test())
assertEquals("Trait.Trait.a", Trait.Trait.a)
assertEquals("Trait.Trait.b", Trait.Trait.b)
assertEquals(55, Trait.Trait.test())
assertEquals("Trait.a.a", Trait.a.a)
assertEquals("Trait.a.b", Trait.a.b)
assertEquals(22, Trait.a.test())
assertEquals("Trait.b", Trait.b)
assertEquals(277, Trait.test())
return "OK";
}
external object Object {
object Object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
@JsName("AnotherClass")
class Class(a: String) {
val a: String
var b: String = noImpl
fun test(): Int = noImpl
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
}
class Class(a: String) {
val a: String
var b: String = noImpl
fun test(): Int = noImpl
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
interface Trait {
val a: String
var b: String
fun test(): Int
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
val a: Trait = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
@JsName("SomeClass")
external class Class {
object Object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
class Class(a: String) {
val a: String
var b: String = noImpl
fun test(): Int = noImpl
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
interface Trait {
val a: String
var b: String
fun test(): Int
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
companion object {
@JsName("aaa")
val a: Trait = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
external interface Trait {
@JsName("SomeObject")
object Object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
class Class(a: String) {
val a: String
var b: String = noImpl
fun test(): Int = noImpl
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
@JsName("SomeTrait")
interface Trait {
val a: String
var b: String
fun test(): Int
companion object {
val a: String = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}
companion object {
val a: Trait = noImpl
var b: String = noImpl
fun test(): Int = noImpl
}
}