runtime(java): Fold adjacent "import" declarations

Commit: 
https://github.com/vim/vim/commit/143686b3c453d732b849a1528ca1b54badef644b
Author: Aliaksei Budavei <[email protected]>
Date:   Wed Oct 8 16:45:28 2025 +0000

    runtime(java): Fold adjacent "import" declarations
    
    Also, distinguish (by abbreviating their names) and manage
    foldable kinds of syntax items: blocks of code ("b"), plain
    comments ("c"), Javadoc comments ("d"), adjacent "import"
    declarations ("i").  Fold all qualifying items by default;
    otherwise, do not fold items of explicitly delisted kinds.
    For example,
    ------------------------------------------------------------
            let g:java_ignore_folding = "bcdi"
    ------------------------------------------------------------
    
    Resolves zzzyxwvut/java-vim#12.
    
    closes: #18492
    
    Signed-off-by: Aliaksei Budavei <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index d65100441..db332fcd9 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -2214,14 +2214,17 @@ Note that these three variables are maintained in the 
HTML syntax file.
 Numbers and strings can be recognized in non-Javadoc comments with >
        :let g:java_comment_strings = 1
 
-When 'foldmethod' is set to "syntax", blocks of code and multi-line comments
-will be folded.  No text is usually written in the first line of a multi-line
-comment, making folded contents of Javadoc comments less informative with the
-default 'foldtext' value; you may opt for showing the contents of a second
-line for any comments written in this way, and showing the contents of a first
-line otherwise, with >
+When 'foldmethod' is set to "syntax", multi-line blocks of code ("b"), plain
+comments ("c"), Javadoc comments ("d"), and adjacent "import" declarations
+("i") will be folded by default.  Syntax items of any supported kind will
+remain NOT foldable when its abbreviated name is delisted with >
+       :let g:java_ignore_folding = "bcdi"
+No text is usually written in the first line of a multi-line comment, making
+folded contents of Javadoc comments less informative with the default
+'foldtext' value; you may opt for showing the contents of a second line for
+any comments written in this way, and showing the contents of a first line
+otherwise, with >
        :let g:java_foldtext_show_first_or_second_line = 1
-
 HTML tags in Javadoc comments can additionally be folded by following the
 instructions listed under |html-folding| and giving explicit consent with >
        :let g:java_consent_to_html_syntax_folding = 1
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index a715331f8..149f5fd5a 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 <[email protected]>
 " Repository:          https://github.com/zzzyxwvut/java-vim.git
-" Last Change:         2025 Oct 04
+" Last Change:         2025 Oct 08
 
 " Please check ":help java.vim" for comments on some of the options
 " available.
@@ -59,6 +59,10 @@ else
   endfunction
 endif
 
+function! s:ff.QueryFoldArgForSyntaxItems(kind) abort
+  return stridx(s:java_ignore_folding, a:kind) < 0 ? "fold" : ""
+endfunction
+
 if !exists("*s:ReportOnce")
   function s:ReportOnce(message) abort
     echomsg 'syntax/java.vim: ' . a:message
@@ -90,6 +94,8 @@ 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 . ',$'
@@ -121,6 +127,11 @@ syn match   javaOperator   "\<var\>\%(\s*(\)\@!"
 syn match   javaExternal       "\<import\s\+module\>" contains=javaModuleImport
 syn keyword javaModuleImport   contained module
 
+if !empty(s:ff.QueryFoldArgForSyntaxItems('i'))
+  " Group and fold adjacent "import" declarations.
+  syn region  javaImportDeclBlock      transparent start="\<import\s\+\K" 
skip="\<import\s\+\K" end="^" 
contains=javaExternal,@javaClasses,javaComment,javaLineComment fold
+endif
+
 " Since the yield statement, which could take a parenthesised operand,
 " and _qualified_ yield methods get along within the switch block
 " (JLS-17, §3.8), it seems futile to make a region definition for this
@@ -380,7 +391,7 @@ syn keyword javaLabelDefault        contained default
 syn keyword javaLabelVarType   contained var
 " Allow for the contingency of the enclosing region not being able to
 " _keep_ its _end_, e.g. case ':':.
-syn region  javaLabelWhenClause        contained transparent 
matchgroup=javaLabel start="\<when\>" matchgroup=NONE end=":"me=e-1 
end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef
+syn region  javaLabelWhenClause        contained transparent 
matchgroup=javaLabel start="\<when\>" matchgroup=NONE end=":"me=e-1 
end="->"me=e-2 contains=TOP,javaImportDeclBlock,javaExternal,javaLambdaDef
 
 " Comments
 syn keyword javaTodo           contained TODO FIXME XXX
@@ -396,7 +407,7 @@ if exists("g:java_comment_strings")
   syn cluster javaCommentSpecial2 
add=javaComment2String,javaCommentCharacter,javaNumber,javaStrTempl
 endif
 
-syn region  javaComment                matchgroup=javaCommentStart start="/\*" 
end="\*/" 
contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell 
fold
+exec 'syn region javaComment matchgroup=javaCommentStart start="/\*" end="\*/" 
contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell ' 
. s:ff.QueryFoldArgForSyntaxItems('c')
 syn match   javaCommentStar    contained "^\s*\*[^/]"me=e-1
 syn match   javaCommentStar    contained "^\s*\*$"
 syn match   javaLineComment    "//.*" 
contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell
@@ -510,7 +521,7 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || 
s:with_markdown) && g:mai
   endtry
 
   if s:with_markdown
-    syn region javaMarkdownComment     start="///" skip="^\s*///.*$" end="^" 
keepend 
contains=javaMarkdownCommentTitle,javaMarkdownShortcutLink,@javaMarkdown,@javaDocTags,javaTodo,@Spell
 nextgroup=javaMarkdownCommentTitle fold
+    exec 'syn region javaMarkdownComment start="///" skip="^\s*///.*$" end="^" 
keepend 
contains=javaMarkdownCommentTitle,javaMarkdownShortcutLink,@javaMarkdown,@javaDocTags,javaTodo,@Spell
 nextgroup=javaMarkdownCommentTitle ' . s:ff.QueryFoldArgForSyntaxItems('d')
     syn match javaMarkdownCommentMask  contained "^\s*///"
     exec 'syn region javaMarkdownCommentTitle contained 
matchgroup=javaMarkdownComment start="\%(///.*
\=
\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<!///" 
matchgroup=javaMarkdownCommentTitle end="\.$" end="\.[       
]\@=" end="
\%(\s*///\s*$\)\@=" end="\%(^\s*///\s*\)\@' . 
s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<=@"me=s-2,he=s-1 
contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags'
     exec 'syn region javaMarkdownCommentTitle contained 
matchgroup=javaMarkdownComment start="\%(///.*
\=
\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . 
'<!///\s*\%({@return\>\)\@=" matchgroup=javaMarkdownCommentTitle 
end="}\%(\s*\.*\)*" 
contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
@@ -565,7 +576,7 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || 
s:with_markdown) && g:mai
   endif
 
   if s:with_html
-    syn region javaDocComment  start="/\*\*" end="\*/" keepend 
contains=javaCommentTitle,@javaHtml,@javaDocTags,javaTodo,javaCommentError,javaSpaceError,@Spell
 fold
+    exec 'syn region javaDocComment start="/\*\*" end="\*/" keepend 
contains=javaCommentTitle,@javaHtml,@javaDocTags,javaTodo,javaCommentError,javaSpaceError,@Spell
 ' . s:ff.QueryFoldArgForSyntaxItems('d')
     exec 'syn region javaCommentTitle contained matchgroup=javaDocComment 
start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[         
]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.PeekFor('javaCommentTitle', 120) . 
'<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 
contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags'
     syn region javaCommentTitle        contained matchgroup=javaDocComment 
start="/\*\*\s*
\=
\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" 
contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
     syn region javaCommentTitle        contained matchgroup=javaDocComment 
start="/\*\*\s*
\=
\=\s*\**\s*\%({@summary\>\)\@=" matchgroup=javaCommentTitle end="}" 
contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
@@ -690,7 +701,7 @@ syn region  javaString              start=+"""[     \x0c
]*$+hs=e+1 end=+"""+he=s-1 contains=
 syn match   javaTextBlockError +"""\s*"""+
 
 if s:ff.IsAnyRequestedPreviewFeatureOf([430])
-  syn region javaStrTemplEmbExp        contained matchgroup=javaStrTempl 
start="\{" end="}" contains=TOP
+  syn region javaStrTemplEmbExp        contained matchgroup=javaStrTempl 
start="\{" end="}" contains=TOP,javaImportDeclBlock
   exec 'syn region javaStrTempl start=+\%(\.[[:space:]
]*\)\@' . s:ff.PeekFor('javaStrTempl', 80) . '<="+ end=+"+ 
contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
   exec 'syn region javaStrTempl start=+\%(\.[[:space:]
]*\)\@' . s:ff.PeekFor('javaStrTempl', 80) . '<="""[    \x0c
]*$+hs=e+1 end=+"""+he=s-1 
contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
   hi def link javaStrTempl     Macro
@@ -751,7 +762,7 @@ if exists("g:java_highlight_functions")
     " in order to not include javaFuncDef.
     syn region javaParenE transparent matchgroup=javaParen start="(" end=")" 
contains=@javaEnumConstants,javaInParen
     syn region javaParenE transparent matchgroup=javaParen start="\[" end="\]" 
contains=@javaEnumConstants
-    syn cluster javaEnumConstants 
contains=TOP,javaTopEnumDeclaration,javaFuncDef,javaParenT
+    syn cluster javaEnumConstants 
contains=TOP,javaTopEnumDeclaration,javaImportDeclBlock,javaFuncDef,javaParenT
     unlet s:indent s:last
   else
     " This is the "style" variant (:help ft-java-syntax).
@@ -822,7 +833,7 @@ syn region javaBlockOther transparent 
matchgroup=javaBlockOtherStart start="{" e
 
 " Try not to fold top-level-type bodies under assumption that there is
 " but one such body.
-exec 'syn region javaBlock transparent matchgroup=javaBlockStart 
start="\%(^\|^\S[^:]\+\)\@' . s:ff.PeekFor('javaBlock', 120) . '<!{" end="}" 
fold'
+exec 'syn region javaBlock transparent matchgroup=javaBlockStart 
start="\%(^\|^\S[^:]\+\)\@' . s:ff.PeekFor('javaBlock', 120) . '<!{" end="}" ' 
. s:ff.QueryFoldArgForSyntaxItems('b')
 
 " See "D.2.1 Anonymous Classes" at
 " 
https://web.archive.org/web/20010821025330/java.sun.com/docs/books/jls/first_edition/html/1.1Update.html#12959.
@@ -966,7 +977,7 @@ endif
 
 let b:spell_options = "contained"
 let &cpo = s:cpo_save
-unlet s:cpo_save s:ff s:with_html s:with_markdown
+unlet s:cpo_save s:ff s:java_ignore_folding s:with_html s:with_markdown
 
 " See ":help vim9-mix".
 if !has("vim9script")
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_00.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_00.dump
index 5fa18d715..d8495a306 100644
--- a/runtime/syntax/testdir/dumps/java_enfoldment_00.dump
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_00.dump
@@ -1,20 +1,20 @@
-| +0#0000e05#a8a8a8255@1>/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|s|e|t|l|o|c|a|l| |f|o|l|d|e|n|a|b|l|e| |f|o|l|d|c|o|l|u|m|n|=|2| 
|f|o|l|d|m|e|t|h|o|d|=|s|y|n|t|a|x| +0#0000000&@4
+| +0#0000e05#a8a8a8255@1>/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|s|e|t|l|o|c|a|l| |f|e|n| |f|d|c|=|2| |f|d|l|=|8| |f|d|m|=|s|y|n|t|a|x| 
+0#0000000&@19
 | +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|f|o|l|d|t|e|x|t|_|s|h|o|w|_|f|i|r|s|t|_|o|r|_|s|e|c|o|n|d|_|l|i|n|e|
 |=| |1| +0#0000000&@5
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|h|i|g|h|l|i|g|h|t|_|j|a|v|a|_|l|a|n|g| |=| |1| +0#0000000&@20
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|i|g|n|o|r|e|_|f|o|l|d|i|n|g| |=| |"|x|"| +0#0000000&@23
 | +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|l|o@1|k|b|e|h|i|n|d|_|b|y|t|e|_|c|o|u|n|t|s| |=| 
|{|'|j|a|v|a|B|l|o|c|k|'|:| |-|1|}| +0#0000000&@1
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
 | +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|O|t|h|e|r|S|t|a|r|t| 
|S|t|r|u|c|t|u|r|e| +0#0000000&@10
 | +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|S|t|a|r|t| |T|o|d|o| 
+0#0000000&@20
 | +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|++0#0000e05#a8a8a8255| |+|-@1| |1|9| |l|i|n|e|s|:| 
|@|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{|-@39
-| @1|c+0#00e0003#ffffff0|l|a|s@1| +0#0000000&|F|o|l|d|i|n|g|T|e|s|t|s| 
|{+0#00e0003&| +0#0000000&@52
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|F|o|l|d|e|n|a|b|l|e| @48
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |{|-@57
-| @1| +0#0000000#ffffff0@72
-|++0#0000e05#a8a8a8255| |+|-@1| |1|9| |l|i|n|e|s|:| |s|t|a|t|i|c| |{|-@50
-| @1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0|O|b|j|e|c|t| |b@1| |=| |(@1|O|b|j|e|c|t|)| 
|n+0#af5f00255&|e|w| 
+0#0000000&|b+0#00e0003&|y|t|e|[+0#0000000&|]|{+0#0000001#ffff4012|}|)+0#0000000#ffffff0|;|
 |}+0#0000001#ffff4012| +0#0000000#ffffff0@28
-|++0#0000e05#a8a8a8255| |+|-@1| @1|8| |l|i|n|e|s|:| |{|-@57
-| @1|/+0&#ffffff0|*|\@2|*|/| +0#0000000&|{+0#00e0003&| +0#0000000&@63
-|++0#0000e05#a8a8a8255| |+|-@1| @1|5| |l|i|n|e|s|:| |(|n|e|w| 
|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,| 
|O|b|j|e|c|t|>|(|)| |{|-@6
-|+| |+|-@1| @1|5| |l|i|n|e|s|:| |(|n|e|w| 
|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,| 
|O|b|j|e|c|t|>|(|)| |{|-@6
-| @1| +0#0000000#ffffff0@3|}+0#00e0003&| +0#0000000&@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |/+0&#ffffff0|*@2|/| 
+0#0000000&@1|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
|/+0#0000e05&|*| +0#0000000&@34
+|2+0#0000e05#a8a8a8255| |i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|O|b|j|e|c|t|;| +0#0000000&@48
+|2+0#0000e05#a8a8a8255| |i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+|2+0#0000e05#a8a8a8255| |*+0&#ffffff0|/| +0#0000000&@70
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_01.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_01.dump
index 9e31f4ad7..1e9c44d5f 100644
--- a/runtime/syntax/testdir/dumps/java_enfoldment_01.dump
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_01.dump
@@ -1,20 +1,20 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0|O|b|j|e|c|t| |b@1| |=| |(@1|O|b|j|e|c|t|)| 
|n+0#af5f00255&|e|w| 
+0#0000000&|b+0#00e0003&|y|t|e|[+0#0000000&|]|{+0#0000001#ffff4012|}|)+0#0000000#ffffff0|;|
 |}+0#0000001#ffff4012| +0#0000000#ffffff0@28
-|++0#0000e05#a8a8a8255| |+|-@1| @1|8| |l|i|n|e|s|:| |{|-@57
-| @1|/+0&#ffffff0|*|\@2|*|/| +0#0000000&|{+0#00e0003&| +0#0000000&@63
-|++0#0000e05#a8a8a8255| |+|-@1| @1|5| |l|i|n|e|s|:| |(|n|e|w| 
|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,| 
|O|b|j|e|c|t|>|(|)| |{|-@6
-|+| |+|-@1| @1|5| |l|i|n|e|s|:| |(|n|e|w| 
|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,| 
|O|b|j|e|c|t|>|(|)| |{|-@6
-| @1| +0#0000000#ffffff0@3>}+0#00e0003&| +0#0000000&@67
 | +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|++0#0000e05#a8a8a8255| |+|-@1| @1|3| |l|i|n|e|s|:| @2|*| |N|o| 
|o|p|e|r|a|t|i|o|n|.|-@41
-| @1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|1|(|)| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@52
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|2|(|)| @56
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |{|-@57
-| @1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |v|o|i|d| |n|o|O|p|3|(|)| 
|{|-@44
-| @1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |v|o|i|d| |n|o|O|p|4|(|)| 
|{|-@44
-| @1| +0#0000000#ffffff0@72
-|++0#0000e05#a8a8a8255| |+|-@1| @1|3| |l|i|n|e|s|:| |/| |N|o| 
|o|p|e|r|a|t|i|o|n|.|-@43
-| @1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|5|(|)| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@52
-@57|7|1|,|2|-|5| @7|6|1|%| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |/+0&#ffffff0|*@2|/| 
+0#0000000&@1|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
|/+0#0000e05&|*| +0#0000000&@34
+|2+0#0000e05#a8a8a8255| |i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|O|b|j|e|c|t|;| +0#0000000&@48
+|2+0#0000e05#a8a8a8255| |i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+|2+0#0000e05#a8a8a8255| >*+0&#ffffff0|/| +0#0000000&@70
+||+0#0000e05#a8a8a8255| |i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|S+0#e000002&|t|r|i|n|g|;+0#0000000&| @48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
@3|/+0#0000e05&|*@2|/| +0#0000000&@35
+||+0#0000e05#a8a8a8255| |i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|O+0#e000002&|b|j|e|c|t|;+0#0000000&| 
@3|/+0#0000e05&@1| |/@1| +0#0000000&@39
+||+0#0000e05#a8a8a8255| |i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|S+0#e000002&|t|r|i|n|g|;+0#0000000&| 
@3|/+0#0000e05&|*@2|/| +0#0000000&@39
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|;| @37
+|-+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@3|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{+0#0000001#ffff4012|
 +0#0000000#ffffff0@49
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|"@2| @65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|b|e|s|p|o|k|e| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/|*| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@4|*| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+@57|1|9|,|1| @9|1|0|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_02.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_02.dump
index d64bafad5..2ce922d9e 100644
--- a/runtime/syntax/testdir/dumps/java_enfoldment_02.dump
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_02.dump
@@ -1,20 +1,20 @@
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|5|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@52
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|6|(|)| @56
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |{|-@57
-| @1| +0#0000000#ffffff0@3|/+0#0000e05&@2| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
-|++0#0000e05#a8a8a8255| >+|-@1| @1|2| |l|i|n|e|s|:| |v|o|i|d| |n|o|O|p|7|(|)| 
|{|-@44
-| @1| +0#0000000#ffffff0@3|/+0#0000e05&@2| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
-|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |v|o|i|d| |n|o|O|p|8|(|)| 
|{|-@44
-| @1|}+0#00e0003#ffffff0| +0#0000000&@71
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/|*@1| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@4|*| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/@2| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3>/@2| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/@2| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|{| +0#0000000&@67
+||+0#0000e05#a8a8a8255| | +0#e000002#ffffff0@3|}| +0#0000000&@67
+||+0#0000e05#a8a8a8255| |"+0#0000000#ffffff0@2| @69
+||+0#0000e05#a8a8a8255| |}+0#0000001#ffff4012|)+0#e000e06#ffffff0| 
+0#0000000&@70
+| +0#0000e05#a8a8a8255@1|c+0#00e0003#ffffff0|l|a|s@1| 
+0#0000000&|F|o|l|d|i|n|g|T|e|s|t|s| |{+0#00e0003&| +0#0000000&@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|F|o|l|d|a|b|l|e| @50
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
 | +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-|++0#0000e05#a8a8a8255| |+|-@1| @1|5| |l|i|n|e|s|:| @1|*| |S|o|m|e| 
|n|o|t|e|.|-@45
-|+| |+|-@1| @1|5| |l|i|n|e|s|:| @1|*| |A| |s|u|m@1|a|r|y|.|-@45
-|+| |+|-@1| @1|3| |l|i|n|e|s|:| |/| |A| |s|u|m@1|a|r|y|.|-@46
-| @1|/+0&#ffffff0@1| +0#0000000&@70
-| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |{| +0#0000000&@68
-| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |}| +0#0000000&@68
-| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2@1|||.@65
-| +0&#a8a8a8255@1|.+0&#ffffff0@23|*|/| 
+0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|e|n|a|b|l|e| 
|{+0#00e0003&| +0#0000000&@23
-@57|9|7|,|2|-|1| @7|9|8|%| 
+@57|3|7|,|2|-|5| @7|2|4|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_03.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_03.dump
index 3391d41b3..8be0a0f33 100644
--- a/runtime/syntax/testdir/dumps/java_enfoldment_03.dump
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_03.dump
@@ -1,20 +1,20 @@
-| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2@1|||.@65
-| +0&#a8a8a8255@1|.+0&#ffffff0@23|*|/| 
+0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|e|n|a|b|l|e| 
|{+0#00e0003&| +0#0000000&@23
-| +0#0000e05#a8a8a8255@1>}+0#00e0003#ffffff0| +0#0000000&@71
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2@1|,|1| @8|B|o|t| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|s+0#00e0003&|t|a|t|i|c| 
+0#0000000&|{+0#0000001#ffff4012| +0#0000000#ffffff0@60
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|S+0#e000002&|t|r|i|n|g| 
+0#0000000&|i+0#e000e06&|m|p|o|r|t|<+0#0000e05&|2|0|6|0|>|$+0#0000000&| |=| 
|"@2| @38
+||+0#0000e05#a8a8a8255| |i+0#e000002#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+||+0#0000e05#a8a8a8255| |"+0#0000000#ffffff0@2|;| @68
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7>n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@50
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@55
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@19|n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| |{+0#0000001#ffff4012@2| 
+0#0000000#ffffff0@36
+|7+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@23|n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| 
|{+0#0000001#ffff4012@2|}@2|;+0#0000000#ffffff0| @28
+|7+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@19|}+0#0000001#ffff4012@2|;+0#0000000#ffffff0| @48
+|4+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@55
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+|2+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@7|}+0#0000001#ffff4012|;+0#0000000#ffffff0| @62
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|0+0#e000002&|)+0#0000000&| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@52
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|c+0#af5f00255&|a|s|e| 
+0#0000000&|0+0#e000002&|:+0#0000000&| @53
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|c+0#af5f00255&|a|s|e| 
+0#0000000&|1+0#e000002&|:+0#0000000&| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@51
+|3+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k|;+0#0000000&| @50
+@57|5@1|,|3|-|9| @7|3|8|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_04.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_04.dump
new file mode 100644
index 000000000..5d192d4e8
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_04.dump
@@ -0,0 +1,20 @@
+|3+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k|;+0#0000000&| @50
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+|2+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@11|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| |;| @50
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@63
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0|O+0#e000002&|b|j|e|c|t| +0#0000000&|b@1| |=| 
|(@1|O+0#e000002&|b|j|e|c|t|)+0#0000000&| |n+0#af5f00255&|e|w| 
+0#0000000&|b+0#00e0003&|y|t|e|[+0#0000000&|]|{+0#0000001#ffff4012|}|)+0#0000000#ffffff0|;|
 |}+0#0000001#ffff4012| +0#0000000#ffffff0@28
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+|-+0#0000e05#a8a8a8255| |o+0#af5f00255#ffffff0|u|t|:+0#0000000&| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0@66
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|d+0#af5f00255&|o| 
+0#0000000&|{+0#0000001#ffff4012| +0#0000000#ffffff0@60
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|i+0#af5f00255&|f| 
+0#0000000&|(|t+0#e000002&|r|u|e|)+0#0000000&| @51
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k| 
+0#0000000&|o+0#af5f00255&|u|t|;+0#0000000&| @46
+|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|}+0#0000001#ffff4012| 
+0#0000000#ffffff0|w+0#af5f00255&|h|i|l|e| 
+0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&|;| @48
+|2+0#0000e05#a8a8a8255| |}+0#0000001#ffff4012| +0#0000000#ffffff0@71
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*|\@2|*|/| +0#0000000&|{+0#00e0003&| 
+0#0000000&@63
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|(|n+0#af5f00255&|e|w| 
+0#0000000&|F|u|n|c|t|i|o|n|<|O+0#e000002&|b|j|e|c|t|,+0#0000000&| 
|O+0#e000002&|b|j|e|c|t|>+0#0000000&|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@31
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|/+0#0000e05&|*@1| 
+0#0000000&@57
+|2+0#0000e05#a8a8a8255| | +0&#ffffff0@12|*| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| |*+0#0000e05&|/| +0#0000000&@41
+@57|7|3|,|0|-|1| @7|5|3|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_05.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_05.dump
new file mode 100644
index 000000000..d4249cee4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_05.dump
@@ -0,0 +1,20 @@
+|2+0#0000e05#a8a8a8255| | +0&#ffffff0@12|*| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| |*+0#0000e05&|/| +0#0000000&@41
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|p+0#00e0003&|u|b|l|i|c| 
+0#0000000&|O+0#e000002&|b|j|e|c|t| 
+0#0000000&|a|p@1|l|y|(|O+0#e000002&|b|j|e|c|t| +0#0000000&|o|)| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#0000001#ffff4012|;+0#0000000#ffffff0| @16
+||+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@7|}+0#0000001#ffff4012|)+0#0000000#ffffff0|.|a|p@1|l|y|(| @55
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|(|n+0#af5f00255&|e|w| 
+0#0000000&|F|u|n|c|t|i|o|n|<|O+0#e000002&|b|j|e|c|t|,+0#0000000&| 
|O+0#e000002&|b|j|e|c|t|>+0#0000000&|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@31
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|/+0#0000e05&|*@1| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| +0#0000000&@43
+|2+0#0000e05#a8a8a8255| | +0#e000e06#ffffff0@12>*+0#0000e05&|/| +0#0000000&@57
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|p+0#00e0003&|u|b|l|i|c| 
+0#0000000&|O+0#e000002&|b|j|e|c|t| 
+0#0000000&|a|p@1|l|y|(|O+0#e000002&|b|j|e|c|t| +0#0000000&|o|)| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#0000001#ffff4012|;+0#0000000#ffffff0| @16
+||+0#0000e05#a8a8a8255| | 
+0#0000000#ffffff0@7|}+0#0000001#ffff4012|)+0#0000000#ffffff0@1|;| @60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#00e0003&| +0#0000000&@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|/+0#0000e05&|*@1| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@4|*| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000000&@52
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@4|*|/| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|1|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|2|(|)| @56
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+@57|9|1|,|5|-|1|4| @6|6|7|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_06.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_06.dump
new file mode 100644
index 000000000..b69891965
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_06.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|3|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|4|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>/+0#0000e05&|*|/|\|/|\|/|\|*|/| 
+0#0000000&|;| |}+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@3|/@2| +0#0000000&@65
+||+0#0000e05#a8a8a8255| | +0&#ffffff0@3|/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|5|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|6|(|)| @56
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|7|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+@57|1|0|9|,|2|-|5| @6|8|1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_07.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_07.dump
new file mode 100644
index 000000000..692486c66
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_07.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|8|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|/+0#0000e05&|*|/|\|/|\|/|\|*|/| 
+0#0000000&|;| |}+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1|}+0#00e0003#ffffff0| +0#0000000&@71
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| >/+0&#ffffff0|*| +0#0000000&@70
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| |S|o|m|e| |n|o|t|e|.| +0#0000000&@59
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| |{| +0#0000000&@68
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| |}| +0#0000000&@68
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*|/| +0#0000000&@69
+|-+0#0000e05#a8a8a8255| |/+0&#ffffff0|*@1| +0#0000000&@69
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| +0#e000e06&|A| |s|u|m@1|a|r|y|.| 
+0#0000000&@59
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| |{| +0#0000000&@68
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*| |}| +0#0000000&@68
+||+0#0000e05#a8a8a8255| | +0&#ffffff0|*|/| +0#0000000&@69
+|-+0#0000e05#a8a8a8255| |/+0&#ffffff0@2| +0#e000e06&|A| |s|u|m@1|a|r|y|.| 
+0#0000000&@58
+||+0#0000e05#a8a8a8255| |/+0&#ffffff0@2| +0#0000000&|{+0#0000e05&| 
+0#0000000&@67
+||+0#0000e05#a8a8a8255| |/+0&#ffffff0@2| +0#0000000&|}+0#0000e05&| 
+0#0000000&@67
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| +0#0000000&@70
+@57|1|2|7|,|1| @8|9|6|%| 
diff --git a/runtime/syntax/testdir/dumps/java_enfoldment_08.dump 
b/runtime/syntax/testdir/dumps/java_enfoldment_08.dump
new file mode 100644
index 000000000..c1204d05b
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_enfoldment_08.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| +0#0000000&@70
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |{| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |}| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2|0|||.@65
+| +0&#a8a8a8255@1|.+0&#ffffff0@23|*|/| 
+0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|a|b|l|e| 
|{+0#00e0003&| +0#0000000&@25
+| +0#0000e05#a8a8a8255@1>}+0#00e0003#ffffff0| +0#0000000&@71
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|4|5|,|1| @8|B|o|t| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_00.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_00.dump
index d6e5cc9cd..f694babe4 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_00.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_00.dump
@@ -1,20 +1,20 @@
->/+0#0000e05#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l|o|c|a|l| 
|n|o|f|o|l|d|e|n|a|b|l|e| +0#0000000&@35
-|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|m|a|r|k|_|b|r|a|c|e|s|_|i|n|_|p|a|r|e|n|s|_|a|s|_|e|r@1|o|r|s| 
|=| |1| +0#0000000&@10
-|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|l|o@1|k|b|e|h|i|n|d|_|b|y|t|e|_|c|o|u|n|t|s| |=| 
|{|'|j|a|v|a|B|l|o|c|k|'|:| |-|1|}| +0#0000000&@3
-|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| 
|j|a|v|a|B|l|o|c|k|O|t|h|e|r|S|t|a|r|t| |S|t|r|u|c|t|u|r|e| +0#0000000&@12
-|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| 
|j|a|v|a|B|l|o|c|k|S|t|a|r|t| |T|o|d|o| +0#0000000&@22
-@75
-@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@51
-@4|"@2| @67
-| +0#e000002&@3|b|e|s|p|o|k|e| +0#0000000&@63
-| +0#e000002&@3|/|*| +0#0000000&@68
-| +0#e000002&@4|*| +0#0000000&@68
-| +0#e000002&@4|*|/| +0#0000000&@67
-| +0#e000002&@3|/|*@1| +0#0000000&@67
-| +0#e000002&@4|*| +0#0000000&@68
-| +0#e000002&@4|*|/| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3|/@1| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1>/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|s|e|t|l|o|c|a|l| |f|e|n| |f|d|c|=|2| |f|d|l|=|8| |f|d|m|=|s|y|n|t|a|x| 
+0#0000000&@19
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|h|i|g|h|l|i|g|h|t|_|j|a|v|a|_|l|a|n|g| |=| |1| +0#0000000&@20
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|i|g|n|o|r|e|_|f|o|l|d|i|n|g| |=| |"|b|c|d|i|"| +0#0000000&@20
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|l|o@1|k|b|e|h|i|n|d|_|b|y|t|e|_|c|o|u|n|t|s| |=| 
|{|'|j|a|v|a|B|l|o|c|k|'|:| |-|1|}| +0#0000000&@1
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| 
|g|:|j|a|v|a|_|m|a|r|k|_|b|r|a|c|e|s|_|i|n|_|p|a|r|e|n|s|_|a|s|_|e|r@1|o|r|s| 
|=| |1| +0#0000000&@8
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|O|t|h|e|r|S|t|a|r|t| 
|S|t|r|u|c|t|u|r|e| +0#0000000&@10
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| 
|h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|S|t|a|r|t| |T|o|d|o| 
+0#0000000&@20
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*@2|/| 
+0#0000000&@1|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
|/+0#0000e05&|*| +0#0000000&@34
+| +0#0000e05#a8a8a8255@1|i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|O|b|j|e|c|t|;| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1|i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1|*+0&#ffffff0|/| +0#0000000&@70
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_01.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_01.dump
index 6d48bf2ec..5d251ea2f 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_01.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_01.dump
@@ -1,20 +1,20 @@
-| +0#e000002#ffffff0@4|*| +0#0000000&@68
-| +0#e000002&@4|*|/| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3|/@2| +0#0000000&@67
-| +0#e000002&@3>/@1| +0#0000000&@68
-| +0#e000002&@3|/@1| +0#0000000&@68
-| +0#e000002&@3|/@1| +0#0000000&@68
-| +0#e000002&@3|{| +0#0000000&@69
-| +0#e000002&@3|}| +0#0000000&@69
-|"@2| @71
-|}+0#0000001#ffff4012|)+0#e000e06#ffffff0| +0#0000000&@72
-|c+0#00e0003&|l|a|s@1| +0#0000000&|U|n|f|o|l|d|i|n|g|T|e|s|t|s| |{+0#00e0003&| 
+0#0000000&@52
-@4|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| @48
-@4|{+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@75
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@62
-@8|n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@52
-@57|1|9|,|2|-|5| @7|1|2|%| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*@2|/| 
+0#0000000&@1|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
|/+0#0000e05&|*| +0#0000000&@34
+| +0#0000e05#a8a8a8255@1|i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|O|b|j|e|c|t|;| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1|i+0&#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1>*+0&#ffffff0|/| +0#0000000&@70
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|S+0#e000002&|t|r|i|n|g|;+0#0000000&| @48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|C+0#00e0003&|o|m|p|a|r|a|b|l|e|;+0#0000000&| 
@3|/+0#0000e05&|*@2|/| +0#0000000&@35
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|O+0#e000002&|b|j|e|c|t|;+0#0000000&| 
@3|/+0#0000e05&@1| |/@1| +0#0000000&@39
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|l|a|n|g|.|S+0#e000002&|t|r|i|n|g|;+0#0000000&| 
@3|/+0#0000e05&|*@2|/| +0#0000000&@39
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|i+0#e000e06#ffffff0|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|;| @37
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@3|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{+0#0000001#ffff4012|
 +0#0000000#ffffff0@49
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|"@2| @65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|b|e|s|p|o|k|e| +0#0000000&@61
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/|*| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@4|*| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+@57|1|9|,|1| @9|1|0|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_02.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_02.dump
index 88133187d..18ccf7f80 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_02.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_02.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@7|n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0@52
-@12|{+0#0000001#ffff4012| +0#0000000#ffffff0@61
-@16|{+0#0000001#ffff4012| +0#0000000#ffffff0@57
-@20|n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| |{+0#0000001#ffff4012@2| 
+0#0000000#ffffff0@38
-@24|n+0#af5f00255&|e|w| +0#0000000&|O|b|j|e|c|t|(|)| 
|{+0#0000001#ffff4012@2|}@2|;+0#0000000#ffffff0| @30
-@20>}+0#0000001#ffff4012@2|;+0#0000000#ffffff0| @50
-@16|}+0#0000001#ffff4012| +0#0000000#ffffff0@57
-@12|}+0#0000001#ffff4012| +0#0000000#ffffff0@61
-@8|}+0#0000001#ffff4012|;+0#0000000#ffffff0| @64
-@75
-@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|0+0#e000002&|)+0#0000000&| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0@54
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|:+0#0000000&| @55
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|:+0#0000000&| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0@53
-@16|b+0#af5f00255&|r|e|a|k|;+0#0000000&| @52
-@12|}+0#0000001#ffff4012| +0#0000000#ffffff0@61
-@12|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| |;| @52
-@8|}+0#0000001#ffff4012| +0#0000000#ffffff0@65
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@75
-@57|3|7|,|6|-|2|1| @6|3|0|%| 
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/|*@1| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@4|*| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@4|*|/| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3>/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|/@1| +0#0000000&@66
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|{| +0#0000000&@67
+| +0#0000e05#a8a8a8255@1| +0#e000002#ffffff0@3|}| +0#0000000&@67
+| +0#0000e05#a8a8a8255@1|"+0#0000000#ffffff0@2| @69
+| +0#0000e05#a8a8a8255@1|}+0#0000001#ffff4012|)+0#e000e06#ffffff0| 
+0#0000000&@70
+| +0#0000e05#a8a8a8255@1|c+0#00e0003#ffffff0|l|a|s@1| 
+0#0000000&|U|n|f|o|l|d|i|n|g|T|e|s|t|s| |{+0#00e0003&| +0#0000000&@50
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|U|n|f|o|l|d|a|b|l|e| @48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+@57|3|7|,|2|-|5| @7|2|4|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_03.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_03.dump
index ebf8f457d..5904199d2 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_03.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_03.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-@4|{+0#0000001#ffff4012| +0#0000000#ffffff0|O|b|j|e|c|t| |b@1| |=| 
|(@1|O|b|j|e|c|t|)| |n+0#af5f00255&|e|w| 
+0#0000000&|b+0#00e0003&|y|t|e|[+0#0000000&|]|{+0#ffffff16#ff404010|}|)+0#0000000#ffffff0|;|
 |}+0#0000001#ffff4012| +0#0000000#ffffff0@30
-@4|{+0#0000001#ffff4012| +0#0000000#ffffff0@69
-|o+0#af5f00255&|u|t|:+0#0000000&| |{+0#0000001#ffff4012| +0#0000000#ffffff0@68
-@8|d+0#af5f00255&|o| +0#0000000&|{+0#0000001#ffff4012| +0#0000000#ffffff0@62
-@12>i+0#af5f00255&|f| +0#0000000&|(|t+0#e000002&|r|u|e|)+0#0000000&| @53
-@16|b+0#af5f00255&|r|e|a|k| +0#0000000&|o+0#af5f00255&|u|t|;+0#0000000&| @48
-@8|}+0#0000001#ffff4012| +0#0000000#ffffff0|w+0#af5f00255&|h|i|l|e| 
+0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&|;| @50
-|}+0#0000001#ffff4012| +0#0000000#ffffff0@73
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-|/+0#0000e05&|*|\@2|*|/| +0#0000000&|{+0#00e0003&| +0#0000000&@65
-@8|(|n+0#af5f00255&|e|w| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,|
 |O|b|j|e|c|t|>|(|)| |{+0#ffffff16#ff404010| +0#0000000#ffffff0@14
-@12|/+0#0000e05&|*@1| +0#0000000&@59
-| +0#0000e05&@12|*| +0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| |*+0#0000e05&|/| 
+0#0000000&@43
-@12|p+0#00e0003&|u|b|l|i|c| +0#0000000&|O|b|j|e|c|t| |a|p@1|l|y|(|O|b|j|e|c|t| 
|o|)| |{+0#ffffff16#ff404010| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#ffffff16#ff404010|;+0#0000000#ffffff0| @18
-@8|}+0#ffffff16#ff404010|)+0#0000000#ffffff0|.|a|p@1|l|y|(| @57
-@8|(|n+0#af5f00255&|e|w| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|F|u|n|c|t|i|o|n|<|O|b|j|e|c|t|,|
 |O|b|j|e|c|t|>|(|)| |{+0#ffffff16#ff404010| +0#0000000#ffffff0@14
-@12|/+0#0000e05&|*@1| +0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| +0#0000000&@45
-| +0#e000e06&@12|*+0#0000e05&|/| +0#0000000&@59
-@57|5@1|,|4|-|1|3| @6|4|7|%| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|s+0#00e0003&|t|a|t|i|c| 
+0#0000000&|{+0#0000001#ffff4012| +0#0000000#ffffff0@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|S+0#e000002&|t|r|i|n|g| 
+0#0000000&|i+0#e000e06&|m|p|o|r|t|<+0#0000e05&|2|0|6|0|>|$+0#0000000&| |=| 
|"@2| @38
+| +0#0000e05#a8a8a8255@1|i+0#e000002#ffffff0|m|p|o|r|t| 
|j|a|v|a|.|l|a|n|g|.|S|t|r|i|n|g|;| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1|"+0#0000000#ffffff0@2|;| @68
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7>n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@50
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@15|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@55
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@19|n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| |{+0#0000001#ffff4012@2| 
+0#0000000#ffffff0@36
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@23|n+0#af5f00255&|e|w| 
+0#0000000&|O+0#e000002&|b|j|e|c|t|(+0#0000000&|)| 
|{+0#0000001#ffff4012@2|}@2|;+0#0000000#ffffff0| @28
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@19|}+0#0000001#ffff4012@2|;+0#0000000#ffffff0| @48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@15|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@55
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@7|}+0#0000001#ffff4012|;+0#0000000#ffffff0| @62
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|0+0#e000002&|)+0#0000000&| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|c+0#af5f00255&|a|s|e| 
+0#0000000&|0+0#e000002&|:+0#0000000&| @53
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|c+0#af5f00255&|a|s|e| 
+0#0000000&|1+0#e000002&|:+0#0000000&| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@51
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k|;+0#0000000&| @50
+@57|5@1|,|3|-|9| @7|3|8|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_04.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_04.dump
index 281b7f628..d93fc008c 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_04.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_04.dump
@@ -1,20 +1,20 @@
-| +0#e000e06#ffffff0@12|*+0#0000e05&|/| +0#0000000&@59
-@12|p+0#00e0003&|u|b|l|i|c| +0#0000000&|O|b|j|e|c|t| |a|p@1|l|y|(|O|b|j|e|c|t| 
|o|)| |{+0#ffffff16#ff404010| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#ffffff16#ff404010|;+0#0000000#ffffff0| @18
-@8|}+0#ffffff16#ff404010|)+0#0000000#ffffff0@1|;| @62
-@4|}+0#00e0003&| +0#0000000&@69
-@75
-@4>/+0#0000e05&|*@1| +0#0000000&@67
-| +0#0000e05&@4|*| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@54
-| +0#0000e05&@4|*|/| +0#0000000&@67
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|1|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@54
-@4|/+0#0000e05&|*@1| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| 
+0#0000000&@50
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|2|(|)| @58
-@4|{+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|/+0#0000e05&|*@1| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| 
+0#0000000&@50
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|3|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|/+0#0000e05&|*@1| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| 
+0#0000000&@50
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|4|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-@4|/+0#0000e05&|*|/|\|/|\|/|\|*|/| +0#0000000&|;| |}+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-@57|7|3|,|2|-|5| @7|6|5|%| 
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k|;+0#0000000&| @50
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@59
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@11|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| |;| @50
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@63
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0|O+0#e000002&|b|j|e|c|t| +0#0000000&|b@1| |=| 
|(@1|O+0#e000002&|b|j|e|c|t|)+0#0000000&| |n+0#af5f00255&|e|w| 
+0#0000000&|b+0#00e0003&|y|t|e|[+0#0000000&|]|{+0#ffffff16#ff404010|}|)+0#0000000#ffffff0|;|
 |}+0#0000001#ffff4012| +0#0000000#ffffff0@28
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1|o+0#af5f00255#ffffff0|u|t|:+0#0000000&| 
|{+0#0000001#ffff4012| +0#0000000#ffffff0@66
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|d+0#af5f00255&|o| 
+0#0000000&|{+0#0000001#ffff4012| +0#0000000#ffffff0@60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|i+0#af5f00255&|f| 
+0#0000000&|(|t+0#e000002&|r|u|e|)+0#0000000&| @51
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@15|b+0#af5f00255&|r|e|a|k| 
+0#0000000&|o+0#af5f00255&|u|t|;+0#0000000&| @46
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|}+0#0000001#ffff4012| 
+0#0000000#ffffff0|w+0#af5f00255&|h|i|l|e| 
+0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&|;| @48
+| +0#0000e05#a8a8a8255@1|}+0#0000001#ffff4012| +0#0000000#ffffff0@71
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*|\@2|*|/| +0#0000000&|{+0#00e0003&| 
+0#0000000&@63
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|(|n+0#af5f00255&|e|w| 
+0#0000000&|F|u|n|c|t|i|o|n|<|O+0#e000002&|b|j|e|c|t|,+0#0000000&| 
|O+0#e000002&|b|j|e|c|t|>+0#0000000&|(|)| |{+0#ffffff16#ff404010| 
+0#0000000#ffffff0@31
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|/+0#0000e05&|*@1| 
+0#0000000&@57
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@12|*| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| |*+0#0000e05&|/| +0#0000000&@41
+@57|7|3|,|0|-|1| @7|5|3|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_05.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_05.dump
index 952a90b81..6743fa26a 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_05.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_05.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@3|/+0#0000e05&|*|/|\|/|\|/|\|*|/| +0#0000000&|;| 
|}+0#0000001#ffff4012| +0#0000000#ffffff0@56
-@75
-@4|/+0#0000e05&@2| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@53
-| +0#0000e05&@3|/@2| +0#0000000&@67
-| +0#0000e05&@3|/@2| +0#0000000&@67
-@4>v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|5|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@54
-@4|/+0#0000e05&@2| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@53
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|6|(|)| @58
-@4|{+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|/+0#0000e05&@2| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@53
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|7|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-@4|}+0#0000001#ffff4012| +0#0000000#ffffff0@69
-@4|/+0#0000e05&@2| +0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@53
-@4|v+0#00e0003&|o|i|d| +0#0000000&|n|o|O|p|8|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-@4|/+0#0000e05&|*|/|\|/|\|/|\|*|/| +0#0000000&|;| |}+0#0000001#ffff4012| 
+0#0000000#ffffff0@56
-|}+0#00e0003&| +0#0000000&@73
-@75
-|/+0#0000e05&|*| +0#0000000&@72
-@57|9|1|,|2|-|5| @7|8|2|%| 
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@12|*| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| |*+0#0000e05&|/| +0#0000000&@41
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|p+0#00e0003&|u|b|l|i|c| 
+0#0000000&|O+0#e000002&|b|j|e|c|t| 
+0#0000000&|a|p@1|l|y|(|O+0#e000002&|b|j|e|c|t| +0#0000000&|o|)| 
|{+0#ffffff16#ff404010| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#ffffff16#ff404010|;+0#0000000#ffffff0| @16
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@7|}+0#ffffff16#ff404010|)+0#0000000#ffffff0|.|a|p@1|l|y|(| 
@55
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@7|(|n+0#af5f00255&|e|w| 
+0#0000000&|F|u|n|c|t|i|o|n|<|O+0#e000002&|b|j|e|c|t|,+0#0000000&| 
|O+0#e000002&|b|j|e|c|t|>+0#0000000&|(|)| |{+0#ffffff16#ff404010| 
+0#0000000#ffffff0@31
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|/+0#0000e05&|*@1| 
+0#e000e06&|{|@|i|n|h|e|r|i|t|D|o|c|}| +0#0000000&@43
+| +0#0000e05#a8a8a8255@1| +0#e000e06#ffffff0@12>*+0#0000e05&|/| +0#0000000&@57
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@11|p+0#00e0003&|u|b|l|i|c| 
+0#0000000&|O+0#e000002&|b|j|e|c|t| 
+0#0000000&|a|p@1|l|y|(|O+0#e000002&|b|j|e|c|t| +0#0000000&|o|)| 
|{+0#ffffff16#ff404010| +0#0000000#ffffff0|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|o|;| |}+0#ffffff16#ff404010|;+0#0000000#ffffff0| @16
+| +0#0000e05#a8a8a8255@1| 
+0#0000000#ffffff0@7|}+0#ffffff16#ff404010|)+0#0000000#ffffff0@1|;| @60
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#00e0003&| +0#0000000&@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@4|*| +0#e000e06&|N|o| 
|o|p|e|r|a|t|i|o|n|.| +0#0000000&@52
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@4|*|/| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|1|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|2|(|)| @56
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+@57|9|1|,|5|-|1|4| @6|6|7|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_06.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_06.dump
index 3c6bf631a..460e21e3e 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_06.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_06.dump
@@ -1,20 +1,20 @@
-|/+0#0000e05#ffffff0|*| +0#0000000&@72
-| +0#0000e05&|*| |S|o|m|e| |n|o|t|e|.| +0#0000000&@61
-| +0#0000e05&|*| |{| +0#0000000&@70
-| +0#0000e05&|*| |}| +0#0000000&@70
-| +0#0000e05&|*|/| +0#0000000&@71
->/+0#0000e05&|*@1| +0#0000000&@71
-| +0#0000e05&|*| +0#e000e06&|A| |s|u|m@1|a|r|y|.| +0#0000000&@61
-| +0#0000e05&|*| |{| +0#0000000&@70
-| +0#0000e05&|*| |}| +0#0000000&@70
-| +0#0000e05&|*|/| +0#0000000&@71
-|/+0#0000e05&@2| +0#e000e06&|A| |s|u|m@1|a|r|y|.| +0#0000000&@60
-|/+0#0000e05&@2| +0#0000000&|{+0#0000e05&| +0#0000000&@69
-|/+0#0000e05&@2| +0#0000000&|}+0#0000e05&| +0#0000000&@69
-|/+0#0000e05&@1| +0#0000000&@72
-|/+0#0000e05&@1| |{| +0#0000000&@70
-|/+0#0000e05&@1| |}| +0#0000000&@70
-@75
-|/+0#0000e05&|*| |1|2@1|||.@67
-@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@27
-@57|1|0|9|,|1| @8|9@1|%| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|3|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*@1| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000e05&|*|/| +0#0000000&@48
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|4|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>/+0#0000e05&|*|/|\|/|\|/|\|*|/| 
+0#0000000&|;| |}+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@3|/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0@3|/@2| +0#0000000&@65
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|5|(|)| |{+0#0000001#ffff4012| 
+0#0000000#ffffff0|}+0#0000001#ffff4012| +0#0000000#ffffff0@52
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|6|(|)| @56
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|{+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|7|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|}+0#0000001#ffff4012| 
+0#0000000#ffffff0@67
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+@57|1|0|9|,|2|-|5| @6|8|1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_07.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_07.dump
index 5afae5646..3080fe9db 100644
--- a/runtime/syntax/testdir/dumps/java_unfoldment_07.dump
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_07.dump
@@ -1,20 +1,20 @@
-|/+0#0000e05#ffffff0|*| |1|2@1|||.@67
-@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@27
->}+0#00e0003&| +0#0000000&@73
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|2@1|,|1| @8|B|o|t| 
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&@2| 
+0#e000e06&|N|o| |o|p|e|r|a|t|i|o|n|.| +0#0000000&@51
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|8|(|)| |{+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|/+0#0000e05&|*|/|\|/|\|/|\|*|/| 
+0#0000000&|;| |}+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#0000e05#a8a8a8255@1|}+0#00e0003#ffffff0| +0#0000000&@71
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1>/+0&#ffffff0|*| +0#0000000&@70
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| |S|o|m|e| |n|o|t|e|.| +0#0000000&@59
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| |{| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| |}| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*|/| +0#0000000&@69
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*@1| +0#0000000&@69
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| +0#e000e06&|A| |s|u|m@1|a|r|y|.| 
+0#0000000&@59
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| |{| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*| |}| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0&#ffffff0|*|/| +0#0000000&@69
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@2| +0#e000e06&|A| |s|u|m@1|a|r|y|.| 
+0#0000000&@58
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@2| +0#0000000&|{+0#0000e05&| 
+0#0000000&@67
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@2| +0#0000000&|}+0#0000e05&| 
+0#0000000&@67
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| +0#0000000&@70
+@57|1|2|7|,|1| @8|9|6|%| 
diff --git a/runtime/syntax/testdir/dumps/java_unfoldment_08.dump 
b/runtime/syntax/testdir/dumps/java_unfoldment_08.dump
new file mode 100644
index 000000000..aa5efb48c
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_unfoldment_08.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| +0#0000000&@70
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |{| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |}| +0#0000000&@68
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2|0|||.@65
+| +0&#a8a8a8255@1|.+0&#ffffff0@21|*|/| 
+0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|a|b|l|e| 
|{+0#00e0003&| +0#0000000&@25
+| +0#0000e05#a8a8a8255@1>}+0#00e0003#ffffff0| +0#0000000&@71
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|4|5|,|1| @8|B|o|t| 
diff --git a/runtime/syntax/testdir/input/java_enfoldment.java 
b/runtime/syntax/testdir/input/java_enfoldment.java
index 27f43798d..ecf763905 100644
--- a/runtime/syntax/testdir/input/java_enfoldment.java
+++ b/runtime/syntax/testdir/input/java_enfoldment.java
@@ -1,9 +1,29 @@
-// VIM_TEST_SETUP setlocal foldenable foldcolumn=2 foldmethod=syntax
+// VIM_TEST_SETUP setlocal fen fdc=2 fdl=8 fdm=syntax
 // VIM_TEST_SETUP let g:java_foldtext_show_first_or_second_line = 1
+// VIM_TEST_SETUP let g:java_highlight_java_lang = 1
+// VIM_TEST_SETUP let g:java_ignore_folding = "x"
 // VIM_TEST_SETUP let g:java_lookbehind_byte_counts = {'javaBlock': -1}
+
+
+
+
+
 // VIM_TEST_SETUP highlight link javaBlockOtherStart Structure
 // VIM_TEST_SETUP highlight link javaBlockStart Todo
 
+
+
+/***/  import java.lang.Comparable;    /*
+import java.lang.Object;
+import java.lang.String;
+*/
+import java.lang.String;
+
+import java.lang.Comparable;   /***/
+import java.lang.Object;       // //
+import java.lang.String;       /***/
+
+import java.util.function.Function;
        @SuppressWarnings({
        """
        bespoke
@@ -24,11 +44,14 @@
 """
 })
 class FoldingTests {
-       interface Foldenable
+       interface Foldable
        {
        }
 
        static {
+               String import⁠$ = """
+import java.lang.String;
+""";
                new Object() {
                        {
                                {
@@ -58,12 +81,12 @@ out: {
 }
        }
 /*\\*/ {
-               (new java.util.function.Function<Object, Object>() {
+               (new Function<Object, Object>() {
                        /**
                         * {@inheritDoc} */
                        public Object apply(Object o) { return o; };
                }).apply(
-               (new java.util.function.Function<Object, Object>() {
+               (new Function<Object, Object>() {
                        /** {@inheritDoc}
                         */
                        public Object apply(Object o) { return o; };
@@ -118,5 +141,5 @@ out: {
 // {
 // }
 
-/* 
122|..........................................................................................*/
 interface Foldenable {
+/* 
120|..........................................................................................*/
 interface Foldable {
 }
diff --git a/runtime/syntax/testdir/input/java_unfoldment.java 
b/runtime/syntax/testdir/input/java_unfoldment.java
index 3d8bb6855..fb3a96f8e 100644
--- a/runtime/syntax/testdir/input/java_unfoldment.java
+++ b/runtime/syntax/testdir/input/java_unfoldment.java
@@ -1,9 +1,29 @@
-// VIM_TEST_SETUP setlocal nofoldenable
-// VIM_TEST_SETUP let g:java_mark_braces_in_parens_as_errors = 1
+// VIM_TEST_SETUP setlocal fen fdc=2 fdl=8 fdm=syntax
+// VIM_TEST_SETUP let g:java_highlight_java_lang = 1
+// VIM_TEST_SETUP let g:java_ignore_folding = "bcdi"
 // VIM_TEST_SETUP let g:java_lookbehind_byte_counts = {'javaBlock': -1}
+// VIM_TEST_SETUP let g:java_mark_braces_in_parens_as_errors = 1
+
+
+
+
+
 // VIM_TEST_SETUP highlight link javaBlockOtherStart Structure
 // VIM_TEST_SETUP highlight link javaBlockStart Todo
 
+
+
+/***/  import java.lang.Comparable;    /*
+import java.lang.Object;
+import java.lang.String;
+*/
+import java.lang.String;
+
+import java.lang.Comparable;   /***/
+import java.lang.Object;       // //
+import java.lang.String;       /***/
+
+import java.util.function.Function;
        @SuppressWarnings({
        """
        bespoke
@@ -24,11 +44,14 @@
 """
 })
 class UnfoldingTests {
-       interface Unfoldenable
+       interface Unfoldable
        {
        }
 
        static {
+               String import⁠$ = """
+import java.lang.String;
+""";
                new Object() {
                        {
                                {
@@ -58,12 +81,12 @@ out: {
 }
        }
 /*\\*/ {
-               (new java.util.function.Function<Object, Object>() {
+               (new Function<Object, Object>() {
                        /**
                         * {@inheritDoc} */
                        public Object apply(Object o) { return o; };
                }).apply(
-               (new java.util.function.Function<Object, Object>() {
+               (new Function<Object, Object>() {
                        /** {@inheritDoc}
                         */
                        public Object apply(Object o) { return o; };
@@ -118,5 +141,5 @@ out: {
 // {
 // }
 
-/* 
122|........................................................................................*/
 interface Unfoldenable {
+/* 
120|........................................................................................*/
 interface Unfoldable {
 }

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1v6YSO-002KwJ-3M%40256bit.org.

Raspunde prin e-mail lui