FIR: resolve bounds of function type arguments

This commit is contained in:
Mikhail Glukhikh
2018-04-03 21:35:27 +03:00
parent 6c3fe5dc98
commit ea86c3d2b3
9 changed files with 65 additions and 6 deletions
+5
View File
@@ -0,0 +1,5 @@
open class Base<T>(val x: T)
class Derived<T : Any>(x: T) : Base<T>(x)
fun <T : Any> create(x: T): Derived<T> = Derived(x)
+12
View File
@@ -0,0 +1,12 @@
FILE: derivedClass.kt
<T> public? open class Base {
public? constructor(x: R|T|)
}
<T : R|kotlin/Any|> public? final class Derived : R|Base<T>| {
public? constructor(x: R|T|): super(STUB)
}
<T : R|kotlin/Any|> public? final? function create(x: R|T|): R|Derived<T>| {
STUB
}
+1 -1
View File
@@ -1,7 +1,7 @@
FILE: genericFunctions.kt
public? abstract interface Any {
}
<reified T : Any> public? final? inline function safeAs R|Any|.(): R|T| {
<reified T : R|Any|> public? final? inline function safeAs R|Any|.(): R|T| {
STUB
}
public? abstract class Summator {
+7
View File
@@ -0,0 +1,7 @@
abstract class Base(val s: String)
class Outer {
class Derived(s: String) : Base(s)
object Obj : Base("")
}
+15
View File
@@ -0,0 +1,15 @@
FILE: nestedClass.kt
public? abstract class Base {
public? constructor(s: R|kotlin/String|)
}
public? final class Outer {
public? final class Derived : R|Base| {
public? constructor(s: R|kotlin/String|): super(STUB)
}
public? final object Obj : R|Base| {
}
}