KT-1778 Automatically cast error
#KT-1778 fixed
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
//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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user