提交 1fa46986 编写于 作者: S Svetlana Isakova

KT-1778 Automatically cast error

 #KT-1778 fixed
上级 08e18e5d
......@@ -48,7 +48,7 @@ public class DataFlowUtils {
@NotNull
public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) {
if (condition == null) return context.dataFlowInfo;
final Ref<DataFlowInfo> result = new Ref<DataFlowInfo>(context.dataFlowInfo);
final Ref<DataFlowInfo> result = new Ref<DataFlowInfo>(null);
condition.accept(new JetVisitorVoid() {
@Override
public void visitIsExpression(JetIsExpression expression) {
......@@ -148,7 +148,7 @@ public class DataFlowUtils {
if (result.get() == null) {
return context.dataFlowInfo;
}
return result.get();
return context.dataFlowInfo.and(result.get());
}
@Nullable
......
//KT-1778 Automatically cast error
package kt1778
fun main(args : Array<String>) {
val x = args[0]: Any
if(x is java.lang.CharSequence) {
if ("a" == x) x.length() else x.length() // OK
if ("a" == x || "b" == x) x.length() else x.length() // < THEN ERROR
if ("a" == x && "a" == x) x.length() else x.length() // < ELSE ERROR
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册