e6b5cb5216
Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
29 lines
841 B
Kotlin
Vendored
29 lines
841 B
Kotlin
Vendored
// !WITH_NEW_INFERENCE
|
|
// !CHECK_TYPE
|
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
|
// FILE: main.kt
|
|
class Inv<T>(val x: T)
|
|
|
|
class A<T : Inv<in T>> {
|
|
fun foo(): T = null!!
|
|
}
|
|
|
|
class Inv2<<!FINITE_BOUNDS_VIOLATION!>T : Inv2<in T><!>>(val x: T)
|
|
|
|
fun main(a: A<*>, j: JavaClass<*>, i2: Inv2<*>) {
|
|
// Probably it's too restrictive to suppose star projection type here as Any?,
|
|
// but looks like we can refine it later
|
|
a.foo() checkType { _<Any?>() }
|
|
j.foo() checkType { _<Any?>() }
|
|
i2.x checkType { _<Any?>() }
|
|
|
|
j.bar(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!>, <!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>Any()<!>)
|
|
j.bar(null)
|
|
}
|
|
|
|
// FILE: JavaClass.java
|
|
public class JavaClass<T extends JavaClass<? super T>> {
|
|
public void bar(T... x) {}
|
|
public T foo() {}
|
|
}
|