Fix supertypes calculation for types with projections

Use captured types as replacement for non top-level entries

 #KT-7296 Fixed
This commit is contained in:
Denis Zharkov
2015-12-23 12:59:42 +03:00
parent 397d2ca312
commit 722a152a74
11 changed files with 139 additions and 7 deletions
@@ -0,0 +1,14 @@
// !CHECK_TYPE
public abstract class A<E> {
fun bar(): String = ""
}
public class B<F> : A<B<F>>()
fun test(b: B<*>) {
// Here `bar` could have dispatch receiver parameter type 'A<B<Captured(*)>>', but it wouldn't work as
// since 'b' has type 'A<out B<*>>', so we should approximate dispatch receiver PARAMETER type to make it accept original receiver
b.bar()
b.bar() checkType { _<String>() }
}