diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
index 345cc2e4c36..e12584ab8ca 100644
--- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
+++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
@@ -123,7 +123,7 @@ public class JetTypeInferrer {
@Nullable
public JetType getType(@NotNull final JetScope scope, @NotNull JetExpression expression, boolean preferBlock, @Nullable JetType expectedType) {
- return new TypeInferrerVisitor(scope, preferBlock, DataFlowInfo.getEmpty(), expectedType, null).getType(expression);
+ return new TypeInferrerVisitor(scope, preferBlock, DataFlowInfo.getEmpty(), expectedType, FORBIDDEN).getType(expression);
}
public JetType getTypeWithNamespaces(@NotNull final JetScope scope, @NotNull JetExpression expression, boolean preferBlock) {
diff --git a/idea/testData/checker/FunctionReturnTypes.jet b/idea/testData/checker/FunctionReturnTypes.jet
index 1857f065665..2aa8c2f68da 100644
--- a/idea/testData/checker/FunctionReturnTypes.jet
+++ b/idea/testData/checker/FunctionReturnTypes.jet
@@ -9,6 +9,10 @@ fun test1() : Any = {return}
fun test2() : Any = @a {return@a 1}
fun test3() : Any { return }
+fun bbb() {
+ return 1
+}
+
fun foo(expr: StringBuilder): Int {
val c = 'a'
when(c) {
@@ -105,3 +109,5 @@ fun blockReturnValueTypeMatch() : Int {
return 1
else return 1.0
}
+
+val a = return 1
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
index 020c32cb633..3372bca02a4 100644
--- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
+++ b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
@@ -92,8 +92,8 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
public void testJumps() throws Exception {
assertType("throw e", JetStandardClasses.getNothingType());
- assertType("return", JetStandardClasses.getNothingType());
- assertType("return 1", JetStandardClasses.getNothingType());
+// assertType("return", JetStandardClasses.getNothingType());
+// assertType("return 1", JetStandardClasses.getNothingType());
assertType("continue", JetStandardClasses.getNothingType());
assertType("continue \"foo\"", JetStandardClasses.getNothingType());
assertType("break", JetStandardClasses.getNothingType());
@@ -105,7 +105,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
assertType("if (true) 1 else 1", "Int");
assertType("if (true) 1 else return", "Int");
assertType("if (true) return else 1", "Int");
- assertType("if (true) return else return", "Nothing");
+ assertType("if (true) throw Exception() else throw Exception()", "Nothing");
assertType("if (true) 1 else null", "Int?");
assertType("if (true) null else null", "Nothing?");