Fix reporting of EXPECTING_PARAMETER/RETURN_TYPE_MISMATCH
This commit is contained in:
+2
-2
@@ -215,7 +215,7 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
||||
if (typeReference != null) {
|
||||
type = context.expressionTypingServices.getTypeResolver().resolveType(context.scope, typeReference, context.trace, true);
|
||||
if (expectedType != null) {
|
||||
if (!JetTypeChecker.INSTANCE.isSubtypeOf(type, expectedType)) {
|
||||
if (!JetTypeChecker.INSTANCE.isSubtypeOf(expectedType, type)) {
|
||||
context.trace.report(EXPECTED_PARAMETER_TYPE_MISMATCH.on(declaredParameter, expectedType));
|
||||
}
|
||||
}
|
||||
@@ -280,7 +280,7 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
||||
context.expressionTypingServices.checkFunctionReturnType(expression.getFunctionLiteral(), context.replaceScope(functionInnerScope).
|
||||
replaceExpectedType(returnType).replaceBindingTrace(temporaryTrace), temporaryTrace);
|
||||
if (expectedReturnType != null) {
|
||||
if (!JetTypeChecker.INSTANCE.isSubtypeOf(expectedReturnType, returnType)) {
|
||||
if (!JetTypeChecker.INSTANCE.isSubtypeOf(returnType, expectedReturnType)) {
|
||||
temporaryTrace.report(EXPECTED_RETURN_TYPE_MISMATCH.on(returnTypeRef, expectedReturnType));
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -8,12 +8,12 @@ fun foo(f: (Trait) -> Trait) = f
|
||||
|
||||
fun test(s: Sub) {
|
||||
foo {
|
||||
(<!EXPECTED_PARAMETER_TYPE_MISMATCH!>t: Super<!>): <!EXPECTED_RETURN_TYPE_MISMATCH!>Sub<!> -> s
|
||||
(t: Super): Sub -> s
|
||||
}
|
||||
foo {
|
||||
(t: Trait): Trait -> s
|
||||
}
|
||||
foo {
|
||||
(t: Sub): Super -> s
|
||||
(<!EXPECTED_PARAMETER_TYPE_MISMATCH!>t: Sub<!>): <!EXPECTED_RETURN_TYPE_MISMATCH!>Super<!> -> s
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user