line numbers policy change for "multiline" expressions
Anna Kozlova
anna.kozlova at jetbrains.com
Mon Jan 27 03:32:13 PST 2014
Hi all,
Sorry if it was already discussed.
Expressions which span over multiple lines are compiled to different lines
and in previous versions they were all merged to the 'outer call' line.
E.g. for code
public static void main(String[] args) {
foo(bar1(),
bar());
}
Jdk 7:
LINENUMBER 15 L1
INVOKESTATIC start/LineNumbers.bar1 ()Ljava/lang/String;
INVOKESTATIC start/LineNumbers.bar ()Ljava/lang/String;
INVOKESTATIC start/LineNumbers.foo
(Ljava/lang/String;Ljava/lang/String;)V
Jdk 8:
L1
LINENUMBER 15 L1
INVOKESTATIC start/LineNumbers.bar1 ()Ljava/lang/String;
L2
LINENUMBER 16 L2
INVOKESTATIC start/LineNumbers.bar ()Ljava/lang/String;
L3
LINENUMBER 15 L3
INVOKESTATIC start/LineNumbers.foo
(Ljava/lang/String;Ljava/lang/String;)V
Currently this breaks our debugger and it would be great to know if this
behavior won't change in the release version.
Thank you,
Anna
More information about the lambda-dev
mailing list