runtime(java): Allow for org.TopLevelType<T>.NestedType return types
Commit:
https://github.com/vim/vim/commit/36f449871030e012f7bbf71cf227f10fb94a13cd
Author: Aliaksei Budavei <
0x00...@gmail.com>
Date: Tue Feb 10 22:48:57 2026 +0100
runtime(java): Allow for org.TopLevelType<T>.NestedType return types
closes:
https://github.com/vim/vim/issues/19349
Signed-off-by: Aliaksei Budavei <
0x00...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 149f5fd5a..bc874904f 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
" Former Maintainer: Claudio Fleiner <
cla...@fleiner.com>
" Repository:
https://github.com/zzzyxwvut/java-vim.git
-" Last Change: 2025 Oct 08
+" Last Change: 2026 Feb 06
" Please check ":help java.vim" for comments on some of the options
" available.
@@ -37,6 +37,8 @@ set cpo&vim
"""" STRIVE TO REMAIN COMPATIBLE FOR AT LEAST VIM 7.0.
let s:ff = {}
+let s:vv = {}
+let s:vv.ignore_folding = get(g:, 'java_ignore_folding', '')
function! s:ff.LeftConstant(x, y) abort
return a:x
@@ -60,7 +62,7 @@ else
endif
function! s:ff.QueryFoldArgForSyntaxItems(kind) abort
- return stridx(s:java_ignore_folding, a:kind) < 0 ? "fold" : ""
+ return stridx(s:vv.ignore_folding, a:kind) < 0 ? "fold" : ""
endfunction
if !exists("*s:ReportOnce")
@@ -94,8 +96,6 @@ if exists("g:java_foldtext_show_first_or_second_line")
setlocal foldtext=JavaSyntaxFoldTextExpr()
endif
-let s:java_ignore_folding = get(g:, 'java_ignore_folding', '')
-
" Admit the ASCII dollar sign to keyword characters (JLS-17, §3.8):
try
exec 'syntax iskeyword ' . &l:iskeyword . ',$'
@@ -211,6 +211,15 @@ let s:with_html = !exists("g:java_ignore_html")
let s:with_markdown = !exists("g:java_ignore_markdown")
lockvar s:with_html s:with_markdown
+" Note that the delimiting angle brackets are omitted.
+let s:vv.type_param_list = '\%([^(){}]\|
\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!'
+" COMBAK: Revisit reference types once JDK-8259731 and JDK-8316779
+" will have been resolved.
+let s:vv.param_type_head = 'b\%%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%%(\<\K\k*\>\.\)*%s\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>'
+" Allow for org.example.TopLevelType<T>.MemberType return types.
+let s:vv.void_or_param_type = 'void\|\%(' . printf(s:vv.param_type_head, '\%(') . '\%(<' . s:vv.type_param_list . '>\.\=\)\=\)\+\)\%(\[\]\)*'
+let s:vv.param_type_head = printf(s:vv.param_type_head, '')
+
" Java module declarations (JLS-17, §7.7).
"
" Note that a "module-info" file will be recognised with an arbitrary
@@ -344,13 +353,13 @@ if exists("g:java_highlight_generics")
" Match sections of generic methods and constructors and their
" parameterised use.
- exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/' . s:ff.Engine('\%#=2', '') . '\%(^\|\s\)\@' . s:ff.Peek('1', '') . '<=<\%(\%([^(){}]\|
\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\_s\+\%(\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<\%([^(){}]\|
\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\)\=\)\%(\[\]\)*\)\_s\+\)\=\<\K\k*\>\s*(\)\@=/ end=/>/ contains=javaGenerics,@javaTypeParams'
+ exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/' . s:ff.Engine('\%#=2', '') . '\%(^\|\s\)\@' . s:ff.Peek('1', '') . '<=<\%(' . s:vv.type_param_list . '>\_s\+\%(\%(' . s:vv.void_or_param_type . '\)\_s\+\)\=\<\K\k*\>\s*(\)\@=/ end=/>/ contains=javaGenerics,@javaTypeParams'
exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/\%(\%(\<new\|::\|\.\)[[:space:]
]*\)\@' . s:ff.PeekFor('javaTypeParamSection', 80) . '<=<>\@!/ end=/>/ contains=javaGenerics,@javaTypeParams'
for s:ctx in [{'gsg': 'javaGenerics', 'ghg': 'javaGenericsC1', 'csg': 'javaGenericsX', 'c': ''},
\ {'gsg': 'javaGenericsX', 'ghg': 'javaGenericsC2', 'csg': 'javaGenerics', 'c': ' contained'}]
" Match sections of generic types and their parameterised use.
- exec 'syn region ' . s:ctx.gsg . s:ctx.c . ' transparent matchgroup=' . s:ctx.ghg . ' start=/' . s:ff.Engine('\%#=2', '') . '\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\><\%([[:space:]
]*\%([?@]\|\<\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\)\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\)\)\@=/ end=/>/ contains=' . s:ctx.csg . ',@javaTypeParams'
+ exec 'syn region ' . s:ctx.gsg . s:ctx.c . ' transparent matchgroup=' . s:ctx.ghg . ' start=/' . s:ff.Engine('\%#=2', '') . '\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\><\%([[:space:]
]*\%([?@]\|' . s:vv.param_type_head . '\)\)\@=/ end=/>/ contains=' . s:ctx.csg . ',@javaTypeParams'
endfor
unlet s:ctx
@@ -745,8 +754,8 @@ if exists("g:java_highlight_functions")
" "[^=]*", all records with "\<record\s", and let the "*Skip*"
" definitions take care of constructor declarations and enum
" constants (with no support for @Foo(value = "bar")). Also,
- " reject inlined declarations with "[^{]" for signature.
- exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start="' . s:ff.PeekTo('\%(', '') . '^' . s:indent . '\%(<\%(/\*.\{-}\*/\|[^(){}>]\|
\)\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^={]*\%(\<record\)\@' . s:ff.Peek('6', '') . '<!\s' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\K\k*\s*(" end=")" contains=@javaFuncParams'
+ " reject inlined declarations with "[^{;]" for signature.
+ exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start="' . s:ff.PeekTo('\%(', '') . '^' . s:indent . '\%(<\%(/\*.\{-}\*/\|[^(){}>]\|
\)\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^={;]*\%(\<record\)\@' . s:ff.Peek('6', '') . '<!\s' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\K\k*\s*(" end=")" contains=@javaFuncParams'
" As long as package-private constructors cannot be matched with
" javaFuncDef, do not look with javaConstructorSkipDeclarator for
" them. (Approximate "javaTypeParamSection" if necessary.)
@@ -755,9 +764,10 @@ if exists("g:java_highlight_functions")
" javaFuncDef, make related adjustments:
" (1) Claim all enum constants of a line as a unit.
exec 'syn match javaEnumSkipConstant contained transparent /^' . s:indent . '\%(\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\K\k*\s*\%((.*)\)\=\s*[,;({]\s*\)\+/ contains=@javaEnumConstants'
- " (2) Define a syntax group for top level enumerations and tell
- " apart their constants from method declarations.
- exec 'syn region javaTopEnumDeclaration transparent start=/\%(^\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(strictfp\s\+\)\=\<enum\_s\+\)\@' . s:ff.PeekFor('javaTopEnumDeclaration', 80) . '<=\K\k*\%(\_s\+implements\_s.\+\)\=\_s*{/ end=/}/ contains=@javaTop,javaEnumSkipConstant'
+ " (2) Define javaTopEnum{Block,Declaration} for top level enums
+ " and tell apart their constants from method declarations.
+ syn region javaTopEnumBlock contained transparent matchgroup=javaTopEnumBlockStart start="{" end="}" contains=@javaTop,javaEnumSkipConstant
+ exec 'syn match javaTopEnumDeclaration transparent /\%(^\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(strictfp\s\+\)\=\<enum\_s\+\)\@' . s:ff.PeekFor('javaTopEnumDeclaration', 80) . '<=\K\k*\%(\_s\+implements\_s.\+\)\=\_s*{\@=/ nextgroup=javaTopEnumBlock skipwhite skipempty'
" (3) Define a base variant of javaParenT without using @javaTop
" in order to not include javaFuncDef.
syn region javaParenE transparent matchgroup=javaParen start="(" end=")" contains=@javaEnumConstants,javaInParen
@@ -769,7 +779,7 @@ if exists("g:java_highlight_functions")
" Match arbitrarily indented camelCasedName method declarations.
" Match: [@ɐ] [abstract] [<α, β>] Τʬ[<γ>][[][]] μʭʭ(/* ... */);
- exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start=/' . s:ff.Engine('\%#=2', '') . s:ff.PeekTo('\%(', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<\%([^(){}]\|
\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<\%([^(){}]\|
\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\)\=\)\%(\[\]\)*\)\s\+' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams'
+ exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start=/' . s:ff.Engine('\%#=2', '') . s:ff.PeekTo('\%(', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<' . s:vv.type_param_list . '>\s\+\)\=\%(' . s:vv.void_or_param_type . '\)\s\+' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams'
endif
endif
@@ -977,7 +987,7 @@ endif
let b:spell_options = "contained"
let &cpo = s:cpo_save
-unlet s:cpo_save s:ff s:java_ignore_folding s:with_html s:with_markdown
+unlet s:cpo_save s:ff s:vv s:with_html s:with_markdown
" See ":help vim9-mix".
if !has("vim9script")
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_01.dump
index 36fe19daa..84136624f 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_01.dump
@@ -17,4 +17,4 @@
@4|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @51
@2|}| @71
@75
-@57|1|9|,|0|-|1| @7|1|3|%|
+@57|1|9|,|0|-|1| @7|1|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_02.dump
index fbaf73897..f1b32b2a1 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_02.dump
@@ -17,4 +17,4 @@
@75
@2|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@61
| +0#00e0e07&@1|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|a+0#00e0003&|b|s|t|r|a|c|t| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@13
-@57|3|7|,|3| @9|3@1|%|
+@57|3|7|,|3| @9|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_03.dump
index 598d994b5..2b8c8fcf8 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_03.dump
@@ -17,4 +17,4 @@
@2|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@43
| +0#00e0e07&@1|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#00e0e07&|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|f+0#00e0003&|i|n|a|l| +0#00e0e07&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#00e0e07&|s+0#00e0003&|t|r|i|c|t|f|p| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|9@1|_|(|)| +0#0000000&@11
@2|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @56
-@57|5@1|,|3| @9|5|2|%|
+@57|5@1|,|3| @9|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_04.dump
index 9d6ec06e3..19c25ddf5 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_04.dump
@@ -17,4 +17,4 @@
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|c|s|.|s|t|r|e|a|m|(|)|.|f|i|l|t|e|r|(|f|i|l|t|e|r|)| @37
@6|.|c|o|l@1|e|c|t|(|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|C|o|l@1|e|c|t|o|r|s|.|t|o|U|n|m|o|d|i|f|i|a|b|l|e|L|i|s|t|(|)@1|;| @9
@2|}| @71
-@57|7|3|,|3| @9|7|2|%|
+@57|7|3|,|3| @9|5@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_05.dump
index d9e6540f5..b8f560019 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_05.dump
@@ -17,4 +17,4 @@
@4|t+0#00e0003&|r|a|n|s|i|e|n|t| +0#0000000&|S|t|r|i|n|g| |n|a|m|e| |=| |"+0#e000002&@1|;+0#0000000&| @43
@4|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| |{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e|;| |}| @14
@2|}|)|,| |/+0#0000e05&@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1|\|/@1| +0#0000000&@6
-@57|9|1|,|0|-|1| @7|9|1|%|
+@57|9|1|,|0|-|1| @7|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_06.dump
index f0d7c5e6d..6a8a84ca3 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_06.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_06.dump
@@ -7,14 +7,14 @@
@75
| +0#00e0e07&@1|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#00e0e07&|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}| @5
|}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|0|9|,|3| @8|B|o|t|
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C+0#00e0e07&|2|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@58
+|{| @73
+@2|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|2|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @21
+@75
+@1| +0#00e0003&|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @59
+@2|{| @71
+@4|f+0#00e0003&|i|n|a|l| +0#0000000&|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|e|r| |=| @20
+@6|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|e|r|(|)|;| @31
+@75
+@57|1|0|9|,|3| @8|8|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_07.dump
new file mode 100644
index 000000000..bb470b39e
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@4|C+0#00e0e07&|2|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&|.+0#0000000&|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @43
+@4|{| @69
+@6|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @56
+@4>}| @69
+@75
+@4|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|(|)| @36
+@4|{| @69
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|(|)|;| @42
+@4|}| @69
+@2|}| @71
+@75
+| +0#00e0e07&@1|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<+0#00e0003&|A+0#00e0e07&|>+0#00e0003&| +0#00e0e07&|C|2|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b|u|i|l|d|e|r|(|A| |n|a|m|e|)| +0#0000000&@27
+@2|{| @71
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|2|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @29
+@2|}| @71
+|}| @73
+|~+0#4040ff13&| @73
+| +0#0000000&@56|1|2|7|,|5| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_01.dump
index 7108a8dae..7e0ba2409 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_01.dump
@@ -17,4 +17,4 @@
@4|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @51
@2|}| @71
@75
-@57|1|9|,|0|-|1| @7|1|5|%|
+@57|1|9|,|0|-|1| @7|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_02.dump
index 62a1848c3..65a00445c 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_02.dump
@@ -17,4 +17,4 @@
@75
@2|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@61
@2|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|a+0#00e0003&|b|s|t|r|a|c|t| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@13
-@57|3|7|,|3| @9|3|6|%|
+@57|3|7|,|3| @9|2|7|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_03.dump
index b5f1c5def..8b31dc4eb 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_03.dump
@@ -17,4 +17,4 @@
@2|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@43
@2|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#0000000&|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| +0#0000000&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#0000000&|s+0#00e0003&|t|r|i|c|t|f|p| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|9@1|_|(|)| +0#0000000&@11
@2|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @56
-@57|5@1|,|3| @9|5|7|%|
+@57|5@1|,|3| @9|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_04.dump
index beb784a21..2f42c92d4 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_04.dump
@@ -17,4 +17,4 @@
|e+0#00e0003&|n|u|m| +0#0000000&|E|2|$| @66
|{| @73
@2|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|b|e|s|p|o|k|e|"|)+0#e000e06&| +0#0000000&|A|(|"+0#e000002&|a|"|)+0#0000000&|,| @36
-@57|7|3|,|3| @9|7|8|%|
+@57|7|3|,|3| @9|5|9|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_05.dump
index d1e6b0301..4256a37dc 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_05.dump
@@ -17,4 +17,4 @@
@75
@2|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t+0#00e0e07&|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}| @5
|}| @73
-@57|9|1|,|5| @9|B|o|t|
+@57|9|1|,|5| @9|7|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_06.dump
new file mode 100644
index 000000000..57f5db9d9
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_06.dump
@@ -0,0 +1,20 @@
+|}+0&#ffffff0| @73
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C|2|$|A|l|i|a|s|<|T|>| @57
+|{| @73
+@2|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|2|$|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @20
+> @74
+@1| +0#00e0003&|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @59
+@2|{| @71
+@4|f+0#00e0003&|i|n|a|l| +0#0000000&|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T|>| |b|u|i|l|d|e|r| |=| @20
+@6|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<|T|>|b|u|i|l|d|e|r|(|)|;| @31
+@75
+@4|C|2|$|A|l|i|a|s|<|T|>|.|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @42
+@4|{| @69
+@6|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @50
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @56
+@4|}| @69
+@75
+@4|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b|u|i|l|d|(|)| @36
+@4|{| @69
+@57|1|0|9|,|0|-|1| @6|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent2_signature_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_07.dump
new file mode 100644
index 000000000..2a5058c0d
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent2_signature_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|{| @69
+@6|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<|T|>|b|u|i|l|d|(|)|;| @42
+@4|}| @69
+@2|}| @71
+@75
+@2>s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|A|>| |C|2|$|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b+0#00e0e07&|u|i|l|d|e|r|(|A+0#0000000&| |n|a|m|e|)+0#00e0e07&| +0#0000000&@26
+@2|{| @71
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|2|$|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @28
+@2|}| @71
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|2|7|,|3| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_01.dump
index 53d546dc9..e8c7a8d01 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_01.dump
@@ -17,4 +17,4 @@
@8|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @47
@4|}| @69
@75
-@57|1|9|,|0|-|1| @7|1|3|%|
+@57|1|9|,|0|-|1| @7|1|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_02.dump
index 5793cb4fb..73e83cfa8 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_02.dump
@@ -17,4 +17,4 @@
@75
@4|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@59
| +0#00e0e07&@3|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|a+0#00e0003&|b|s|t|r|a|c|t| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@11
-@57|3|7|,|5| @9|3@1|%|
+@57|3|7|,|5| @9|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_03.dump
index 7b3f96937..4b80bff4a 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_03.dump
@@ -17,4 +17,4 @@
@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@41
| +0#00e0e07&@3|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#00e0e07&|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|f+0#00e0003&|i|n|a|l| +0#00e0e07&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#00e0e07&|s+0#00e0003&|t|r|i|c|t|f|p| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|9@1|_|(|)| +0#0000000&@9
@4|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @54
-@57|5@1|,|5| @9|5|2|%|
+@57|5@1|,|5| @9|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_04.dump
index 5b762a676..4559fa09c 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_04.dump
@@ -17,4 +17,4 @@
@4|{| @69
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|c|s|.|s|t|r|e|a|m|(|)|.|f|i|l|t|e|r|(|f|i|l|t|e|r|)| @33
@12|.|c|o|l@1|e|c|t|(|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|C|o|l@1|e|c|t|o|r|s|.|t|o|U|n|m|o|d|i|f|i|a|b|l|e|L|i|s|t|(|)@1|;| @3
-@57|7|3|,|5| @9|7|1|%|
+@57|7|3|,|5| @9|5@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_05.dump
index e194e0fb3..0028091ac 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_05.dump
@@ -17,4 +17,4 @@
@4|E|(|"+0#e000002&|e|"|,+0#0000000&| |n+0#af5f00255&|e|w| +0#0000000&|c+0#00e0003&|h|a|r|[+0#0000000&|]| |{| |'+0#e000002&|a|'|,+0#0000000&| |'+0#e000002&|b|'|,+0#0000000&| |'+0#e000002&|c|'|,+0#0000000&| |'+0#e000002&|d|'| +0#0000000&|}|)|,| |F|(|"+0#e000002&|f|"|,+0#0000000&| |n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| |{| @6
@8|t+0#00e0003&|r|a|n|s|i|e|n|t| +0#0000000&|S|t|r|i|n|g| |n|a|m|e| |=| |"+0#e000002&@1|;+0#0000000&| @39
@8|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| |{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e|;| |}| @10
-@57|9|0|,|1| @9|9|0|%|
+@57|9|0|,|1| @9|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_06.dump
index 39f0d58b2..c87f36d03 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_06.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_06.dump
@@ -8,13 +8,13 @@
@75
| +0#00e0e07&@3|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#00e0e07&|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}| @3
|}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|0|8|,|5| @8|B|o|t|
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C+0#00e0e07&|4|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@58
+|{| @73
+@4|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|4|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @19
+@75
+@1| +0#00e0003&@2|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @57
+@4|{| @69
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|e|r| |=| @16
+@12|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|e|r|(|)|;| @25
+@57|1|0|8|,|5| @8|8|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_07.dump
new file mode 100644
index 000000000..9826a7d06
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@11|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|e|r|(|)|;| @25
+@75
+@8|C+0#00e0e07&|4|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&|.+0#0000000&|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @39
+@8|{| @65
+@12|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @44
+@12>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @50
+@8|}| @65
+@75
+@8|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|(|)| @32
+@8|{| @65
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|(|)|;| @36
+@8|}| @65
+@4|}| @69
+@75
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<+0#00e0003&|A+0#00e0e07&|>+0#00e0003&| +0#00e0e07&|C|4|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b|u|i|l|d|e|r|(|A| |n|a|m|e|)| +0#0000000&@25
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|4|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @25
+@4|}| @69
+|}| @73
+@57|1|2|6|,|1|3| @7|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_01.dump
index 6f98ab866..da3cbc433 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_01.dump
@@ -17,4 +17,4 @@
@8|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @47
@4|}| @69
@75
-@57|1|9|,|0|-|1| @7|1|5|%|
+@57|1|9|,|0|-|1| @7|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_02.dump
index cb22e022e..9af0026f3 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_02.dump
@@ -17,4 +17,4 @@
@75
@4|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@59
@4|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|a+0#00e0003&|b|s|t|r|a|c|t| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@11
-@57|3|7|,|5| @9|3|6|%|
+@57|3|7|,|5| @9|2|7|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_03.dump
index 6fd414a81..7d1f06228 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_03.dump
@@ -17,4 +17,4 @@
@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@41
@4|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#0000000&|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| +0#0000000&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#0000000&|s+0#00e0003&|t|r|i|c|t|f|p| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|9@1|_|(|)| +0#0000000&@9
@4|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @54
-@57|5@1|,|5| @9|5|7|%|
+@57|5@1|,|5| @9|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_04.dump
index 3a060f6dc..22a2123ee 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_04.dump
@@ -17,4 +17,4 @@
@75
|e+0#00e0003&|n|u|m| +0#0000000&|E|4|$| @66
|{| @73
-@57|7|3|,|5| @9|7@1|%|
+@57|7|3|,|5| @9|5|9|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_05.dump
index 056a7d229..12c3ca481 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_05.dump
@@ -17,4 +17,4 @@
@4|p+0#00e0003&|r|i|v|a|t|e| +0#0000000&|<|δ|>| |E|4|$|(|S|t|r|i|n|g| |s|,| |δ| |d|u|m@1|y|)| |{| |t+0#00e0003&|h|i|s|(+0#0000000&|s|)|;| |}| @23
@75
@4|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t+0#00e0e07&|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}| @3
-@57|9|0|,|0|-|1| @7|9|8|%|
+@57|9|0|,|0|-|1| @7|7|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_06.dump
index e4569eae5..5b60ef4df 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_06.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_06.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@3|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t+0#00e0e07&|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}| @3
->}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|0|4|,|1| @8|B|o|t|
+|}| @73
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C|4|$|A|l|i|a|s|<|T|>| @57
+|{| @73
+@4>f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|4|$|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @18
+@75
+@1| +0#00e0003&@2|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @57
+@4|{| @69
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T|>| |b|u|i|l|d|e|r| |=| @16
+@12|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<|T|>|b|u|i|l|d|e|r|(|)|;| @25
+@75
+@8|C|4|$|A|l|i|a|s|<|T|>|.|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @38
+@8|{| @65
+@12|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @44
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @50
+@8|}| @65
+@75
+@8|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b|u|i|l|d|(|)| @32
+@57|1|0|8|,|5| @8|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent4_signature_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_07.dump
new file mode 100644
index 000000000..38310f152
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent4_signature_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b|u|i|l|d|(|)| @32
+@8|{| @65
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<|T|>|b|u|i|l|d|(|)|;| @36
+@8|}| @65
+@4|}| @69
+> @74
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|A|>| |C|4|$|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b+0#00e0e07&|u|i|l|d|e|r|(|A+0#0000000&| |n|a|m|e|)+0#00e0e07&| +0#0000000&@24
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|4|$|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @24
+@4|}| @69
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|2|6|,|0|-|1| @6|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_01.dump
index 016bcd5a2..1cb730a1d 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_01.dump
@@ -17,4 +17,4 @@
@16|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @39
@8|}| @65
@75
-@57|1|9|,|0|-|1| @7|1|3|%|
+@57|1|9|,|0|-|1| @7|1|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_02.dump
index 7eeb96539..108e3406f 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_02.dump
@@ -17,4 +17,4 @@
@75
@8|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@55
| +0#00e0e07&@7|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|a+0#00e0003&|b|s|t|r|a|c|t| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@7
-@57|3|7|,|9| @9|3@1|%|
+@57|3|7|,|9| @9|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_03.dump
index f43e30191..b3d2a9501 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_03.dump
@@ -17,4 +17,4 @@
@8|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@37
| +0#00e0e07&@7|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#00e0e07&|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|f+0#00e0003&|i|n|a|l| +0#00e0e07&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#00e0e07&|s+0#00e0003&|t|r|i|c|t|f|p| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|9@1|_|(|)| +0#0000000&@5
@8|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @50
-@57|5@1|,|9| @9|5|2|%|
+@57|5@1|,|9| @9|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_04.dump
index 212736b04..46a3521c4 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_04.dump
@@ -17,4 +17,4 @@
@8|{| @65
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|c|s|.|s|t|r|e|a|m|(|)|.|f|i|l|t|e|r|(|f|i|l|t|e|r|)| @25
@24|.|c|o|l@1|e|c|t|(|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|C|o|l@1|e|c|t|o|r|s|.|t|o|U|n|m|o|d|i|f|i|a|@+0#4040ff13&@2
-| +0#0000000&@56|7|3|,|9| @9|7|0|%|
+| +0#0000000&@56|7|3|,|9| @9|5|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_05.dump
index 525f5838f..b0b40a17f 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_05.dump
@@ -17,4 +17,4 @@
@8|}|)@1|,| |D|(|"+0#e000002&|d|"|,+0#0000000&| |(|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|B|o@1|l|e|a|n|S|u|p@1|l|i|e|r|)| |(+0#00e0e07&|)| |-|>| +0#0000000&|t+0#e000002&|r|u|e|)+0#0000000&|,| @5
@8|E|(|"+0#e000002&|e|"|,+0#0000000&| |n+0#af5f00255&|e|w| +0#0000000&|c+0#00e0003&|h|a|r|[+0#0000000&|]| |{| |'+0#e000002&|a|'|,+0#0000000&| |'+0#e000002&|b|'|,+0#0000000&| |'+0#e000002&|c|'|,+0#0000000&| |'+0#e000002&|d|'| +0#0000000&|}|)|,| |F|(|"+0#e000002&|f|"|,+0#0000000&| |n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| |{| @2
@16|t+0#00e0003&|r|a|n|s|i|e|n|t| +0#0000000&|S|t|r|i|n|g| |n|a|m|e| |=| |"+0#e000002&@1|;+0#0000000&| @31
-@57|8|9|,|9| @9|8|9|%|
+@57|8|9|,|9| @9|6|9|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_06.dump
index bc43e5f2f..a8e1a18ef 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_06.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_06.dump
@@ -9,12 +9,12 @@
@75
| +0#00e0e07&@7|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#00e0e07&|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}
@1| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|0|7|,|9| @8|B|o|t|
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C+0#00e0e07&|8|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@58
+|{| @73
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|8|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @15
+@75
+@1| +0#00e0003&@6|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @53
+@8|{| @65
+@16|f+0#00e0003&|i|n|a|l| +0#0000000&|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|e|r| |=| @8
+@57|1|0|7|,|9| @8|8|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_07.dump
new file mode 100644
index 000000000..a1facb615
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@15|f+0#00e0003&|i|n|a|l| +0#0000000&|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|e|r| |=| @8
+@24|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|e|r|(|)|;| @13
+@75
+@16|C+0#00e0e07&|8|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&|.+0#0000000&|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @31
+@16|{| @57
+@24>b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @32
+@24|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @38
+@16|}| @57
+@75
+@16|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|(|)| @24
+@16|{| @57
+@24|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|(|)|;| @24
+@16|}| @57
+@8|}| @65
+@75
+| +0#00e0e07&@7|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<+0#00e0003&|A+0#00e0e07&|>+0#00e0003&| +0#00e0e07&|C|8|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b|u|i|l|d|e|r|(|A| |n|a|m|e|)| +0#0000000&@21
+@8|{| @65
+@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|8|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @17
+@8|}| @65
+@57|1|2|5|,|2|5| @7|9@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_08.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_08.dump
new file mode 100644
index 000000000..0ed04ac05
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_08.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|}| @65
+>}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|3|9|,|1| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_01.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_01.dump
index 405d699f4..aec5e2bbf 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_01.dump
@@ -17,4 +17,4 @@
@16|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;| @39
@8|}| @65
@75
-@57|1|9|,|0|-|1| @7|1|5|%|
+@57|1|9|,|0|-|1| @7|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_02.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_02.dump
index aa1634cd3..bc806abeb 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_02.dump
@@ -17,4 +17,4 @@
@75
@8|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@55
@8|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|a+0#00e0003&|b|s|t|r|a|c|t| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@7
-@57|3|7|,|9| @9|3|6|%|
+@57|3|7|,|9| @9|2|7|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_03.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_03.dump
index a5edeb941..fe1c726be 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_03.dump
@@ -17,4 +17,4 @@
@8|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@37
@8|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#0000000&|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| +0#0000000&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#0000000&|s+0#00e0003&|t|r|i|c|t|f|p| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|9@1|_|(|)| +0#0000000&@5
@8|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @50
-@57|5@1|,|9| @9|5|7|%|
+@57|5@1|,|9| @9|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_04.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_04.dump
index 25d651bed..ae5279f50 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_04.dump
@@ -17,4 +17,4 @@
|}| @73
@75
|e+0#00e0003&|n|u|m| +0#0000000&|E|8|$| @66
-@57|7|3|,|9| @9|7@1|%|
+@57|7|3|,|9| @9|5|8|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_05.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_05.dump
index 97f2ea2f0..edae5c09e 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_05.dump
@@ -17,4 +17,4 @@
@8|p+0#00e0003&|r|i|v|a|t|e| +0#0000000&|E|8|$|(|S|t|r|i|n|g| |s|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|s| |=| |s|;| |}| @29
@8|p+0#00e0003&|r|i|v|a|t|e| +0#0000000&|<|δ|>| |E|8|$|(|S|t|r|i|n|g| |s|,| |δ| |d|u|m@1|y|)| |{| |t+0#00e0003&|h|i|s|(+0#0000000&|s|)|;| |}| @19
@75
-@57|8|9|,|9| @9|9|7|%|
+@57|8|9|,|9| @9|7|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_06.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_06.dump
index 860cc4041..c1a60c9b9 100644
--- a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_06.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_06.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
@8|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t+0#00e0e07&|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n|a|m|e|(|)|.|t|o|U|p@1|e|r|C|a|s|e|(|)|;| |}
->}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|0|4|,|1| @8|B|o|t|
+@1| @73
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|C|8|$|A|l|i|a|s|<|T|>| @57
+>{| @73
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |C|8|$|A|l|i|a|s|(|T| |n|a|m|e|)| |{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @14
+@75
+@1| +0#00e0003&@6|c|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @53
+@8|{| @65
+@16|f+0#00e0003&|i|n|a|l| +0#0000000&|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T|>| |b|u|i|l|d|e|r| |=| @8
+@24|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<|T|>|b|u|i|l|d|e|r|(|)|;| @13
+@75
+@16|C|8|$|A|l|i|a|s|<|T|>|.|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| @30
+@16|{| @57
+@24|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @32
+@24|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @38
+@16|}| @57
+@75
+@57|1|0|7|,|1| @8|9|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_indent8_signature_07.dump b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_07.dump
new file mode 100644
index 000000000..c4f82d64c
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_indent8_signature_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@16|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b|u|i|l|d|(|)| @24
+@16|{| @57
+@24|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<|T|>|b|u|i|l|d|(|)|;| @24
+@16|}| @57
+@8>}| @65
+@75
+@8|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|A|>| |C|8|$|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b+0#00e0e07&|u|i|l|d|e|r|(|A+0#0000000&| |n|a|m|e|)+0#00e0e07&| +0#0000000&@20
+@8|{| @65
+@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|C|8|$|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @16
+@8|}| @65
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|2|5|,|9| @8|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_01.dump b/runtime/syntax/testdir/dumps/java_methods_style_01.dump
index 0e350382f..6ac54c627 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_01.dump
@@ -17,4 +17,4 @@
| +0#00e0e07&@7|T|ɐ|g@1|a|b|l|ɘ|[|]| |v|a|l|u|e|(|)|;+0#0000000&| @47
@4|}| @69
@75
-@57|1|9|,|0|-|1| @7|1|8|%|
+@57|1|9|,|0|-|1| @7|1|3|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_02.dump b/runtime/syntax/testdir/dumps/java_methods_style_02.dump
index bcbd5b5c2..6bbadee20 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_02.dump
@@ -17,4 +17,4 @@
@75
@4|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@59
| +0#00e0e07&@3|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#00e0e07&|a+0#00e0003&|b|s|t|r|a|c|t| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@11
-@57|3|7|,|2|-|5| @7|4|3|%|
+@57|3|7|,|2|-|5| @7|3|1|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_03.dump b/runtime/syntax/testdir/dumps/java_methods_style_03.dump
index c47f958a9..3b37c8095 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_03.dump
@@ -17,4 +17,4 @@
@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@41
| +0#00e0e07&@3|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#00e0e07&|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|f+0#00e0003&|i|n|a|l| +0#00e0e07&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#00e0e07&|s+0#00e0003&|t|r|i|c|t|f|p| +0#00e0e07&|v+0#00e0003&|o|i|d| +0#00e0e07&|a|s|c|i@1|$|9@1|_|(|)| +0#0000000&@9
@4|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @54
-@57|5@1|,|2|-|5| @7|6|9|%|
+@57|5@1|,|2|-|5| @7|5|0|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_04.dump b/runtime/syntax/testdir/dumps/java_methods_style_04.dump
index e291225a7..f0567896f 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_04.dump
@@ -17,4 +17,4 @@
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|c|s|.|s|t|r|e|a|m|(|)|.|f|i|l|t|e|r|(|f|i|l|t|e|r|)| @33
@12|.|c|o|l@1|e|c|t|(|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|C|o|l@1|e|c|t|o|r|s|.|t|o|U|n|m|o|d|i|f|i|a|b|l|e|L|i|s|t|(|)@1|;| @3
@4|}| @69
-@57|7|3|,|2|-|5| @7|9|4|%|
+@57|7|3|,|2|-|5| @7|6|8|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_05.dump b/runtime/syntax/testdir/dumps/java_methods_style_05.dump
index 09242dcfa..84944f5bb 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_05.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_05.dump
@@ -2,19 +2,19 @@
@75
@4|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|c|a|s|t|"|)+0#e000e06&| +0#0000000&@35
| +0#00e0e07&@3|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|S|t|r|i|n|g| |t|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(|S|t|r|i|n|g|)| |"+0#e000002&|S|t|y|l|e|M|e|t|h|o|d|s|T|e|s|t|s|"|;+0#0000000&| |}| @5
->}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|9|0|,|1| @9|B|o|t|
+|}| @73
+> @74
+|c+0#00e0003&|l|a|s@1| +0#0000000&|S+0#00e0e07&|t|y|l|e|A|l|i|a|s|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@55
+|{| @73
+@4|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |S|t|y|l|e|A|l|i|a|s|(|T| |n|a|m|e|)| @3|{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @13
+@75
+@4|c+0#00e0003&|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @57
+@4|{| @69
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|j+0#00e0e07&|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&|b|u|i|l|d|e|r| |=| @16
+@12|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|e|r|(|)|;| @25
+@75
+| +0#00e0e07&@7|S|t|y|l|e|A|l|i|a|s|<|T|>|.|B|u|i|l|d|e|r| |a|d@1|(|T| |x|)| +0#0000000&@36
+@8|{| @65
+@12|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @44
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @50
+@57|9|1|,|0|-|1| @7|8|6|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_06.dump b/runtime/syntax/testdir/dumps/java_methods_style_06.dump
new file mode 100644
index 000000000..283d16aaa
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_style_06.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@11|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @50
+@8|}| @65
+@75
+| +0#00e0e07&@7|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b|u|i|l|d|(|)| +0#0000000&@32
+@8|{| @65
+@12>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<+0#00e0003&|T+0#0000000&|>+0#00e0003&|b+0#0000000&|u|i|l|d|(|)|;| @36
+@8|}| @65
+@4|}| @69
+@75
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<+0#00e0003&|A+0#00e0e07&|>+0#00e0003&| +0#00e0e07&|S|t|y|l|e|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b|u|i|l|d|e|r|(|A| |n|a|m|e|)| +0#0000000&@22
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|S|t|y|l|e|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @22
+@4|}| @69
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|0|9|,|4|-|1|3| @5|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_01.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_01.dump
index c7f3e3c08..dd23dd03e 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_signature_01.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_01.dump
@@ -17,4 +17,4 @@
@8|T|ɐ|g@1|a|b|l|ɘ|[|]| |v+0#00e0e07&|a|l|u|e|(|)|;+0#0000000&| @47
@4|}| @69
@75
-@57|1|9|,|0|-|1| @7|2|0|%|
+@57|1|9|,|0|-|1| @7|1|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_02.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_02.dump
index a610f4028..525bbee23 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_signature_02.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_02.dump
@@ -17,4 +17,4 @@
@75
@4|/+0#0000e05&@1| |M|E|T|H|O|D|S|.| +0#0000000&@59
@4|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|@+0#e000e06&|T|ɐ|g@1|a|b|l|ɘ| +0#0000000&|a+0#00e0003&|b|s|t|r|a|c|t| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|0|_|(|/+0#0000e05&@15| +0#0000000&@11
-@57|3|7|,|2|-|5| @7|4|9|%|
+@57|3|7|,|2|-|5| @7|3|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_03.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_03.dump
index 3b0853cb4..cdc29e0df 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_03.dump
@@ -17,4 +17,4 @@
@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|s|t|r|i|c|t|f|p|"|)+0#e000e06&| +0#0000000&@41
@4|p+0#00e0003&|r|o|t|e|c|t|e|d| +0#0000000&|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| +0#0000000&|s+0#00e0003&|y|n|c|h|r|o|n|i|z|e|d| +0#0000000&|s+0#00e0003&|t|r|i|c|t|f|p| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|a+0#00e0e07&|s|c|i@1|$|9@1|_|(|)| +0#0000000&@9
@4|{| |a|s|c|i@1|$|9|8|_|(|)|;| |}| @54
-@57|5@1|,|2|-|5| @7|7@1|%|
+@57|5@1|,|2|-|5| @7|5|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_04.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_04.dump
index 63ed52e21..853524cfa 100644
--- a/runtime/syntax/testdir/dumps/java_methods_style_signature_04.dump
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_04.dump
@@ -13,8 +13,8 @@
@4|@+0#e000e06&|O|v|e|r@1|i|d|e| +0#0000000&|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|"+0#e000002&|c|a|s|t|"|)+0#e000e06&| +0#0000000&@35
@4|p+0#00e0003&|u|b|l|i|c| +0#0000000&|S|t|r|i|n|g| |t+0#00e0e07&|o|S|t|r|i|n|g|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(|S|t|r|i|n|g|)| |"+0#e000002&|S|t|y|l|e|$|M|e|t|h|o|d|s|T|e|s|t|s|"|;+0#0000000&| |}| @4
|}| @73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|7|3|,|2|-|5| @7|B|o|t|
+@75
+|c+0#00e0003&|l|a|s@1| +0#0000000&|S|t|y|l|e|$|A|l|i|a|s|<|T|>| @54
+|{| @73
+@4|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |S|t|y|l|e|$|A|l|i|a|s|(|T| |n|a|m|e|)| @2|{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @13
+@57|7|3|,|2|-|5| @7|7|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_05.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_05.dump
new file mode 100644
index 000000000..59fd03754
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_05.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|f+0#00e0003&|i|n|a|l| +0#0000000&|T| |n|a|m|e|;| |S|t|y|l|e|$|A|l|i|a|s|(|T| |n|a|m|e|)| @2|{| |t+0#00e0003&|h|i|s|.+0#0000000&|n|a|m|e| |=| |n|a|m|e|;| |}| @13
+@75
+@4|c+0#00e0003&|l|a|s@1| +0#0000000&|B|u|i|l|d|e|r| @57
+@4|{| @69
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|B|u|i|l|d|e|r|<|T|>| |b|u|i|l|d|e|r| |=| @16
+@12>j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|.|<|T|>|b|u|i|l|d|e|r|(|)|;| @25
+@75
+@8|S|t|y|l|e|$|A|l|i|a|s|<|T|>|.|B|u|i|l|d|e|r| |a+0#00e0e07&|d@1|(|T+0#0000000&| |x|)+0#00e0e07&| +0#0000000&@35
+@8|{| @65
+@12|b|u|i|l|d|e|r|.|a|c@1|e|p|t|(|x|)|;| @44
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0003&|h|i|s|;+0#0000000&| @50
+@8|}| @65
+@75
+@8|j|a|v|a|.|u|t|i|l|.|s|t|r|e|a|m|.|S|t|r|e|a|m|<|T|>| |b+0#00e0e07&|u|i|l|d|(|)| +0#0000000&@32
+@8|{| @65
+@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|b|u|i|l|d|e|r|.|<|T|>|b|u|i|l|d|(|)|;| @36
+@8|}| @65
+@4|}| @69
+@75
+@57|9|1|,|4|-|1|3| @6|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/java_methods_style_signature_06.dump b/runtime/syntax/testdir/dumps/java_methods_style_signature_06.dump
new file mode 100644
index 000000000..c0eedadbb
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_methods_style_signature_06.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|A|>| |S|t|y|l|e|$|A|l|i|a|s|<|A|>|.|B|u|i|l|d|e|r| |b+0#00e0e07&|u|i|l|d|e|r|(|A+0#0000000&| |n|a|m|e|)+0#00e0e07&| +0#0000000&@21
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&|S|t|y|l|e|$|A|l|i|a|s|<|>|(|n|a|m|e|)|.|n+0#af5f00255&|e|w| +0#0000000&|B|u|i|l|d|e|r|(|)|;| @21
+@4|}| @69
+>}| @73
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|0|9|,|1| @8|B|o|t|
diff --git a/runtime/syntax/testdir/input/java_methods_indent2.java b/runtime/syntax/testdir/input/java_methods_indent2.java
index 1b2e8632f..507bc7333 100644
--- a/runtime/syntax/testdir/input/java_methods_indent2.java
+++ b/runtime/syntax/testdir/input/java_methods_indent2.java
@@ -110,3 +110,30 @@ enum E2
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C2Alias<T>
+{
+ final T name; C2Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C2Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C2Alias<A>.Builder builder(A name)
+ {
+ return new C2Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_indent2_signature.java b/runtime/syntax/testdir/input/java_methods_indent2_signature.java
index 8303e2354..2fdc5c294 100644
--- a/runtime/syntax/testdir/input/java_methods_indent2_signature.java
+++ b/runtime/syntax/testdir/input/java_methods_indent2_signature.java
@@ -102,3 +102,30 @@ enum E2$
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C2$Alias<T>
+{
+ final T name; C2$Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C2$Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C2$Alias<A>.Builder builder(A name)
+ {
+ return new C2$Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_indent4.java b/runtime/syntax/testdir/input/java_methods_indent4.java
index cc3314976..48f13f8f5 100644
--- a/runtime/syntax/testdir/input/java_methods_indent4.java
+++ b/runtime/syntax/testdir/input/java_methods_indent4.java
@@ -110,3 +110,30 @@ enum E4
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C4Alias<T>
+{
+ final T name; C4Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C4Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C4Alias<A>.Builder builder(A name)
+ {
+ return new C4Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_indent4_signature.java b/runtime/syntax/testdir/input/java_methods_indent4_signature.java
index eace2683d..ee101d2a3 100644
--- a/runtime/syntax/testdir/input/java_methods_indent4_signature.java
+++ b/runtime/syntax/testdir/input/java_methods_indent4_signature.java
@@ -102,3 +102,30 @@ enum E4$
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C4$Alias<T>
+{
+ final T name; C4$Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C4$Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C4$Alias<A>.Builder builder(A name)
+ {
+ return new C4$Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_indent8.java b/runtime/syntax/testdir/input/java_methods_indent8.java
index aadf9759e..0c672a894 100644
--- a/runtime/syntax/testdir/input/java_methods_indent8.java
+++ b/runtime/syntax/testdir/input/java_methods_indent8.java
@@ -110,3 +110,30 @@ enum E8
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C8Alias<T>
+{
+ final T name; C8Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C8Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C8Alias<A>.Builder builder(A name)
+ {
+ return new C8Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_indent8_signature.java b/runtime/syntax/testdir/input/java_methods_indent8_signature.java
index 677ce5a03..57c02a42c 100644
--- a/runtime/syntax/testdir/input/java_methods_indent8_signature.java
+++ b/runtime/syntax/testdir/input/java_methods_indent8_signature.java
@@ -102,3 +102,30 @@ enum E8$
@Override public String toString() { return name().toUpperCase(); }
}
+
+class C8$Alias<T>
+{
+ final T name; C8$Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ C8$Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> C8$Alias<A>.Builder builder(A name)
+ {
+ return new C8$Alias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_style.java b/runtime/syntax/testdir/input/java_methods_style.java
index f9a6f5771..50bfa96ba 100644
--- a/runtime/syntax/testdir/input/java_methods_style.java
+++ b/runtime/syntax/testdir/input/java_methods_style.java
@@ -88,3 +88,30 @@ abstract class StyleMethodsTests
@Override @SuppressWarnings("cast")
public String toString() { return (String) "StyleMethodsTests"; }
}
+
+class StyleAlias<T>
+{
+ final T name; StyleAlias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ StyleAlias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> StyleAlias<A>.Builder builder(A name)
+ {
+ return new StyleAlias<>(name).new Builder();
+ }
+}
diff --git a/runtime/syntax/testdir/input/java_methods_style_signature.java b/runtime/syntax/testdir/input/java_methods_style_signature.java
index 28a2f8887..a0a3d18be 100644
--- a/runtime/syntax/testdir/input/java_methods_style_signature.java
+++ b/runtime/syntax/testdir/input/java_methods_style_signature.java
@@ -80,3 +80,30 @@ abstract class Style$MethodsTests
@Override @SuppressWarnings("cast")
public String toString() { return (String) "Style$MethodsTests"; }
}
+
+class Style$Alias<T>
+{
+ final T name; Style$Alias(T name) {
this.name = name; }
+
+ class Builder
+ {
+ final java.util.stream.Stream.Builder<T> builder =
+ java.util.stream.Stream.<T>builder();
+
+ Style$Alias<T>.Builder add(T x)
+ {
+ builder.accept(x);
+ return this;
+ }
+
+ java.util.stream.Stream<T> build()
+ {
+ return builder.<T>build();
+ }
+ }
+
+ static <A> Style$Alias<A>.Builder builder(A name)
+ {
+ return new Style$Alias<>(name).new Builder();
+ }
+}