Move everything under kotlin-native folder
I was forced to manually do update the following files, because otherwise they would be ignored according .gitignore settings. Probably they should be deleted from repo. Interop/.idea/compiler.xml Interop/.idea/gradle.xml Interop/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_runtime_1_0_3.xml Interop/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_0_3.xml Interop/.idea/modules.xml Interop/.idea/modules/Indexer/Indexer.iml Interop/.idea/modules/Runtime/Runtime.iml Interop/.idea/modules/StubGenerator/StubGenerator.iml backend.native/backend.native.iml backend.native/bc.frontend/bc.frontend.iml backend.native/cli.bc/cli.bc.iml backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt backend.native/tests/link/lib/foo.kt backend.native/tests/link/lib/foo2.kt backend.native/tests/teamcity-test.property
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package codegen.classDelegation.generic
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
open class Content() {
|
||||
override fun toString() = "OK"
|
||||
}
|
||||
|
||||
interface Box<E> {
|
||||
fun get(): E
|
||||
}
|
||||
|
||||
interface ContentBox<T : Content> : Box<T>
|
||||
|
||||
object Impl : ContentBox<Content> {
|
||||
override fun get(): Content = Content()
|
||||
}
|
||||
|
||||
class ContentBoxDelegate<T : Content>() : ContentBox<T> by (Impl as ContentBox<T>)
|
||||
|
||||
fun box() = ContentBoxDelegate<Content>().get().toString()
|
||||
|
||||
@Test fun runTest() {
|
||||
println(box())
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package zzz
|
||||
|
||||
interface I {
|
||||
fun foo(): Int
|
||||
}
|
||||
|
||||
open class A : I {
|
||||
override fun foo() = 42
|
||||
}
|
||||
|
||||
open class B : I by A() {
|
||||
val x = 117
|
||||
val y = "zzz"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
import zzz.*
|
||||
|
||||
class C : B() {
|
||||
val a = "qxx"
|
||||
val b = 123
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val c = C()
|
||||
println(c.a)
|
||||
println(c.b)
|
||||
println(c.foo())
|
||||
println(c.x)
|
||||
println(c.y)
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package codegen.classDelegation.method
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
interface A<T> {
|
||||
fun foo(): T
|
||||
}
|
||||
|
||||
class B : A<String> {
|
||||
override fun foo() = "OK"
|
||||
}
|
||||
|
||||
class C(a: A<String>) : A<String> by a
|
||||
|
||||
fun box(): String {
|
||||
val c = C(B())
|
||||
val a: A<String> = c
|
||||
return c.foo() + a.foo()
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
println(box())
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package codegen.classDelegation.property
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
interface A {
|
||||
val x: Int
|
||||
}
|
||||
|
||||
class C: A {
|
||||
override val x: Int = 42
|
||||
}
|
||||
|
||||
class Q(a: A): A by a
|
||||
|
||||
fun box(): String {
|
||||
val q = Q(C())
|
||||
val a: A = q
|
||||
return q.x.toString() + a.x.toString()
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
println(box())
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package codegen.classDelegation.withBridge
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
interface A<T> {
|
||||
fun foo(t: T): String
|
||||
}
|
||||
|
||||
interface B {
|
||||
fun foo(t: Int) = "B"
|
||||
}
|
||||
|
||||
class Z : B
|
||||
|
||||
class Z1 : A<Int>, B by Z()
|
||||
|
||||
fun box(): String {
|
||||
val z1 = Z1()
|
||||
val z1a: A<Int> = z1
|
||||
val z1b: B = z1
|
||||
|
||||
return when {
|
||||
z1.foo( 0) != "B" -> "Fail #1"
|
||||
z1a.foo( 0) != "B" -> "Fail #2"
|
||||
z1b.foo( 0) != "B" -> "Fail #3"
|
||||
else -> "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
println(box())
|
||||
}
|
||||
Reference in New Issue
Block a user