From 328e579852af0bf15b11abeef02ea3d6723f8248 Mon Sep 17 00:00:00 2001 From: Wojciech Lopata Date: Tue, 16 Apr 2013 13:30:21 +0200 Subject: [PATCH] Fix reporting of EXPECTING_PARAMETER/RETURN_TYPE_MISMATCH --- .../types/expressions/ClosureExpressionsTypingVisitor.java | 4 ++-- .../functionLiterals/ExpectedParameterTypeMismatchVariance.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java index 052ce5f1aa4..68c21d8ce92 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java @@ -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)); } } diff --git a/compiler/testData/diagnostics/tests/functionLiterals/ExpectedParameterTypeMismatchVariance.kt b/compiler/testData/diagnostics/tests/functionLiterals/ExpectedParameterTypeMismatchVariance.kt index 26796bbb4d8..1cadc4052fc 100644 --- a/compiler/testData/diagnostics/tests/functionLiterals/ExpectedParameterTypeMismatchVariance.kt +++ b/compiler/testData/diagnostics/tests/functionLiterals/ExpectedParameterTypeMismatchVariance.kt @@ -8,12 +8,12 @@ fun foo(f: (Trait) -> Trait) = f fun test(s: Sub) { foo { - (t: Super): Sub -> s + (t: Super): Sub -> s } foo { (t: Trait): Trait -> s } foo { - (t: Sub): Super -> s + (t: Sub): Super -> s } }