ac4ffd7d2c
#KT-4298 fixed
219 lines
5.8 KiB
Kotlin
219 lines
5.8 KiB
Kotlin
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())
|
|
|
|
//TODO inner class
|
|
// assertEquals("Class.InnerClass().a", Class().InnerClass("Class.InnerClass().a").a)
|
|
// assertEquals("Class.InnerClass().b", Class().InnerClass("something").b)
|
|
// assertEquals(66, Class().InnerClass("something").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 trit
|
|
|
|
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";
|
|
}
|
|
|
|
native
|
|
object Object {
|
|
object Object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
|
|
native("AnotherClass")
|
|
class Class(val a: String) {
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
}
|
|
|
|
class Class(val a: String) {
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
trait Trait {
|
|
val a: String
|
|
var b: String
|
|
fun test(): Int = noImpl
|
|
|
|
class 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
|
|
}
|
|
|
|
native("SomeClass")
|
|
class Class {
|
|
object Object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
|
|
class Class(val a: String) {
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
inner class InnerClass(val a: String) {
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
|
|
trait Trait {
|
|
val a: String
|
|
var b: String
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
class object {
|
|
native("aaa")
|
|
val a: Trait = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
native
|
|
trait Trait {
|
|
native("SomeObject")
|
|
object Object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
|
|
class Class(val a: String) {
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
native("SomeTrait")
|
|
trait Trait {
|
|
val a: String
|
|
var b: String
|
|
fun test(): Int = noImpl
|
|
|
|
class object {
|
|
val a: String = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|
|
|
|
class object {
|
|
val a: Trait = noImpl
|
|
var b: String = noImpl
|
|
fun test(): Int = noImpl
|
|
}
|
|
}
|