Files
kotlin-fork/compiler/testData/diagnostics/tests/generics/projectionsScope/MLOut.kt
T
Denis Zharkov e2c02f825f Refine member scope for types with projections
Instead of erasing descriptors with conflicting substitution,
use invariant CapturedType(<projection>) as replacement for type parameter
within default member scope.

After substitution leave such types 'as is' everywhere except return types,
use common approximation for them.

 #KT-9294 In Progress
 #KT-5411 Fixed
 #KT-8647 Fixed

 #KT-9462 Fixed
 #KT-9893 Fixed
 #KT-7581 Fixed
 #KT-7296 In Progress
2015-12-28 11:13:37 +03:00

19 lines
455 B
Kotlin
Vendored

// !CHECK_TYPE
// FILE: A.java
public class A {
public java.util.List<? extends CharSequence> foo() {}
}
// FILE: main.kt
fun foo2(x: A, y: MutableList<out CharSequence>) {
x.foo().isEmpty()
x.foo().get(0) checkType { _<CharSequence>() }
x.foo().iterator() checkType { _<MutableIterator<CharSequence>>() }
y.isEmpty()
y.get(0) checkType { _<CharSequence>() }
y.iterator() checkType { _<MutableIterator<CharSequence>>() }
}