[FIR] Add constraint to flexible type for declared argument for java parameter

This commit is contained in:
Dmitriy Novozhilov
2020-03-25 18:04:19 +03:00
parent 3acb64c536
commit 48fb279721
24 changed files with 79 additions and 58 deletions
@@ -1,6 +1,6 @@
public open class A<T> : R|kotlin/Any| {
public open class A<T : R|ft<kotlin/Any, kotlin/Any?>!|> : R|kotlin/Any| {
public open fun foo(t: R|ft<T, T?>!|): R|ft<T, T?>!|
public constructor<T>(): R|A<T>|
public constructor<T : R|ft<kotlin/Any, kotlin/Any?>!|>(): R|A<T>|
}
@@ -1,10 +1,10 @@
public abstract interface Diagnostic : R|kotlin/Any| {
}
public abstract interface DiagnosticWithParameters1<E, A> : R|jvm/Diagnostic| {
public abstract interface DiagnosticWithParameters1<E : R|ft<kotlin/Any, kotlin/Any?>!|, A : R|ft<kotlin/Any, kotlin/Any?>!|> : R|jvm/Diagnostic| {
public abstract fun getA(): R|ft<A, A?>!|
}
public abstract interface DiagnosticWithParameters2<E, A, B> : R|jvm/Diagnostic| {
public abstract interface DiagnosticWithParameters2<E : R|ft<kotlin/Any, kotlin/Any?>!|, A : R|ft<kotlin/Any, kotlin/Any?>!|, B : R|ft<kotlin/Any, kotlin/Any?>!|> : R|jvm/Diagnostic| {
public abstract fun getA(): R|ft<A, A?>!|
public abstract fun getB(): R|ft<B, B?>!|
@@ -3,5 +3,5 @@ FILE: test.kt
^select R|<local>/x|
}
public final fun test(d1: R|jvm/DiagnosticWithParameters1<*, *>|, d2: R|jvm/DiagnosticWithParameters2<*, *, *>|): R|kotlin/Unit| {
lval res: R|ft<kotlin/Any?, kotlin/Any?>?| = R|jvm/select|<R|ft<kotlin/Any?, kotlin/Any?>?|>(R|<local>/d1|.R|jvm/DiagnosticWithParameters1.a|, R|<local>/d2|.R|jvm/DiagnosticWithParameters2.b|)
lval res: R|ft<kotlin/Any, kotlin/Any?>!| = R|jvm/select|<R|ft<kotlin/Any, kotlin/Any?>!|>(R|<local>/d1|.R|jvm/DiagnosticWithParameters1.a|, R|<local>/d2|.R|jvm/DiagnosticWithParameters2.b|)
}