fixed bug: 'isStatement' for function body == 'hasBlockBody'
not vice versa
This commit is contained in:
+2
-2
@@ -193,7 +193,7 @@ public class ExpressionTypingServices {
|
|||||||
? context.replaceExpectedType(NO_EXPECTED_TYPE)
|
? context.replaceExpectedType(NO_EXPECTED_TYPE)
|
||||||
: context;
|
: context;
|
||||||
|
|
||||||
expressionTypingFacade.getTypeInfo(bodyExpression, newContext, !blockBody);
|
expressionTypingFacade.getTypeInfo(bodyExpression, newContext, blockBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -247,7 +247,7 @@ public class ExpressionTypingServices {
|
|||||||
ExpressionTypingContext context = ExpressionTypingContext.newContext(
|
ExpressionTypingContext context = ExpressionTypingContext.newContext(
|
||||||
this, trace, functionInnerScope, dataFlowInfo, NO_EXPECTED_TYPE, ExpressionPosition.FREE
|
this, trace, functionInnerScope, dataFlowInfo, NO_EXPECTED_TYPE, ExpressionPosition.FREE
|
||||||
);
|
);
|
||||||
JetTypeInfo typeInfo = expressionTypingFacade.getTypeInfo(bodyExpression, context, !function.hasBlockBody());
|
JetTypeInfo typeInfo = expressionTypingFacade.getTypeInfo(bodyExpression, context, function.hasBlockBody());
|
||||||
|
|
||||||
trace.record(STATEMENT, bodyExpression, false);
|
trace.record(STATEMENT, bodyExpression, false);
|
||||||
JetType type = typeInfo.getType();
|
JetType type = typeInfo.getType();
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ open class A(val init: String) {
|
|||||||
|
|
||||||
public var backingField : Int = 0
|
public var backingField : Int = 0
|
||||||
get() = $backingField.myInc
|
get() = $backingField.myInc
|
||||||
set(s) = $backingField = s
|
set(s) { $backingField = s }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
fun foo1() = <!EXPRESSION_EXPECTED!>while (b()) {}<!>
|
||||||
|
|
||||||
|
fun foo2() = <!EXPRESSION_EXPECTED!>for (<!UNUSED_PARAMETER!>i<!> in <!ITERATOR_MISSING!>10<!>) {}<!>
|
||||||
|
|
||||||
|
fun foo3() = when (b()) {
|
||||||
|
true -> 1
|
||||||
|
else -> 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fun b(): Boolean = true
|
||||||
+2
-2
@@ -42,8 +42,8 @@ fun box() : Int {
|
|||||||
|
|
||||||
//More tests
|
//More tests
|
||||||
|
|
||||||
fun test1() = while(true) {}
|
fun test1() { while(true) {} }
|
||||||
fun test2(): Unit = while(true) {}
|
fun test2(): Unit { while(true) {} }
|
||||||
|
|
||||||
fun testCoercionToUnit() {
|
fun testCoercionToUnit() {
|
||||||
val <!UNUSED_VARIABLE!>simple<!>: ()-> Unit = {
|
val <!UNUSED_VARIABLE!>simple<!>: ()-> Unit = {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
package a
|
package a
|
||||||
//+JDK
|
//+JDK
|
||||||
|
|
||||||
fun <T> Array<T>.forEach(operation: (T) -> Unit) : Unit = for (element in this) operation(element)
|
fun <T> Array<T>.forEach(operation: (T) -> Unit) : Unit { for (element in this) operation(element) }
|
||||||
|
|
||||||
fun bar(operation: (String) -> Unit) = operation("")
|
fun bar(operation: (String) -> Unit) = operation("")
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class event<T>()
|
|||||||
|
|
||||||
fun plusAssign(f : (T) -> Unit) = callbacks.add(f)
|
fun plusAssign(f : (T) -> Unit) = callbacks.add(f)
|
||||||
fun minusAssign(f : (T) -> Unit) = callbacks.remove(f)
|
fun minusAssign(f : (T) -> Unit) = callbacks.remove(f)
|
||||||
fun call(value : T) = for(c in callbacks) c(value)
|
fun call(value : T) { for(c in callbacks) c(value) }
|
||||||
}
|
}
|
||||||
|
|
||||||
class MouseMovedEventArgs()
|
class MouseMovedEventArgs()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
fun <T> Iterator<T>.foreach(operation: (element: T) -> Unit) : Unit = while(hasNext()) operation(next())
|
fun <T> Iterator<T>.foreach(operation: (element: T) -> Unit) : Unit { while(hasNext()) operation(next()) }
|
||||||
|
|
||||||
fun <T> Iterator<T>.foreach(operation: (index: Int, element: T) -> Unit) : Unit {
|
fun <T> Iterator<T>.foreach(operation: (index: Int, element: T) -> Unit) : Unit {
|
||||||
var k = 0
|
var k = 0
|
||||||
|
|||||||
@@ -1557,6 +1557,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
doTest("compiler/testData/diagnostics/tests/controlStructures/ForWithoutBraces.kt");
|
doTest("compiler/testData/diagnostics/tests/controlStructures/ForWithoutBraces.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ForbidStatementAsDirectFunctionBody.kt")
|
||||||
|
public void testForbidStatementAsDirectFunctionBody() throws Exception {
|
||||||
|
doTest("compiler/testData/diagnostics/tests/controlStructures/ForbidStatementAsDirectFunctionBody.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kt1075.kt")
|
@TestMetadata("kt1075.kt")
|
||||||
public void testKt1075() throws Exception {
|
public void testKt1075() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/controlStructures/kt1075.kt");
|
doTest("compiler/testData/diagnostics/tests/controlStructures/kt1075.kt");
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ public inline fun String.reverse(): String = StringBuilder(this).reverse().toStr
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/StringTest.kt forEach
|
* @includeFunctionBody ../../test/StringTest.kt forEach
|
||||||
*/
|
*/
|
||||||
public inline fun String.forEach(operation: (Char) -> Unit): Unit = for(c in this) operation(c)
|
public inline fun String.forEach(operation: (Char) -> Unit) { for(c in this) operation(c) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns *true* if all characters match the given *predicate*
|
* Returns *true* if all characters match the given *predicate*
|
||||||
|
|||||||
Reference in New Issue
Block a user