On Mon, 29 Nov 2021 19:54:02 GMT, Joe Darcy <da...@openjdk.org> wrote:
>> Hi, >> >> Please review this PR which is basically rewriting some redundant boolean >> expressions in the compiler. >> >> TIA > > make/langtools/tools/compileproperties/CompileProperties.java line 187: > >> 185: } >> 186: if ( ok && contents != null ) { >> 187: String tokens[] = (new >> String(contents)).split("\\s+"); > > So the intended composite predicate here is thought to be > ok == true && contents != null > which is equivalent to > ok && contents != null. > The semantics of the current code are equivalent to just > contents != null > right? The semantics is definitely changed (considering the first branch was always true originally) but it may be the original implementation being incorrect, > src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java line > 1316: > >> 1314: public void visitReference(JCMemberReference tree) { >> 1315: if (sRet.hasTag(VOID)) { >> 1316: result = true; > > Isn't the equivalent statement to > result &= true > just > result > ? Agreeing with jddarcy: `a & true === a` so current code just keeps the value of `result` while the new one sets `result` to `true`. ------------- PR: https://git.openjdk.java.net/jdk/pull/6599