[Commonizer] Kotlin types

This commit is contained in:
Dmitriy Dolovov
2019-09-26 19:09:54 +07:00
parent 310166443a
commit 72869e848d
48 changed files with 1121 additions and 432 deletions
@@ -124,3 +124,26 @@ expect class I<T : I<T>>() {
val property: T
fun function(value: T): T
}
expect interface J1<A> {
fun a(): A
}
expect interface J2<A, B> {
fun a(b: B): A
fun b(a: A): B
}
expect interface J3<A, B, C> {
fun a(b: B, c: C): A
fun b(a: A, c: C): B
fun c(a: A, b: B): C
}
expect class K<A, B : A, C : J1<B>, D : J2<C, A>>() : J3<D, C, B> {
override fun a(b: C, c: B): D
override fun b(a: D, c: B): C
override fun c(a: D, b: C): B
inner class Inner<C, D : C, E : J2<C, D>>() {
fun dependentFunction(value: A): E
fun <A : CharSequence, E : Number> independentFunction(value: A): E
}
}
@@ -634,3 +634,26 @@ actual class I<T : I<T>> actual constructor() {
actual val property: T get() = TODO()
actual fun function(value: T): T = value
}
actual interface J1<A> {
actual fun a(): A
}
actual interface J2<A, B> {
actual fun a(b: B): A
actual fun b(a: A): B
}
actual interface J3<A, B, C> {
actual fun a(b: B, c: C): A
actual fun b(a: A, c: C): B
actual fun c(a: A, b: B): C
}
actual class K<A, B : A, C : J1<B>, D : J2<C, A>> actual constructor() : J3<D, C, B> {
actual override fun a(b: C, c: B): D = TODO()
actual override fun b(a: D, c: B): C = TODO()
actual override fun c(a: D, b: C): B = TODO()
actual inner class Inner<C, D : C, E : J2<C, D>> actual constructor() {
actual fun dependentFunction(value: A): E = TODO()
actual fun <A : CharSequence, E : Number> independentFunction(value: A): E = TODO()
}
}
@@ -634,3 +634,26 @@ actual class I<T : I<T>> actual constructor() {
actual val property: T get() = TODO()
actual fun function(value: T): T = value
}
actual interface J1<A> {
actual fun a(): A
}
actual interface J2<A, B> {
actual fun a(b: B): A
actual fun b(a: A): B
}
actual interface J3<A, B, C> {
actual fun a(b: B, c: C): A
actual fun b(a: A, c: C): B
actual fun c(a: A, b: B): C
}
actual class K<A, B : A, C : J1<B>, D : J2<C, A>> actual constructor() : J3<D, C, B> {
actual override fun a(b: C, c: B): D = TODO()
actual override fun b(a: D, c: B): C = TODO()
actual override fun c(a: D, b: C): B = TODO()
actual inner class Inner<C, D : C, E : J2<C, D>> actual constructor() {
actual fun dependentFunction(value: A): E = TODO()
actual fun <A : CharSequence, E : Number> independentFunction(value: A): E = TODO()
}
}
@@ -634,3 +634,26 @@ class I<T : I<T>> {
val property: T get() = TODO()
fun function(value: T): T = value
}
interface J1<A> {
actual fun a(): A
}
interface J2<A, B> {
actual fun a(b: B): A
actual fun b(a: A): B
}
interface J3<A, B, C> {
actual fun a(b: B, c: C): A
actual fun b(a: A, c: C): B
actual fun c(a: A, b: B): C
}
class K<A, B : A, C : J1<B>, D : J2<C, A>> : J3<D, C, B> {
override fun a(b: C, c: B): D = TODO()
override fun b(a: D, c: B): C = TODO()
override fun c(a: D, b: C): B = TODO()
inner class Inner<C, D : C, E : J2<C, D>> {
fun dependentFunction(value: A): E = TODO()
fun <A : CharSequence, E : Number> independentFunction(value: A): E = TODO()
}
}
@@ -634,3 +634,26 @@ class I<T : I<T>> {
val property: T get() = TODO()
fun function(value: T): T = value
}
interface J1<A> {
actual fun a(): A
}
interface J2<A, B> {
actual fun a(b: B): A
actual fun b(a: A): B
}
interface J3<A, B, C> {
actual fun a(b: B, c: C): A
actual fun b(a: A, c: C): B
actual fun c(a: A, b: B): C
}
class K<A, B : A, C : J1<B>, D : J2<C, A>> : J3<D, C, B> {
override fun a(b: C, c: B): D = TODO()
override fun b(a: D, c: B): C = TODO()
override fun c(a: D, b: C): B = TODO()
inner class Inner<C, D : C, E : J2<C, D>> {
fun dependentFunction(value: A): E = TODO()
fun <A : CharSequence, E : Number> independentFunction(value: A): E = TODO()
}
}