< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java
Print this page
rev 57740 : [mq]: 8237528
@@ -168,12 +168,15 @@
VarSymbol bindingVar = bindingContext.bindingDeclared(patt.symbol);
if (bindingVar != null) { //TODO: cannot be null here?
JCAssign fakeInit = (JCAssign)make.at(tree.pos).Assign(
make.Ident(bindingVar), convert(make.Ident(temp), castTargetType)).setType(bindingVar.erasure(types));
- result = makeBinary(Tag.AND, (JCExpression)result,
- makeBinary(Tag.EQ, fakeInit, convert(make.Ident(temp), castTargetType)));
+ LetExpr nestedLE = make.LetExpr(List.of(make.Exec(fakeInit)),
+ make.Literal(true));
+ nestedLE.needsCond = true;
+ nestedLE.setType(syms.booleanType);
+ result = makeBinary(Tag.AND, (JCExpression)result, nestedLE);
}
result = make.at(tree.pos).LetExpr(make.VarDef(temp, translatedExpr), (JCExpression)result).setType(syms.booleanType);
((LetExpr) result).needsCond = true;
} else {
super.visitTypeTest(tree);
< prev index next >