Community
Participate
Working Groups
Build 2.1-M3 When stepping through code like: if (this.binding.declaringClass.isLocalType() && !currentScope.isDefinedInType(this.binding.declaringClass)) { ... } where the condition evaluates to true, the first line is highlighted again after the second one has completed. Seems non optimal.
This is due to the codeStream.recordPositionsFrom(pc, this.sourceStart); at the end of the AND_AND_Expression code generation. The source start of this expression is on the same line than the if keyword. Therefore we explicitely ask the compiler to remember that the last pc (position 12() should be mapped to the start of the && expression. If we don't want it, we should remove this line.
Or if we don't want to remove these calls, we need to ensure that we don't add a new entry when an entry for the corresponding pc already exists.
Extra bytecodes associated with optimized boolean code gen should only be appended to existing entries, and not recorded individually. Need some testing.
Fixed and released in 2.1 stream. Regression tests added.
Verified.