Community
Participate
Working Groups
v_702 This is a fup of bug 102728. BinaryExpressionFragmentBuilder#visit(BinaryExpression, BlockScope) implements its own traversal of binary expressions. As such, it bypasses the safer traversal put in place with CombinedBinaryExpression, hence tends to hit the stack bottom before the 64K limit on method bodies is reached (typically, it takes about six times shorter strings concatenations to break the formatter than it takes to hit the 64K limit). Two possible tracks would be to: - rely upon the regular traversal, hence leveraging CombinedBinaryExpression without being aware of it; - recode the custom traversal so as to explicitly leverage CombinedBinaryExpression and lower the traversal requirements on the stack.
This is fixed in bug 102728. Close as FIXED. See bug 102728 comment 9.
Released for 3.3 M2.
Verified for 3.3 M2 using build I20060918-0010. We no more have the stack overflow. Using the source for FormatterRegressionTests#test625, I noticed that the formatting (default options) took almost five minutes, which was a bit misleading at first (thought I needed to open a new bug). Since the test case code is invalid anyway (far too large a method), I consider it's still OK.