Support for new double colon expressions in type checker

Despite the fact that the LHS of a double colon expression is now KtExpression
instead of KtUserType, we must still consider it a type for callable references
to work. Extract and reuse relevant parts of QualifiedExpressionResolver and
TypeResolver to support this behavior
This commit is contained in:
Alexander Udalov
2016-04-21 18:44:07 +03:00
parent b5388d6a43
commit 693c753988
16 changed files with 445 additions and 107 deletions
@@ -0,0 +1,16 @@
// !CHECK_TYPE
class Foo
fun Foo?.bar() {}
fun test() {
val r1 = Foo ?:: bar
checkSubtype<(Foo?) -> Unit>(r1)
val r2 = Foo ? :: bar
checkSubtype<(Foo?) -> Unit>(r2)
val r3 = Foo ? ? :: bar
checkSubtype<(Foo?) -> Unit>(r3)
}