KT-1778 Automatically cast error
#KT-1778 fixed
This commit is contained in:
@@ -48,7 +48,7 @@ public class DataFlowUtils {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) {
|
public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) {
|
||||||
if (condition == null) return context.dataFlowInfo;
|
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() {
|
condition.accept(new JetVisitorVoid() {
|
||||||
@Override
|
@Override
|
||||||
public void visitIsExpression(JetIsExpression expression) {
|
public void visitIsExpression(JetIsExpression expression) {
|
||||||
@@ -148,7 +148,7 @@ public class DataFlowUtils {
|
|||||||
if (result.get() == null) {
|
if (result.get() == null) {
|
||||||
return context.dataFlowInfo;
|
return context.dataFlowInfo;
|
||||||
}
|
}
|
||||||
return result.get();
|
return context.dataFlowInfo.and(result.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@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