runtime(java): Match raw-, non-generic-, and generic-type names of "java.lang"

Commit: 
https://github.com/vim/vim/commit/c413ac70680f25e6a8d175982fab8c5cad007601
Author: Aliaksei Budavei <0x000...@gmail.com>
Date:   Tue Jun 10 20:37:39 2025 +0200

    runtime(java): Match raw-, non-generic-, and generic-type names of 
"java.lang"
    
    And only match innermost element types of parameterised
    array types.
    
    References:
    https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.8
    https://docs.oracle.com/javase/specs/jls/se21/html/jls-6.html#jls-6.1
    https://docs.oracle.com/javase/specs/jls/se21/html/jls-10.html
    
    closes: #17499
    
    Signed-off-by: Aliaksei Budavei <0x000...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 0cb54349a..7c58ef222 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 <clau...@fleiner.com>
 " Repository:          https://github.com/zzzyxwvut/java-vim.git
-" Last Change:         2025 Jun 01
+" Last Change:         2025 Jun 10
 
 " Please check ":help java.vim" for comments on some of the options
 " available.
@@ -202,30 +202,6 @@ if fnamemodify(bufname("%"), ":t") =~ 
'^module-info\>\%(\.class\>\)\@!'
   endif
 endif
 
-" Fancy parameterised types (JLS-17, §4.5).
-"
-" Note that false positives may elsewhere occur whenever an identifier
-" is butted against a less-than operator.  Cf. (X<Y) and (X < Y).
-if exists("g:java_highlight_generics")
-  syn keyword javaWildcardBound contained extends super
-
-  " Parameterised types are delegated to javaGenerics (s:ctx.gsg) and
-  " are not matched with javaTypeArgument.
-  exec 'syn match javaTypeArgument contained "' . s:ff.Engine('\%#=2', '') . 
'?\|\%(\<\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\)\[\]\|\%(\<\K\k*\>\.\)*\<'
 . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\)\%(\[\]\)*"'
-
-  for s:ctx in [{'dsg': 'javaDimExpr', 'gsg': 'javaGenerics', 'ghg': 
'javaGenericsC1', 'csg': 'javaGenericsX', 'c': ''},
-      \ {'dsg': 'javaDimExprX', 'gsg': 'javaGenericsX', 'ghg': 
'javaGenericsC2', 'csg': 'javaGenerics', 'c': ' contained'}]
-    " Consider array creation expressions of reifiable types.
-    exec 'syn region ' . s:ctx.dsg . ' contained transparent matchgroup=' . 
s:ctx.ghg . ' start="\[" end="\]" nextgroup=' . s:ctx.dsg . ' skipwhite skipnl'
-    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 . 
',javaAnnotation,javaTypeArgument,javaWildcardBound,javaType,@javaClasses 
nextgroup=' . s:ctx.dsg . ' skipwhite skipnl'
-  endfor
-
-  unlet s:ctx
-  hi def link javaWildcardBound        Question
-  hi def link javaGenericsC1   Function
-  hi def link javaGenericsC2   Type
-endif
-
 if exists("g:java_highlight_java_lang_ids")
   let g:java_highlight_all = 1
 endif
@@ -242,12 +218,15 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   syn keyword javaR_JavaLang ArithmeticException 
ArrayIndexOutOfBoundsException ArrayStoreException ClassCastException 
IllegalArgumentException IllegalMonitorStateException 
IllegalThreadStateException IndexOutOfBoundsException 
NegativeArraySizeException NullPointerException NumberFormatException 
RuntimeException SecurityException StringIndexOutOfBoundsException 
IllegalStateException UnsupportedOperationException 
EnumConstantNotPresentException TypeNotPresentException IllegalCallerException 
LayerInstantiationException WrongThreadException MatchException
   syn cluster javaClasses add=javaR_JavaLang
   hi def link javaR_JavaLang javaR_Java
-  " Member enumerations:
-  exec 'syn match javaC_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<State\>"'
-  exec 'syn match javaC_JavaLang "\%(\<Character\.\)\@' . s:ff.Peek('10', '') 
. '<=\<UnicodeScript\>"'
-  exec 'syn match javaC_JavaLang "\%(\<ProcessBuilder\.Redirect\.\)\@' . 
s:ff.Peek('24', '') . '<=\<Type\>"'
-  exec 'syn match javaC_JavaLang "\%(\<StackWalker\.\)\@' . s:ff.Peek('12', 
'') . '<=\<Option\>"'
-  exec 'syn match javaC_JavaLang "\%(\<System\.Logger\.\)\@' . s:ff.Peek('14', 
'') . '<=\<Level\>"'
+  syn keyword javaC_JavaLang Boolean Character ClassLoader Compiler Double 
Float Integer Long Math Number Object Process Runtime SecurityManager String 
StringBuffer Thread ThreadGroup Byte Short Void Package RuntimePermission 
StrictMath StackTraceElement ProcessBuilder StringBuilder Module ModuleLayer 
StackWalker Record
+  syn match   javaC_JavaLang "\<System\>"      " See javaDebug.
+  " Generic non-interfaces:
+  syn match   javaC_JavaLang "\<Class\>"
+  syn match   javaC_JavaLang "\<InheritableThreadLocal\>"
+  syn match   javaC_JavaLang "\<ThreadLocal\>"
+  syn match   javaC_JavaLang "\<Enum\>"
+  syn match   javaC_JavaLang "\<ClassValue\>"
+  exec 'syn match javaC_JavaLang "\%(\<Enum\.\)\@' . s:ff.Peek('5', '') . 
'<=\<EnumDesc\>"'
   " Member classes:
   exec 'syn match javaC_JavaLang "\%(\<Character\.\)\@' . s:ff.Peek('10', '') 
. '<=\<Subset\>"'
   exec 'syn match javaC_JavaLang "\%(\<Character\.\)\@' . s:ff.Peek('10', '') 
. '<=\<UnicodeBlock\>"'
@@ -255,21 +234,12 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   exec 'syn match javaC_JavaLang "\%(\<ModuleLayer\.\)\@' . s:ff.Peek('12', 
'') . '<=\<Controller\>"'
   exec 'syn match javaC_JavaLang "\%(\<Runtime\.\)\@' . s:ff.Peek('8', '') . 
'<=\<Version\>"'
   exec 'syn match javaC_JavaLang "\%(\<System\.\)\@' . s:ff.Peek('7', '') . 
'<=\<LoggerFinder\>"'
-  syn keyword javaC_JavaLang Boolean Character ClassLoader Compiler Double 
Float Integer Long Math Number Object Process Runtime SecurityManager String 
StringBuffer Thread ThreadGroup Byte Short Void Package RuntimePermission 
StrictMath StackTraceElement ProcessBuilder StringBuilder Module ModuleLayer 
StackWalker Record
-  syn match   javaC_JavaLang "\<System\>"      " See javaDebug.
-
-  if !exists("g:java_highlight_generics")
-    " The non-interface parameterised names of java.lang members.
-    exec 'syn match javaC_JavaLang "\%(\<Enum\.\)\@' . s:ff.Peek('5', '') . 
'<=\<EnumDesc\>"'
-    syn keyword javaC_JavaLang Class InheritableThreadLocal ThreadLocal Enum 
ClassValue
-  endif
-
-  " As of JDK 24, SecurityManager is rendered non-functional
-  "    (JDK-8338625).
-  "    (Note that SecurityException and RuntimePermission are still
-  "    not deprecated.)
-  " As of JDK 21, Compiler is no more (JDK-8205129).
-  syn keyword javaLangDeprecated Compiler SecurityManager
+  " Member enumerations:
+  exec 'syn match javaC_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<State\>"'
+  exec 'syn match javaC_JavaLang "\%(\<Character\.\)\@' . s:ff.Peek('10', '') 
. '<=\<UnicodeScript\>"'
+  exec 'syn match javaC_JavaLang "\%(\<ProcessBuilder\.Redirect\.\)\@' . 
s:ff.Peek('24', '') . '<=\<Type\>"'
+  exec 'syn match javaC_JavaLang "\%(\<StackWalker\.\)\@' . s:ff.Peek('12', 
'') . '<=\<Option\>"'
+  exec 'syn match javaC_JavaLang "\%(\<System\.Logger\.\)\@' . s:ff.Peek('14', 
'') . '<=\<Level\>"'
   syn cluster javaClasses add=javaC_JavaLang
   hi def link javaC_JavaLang javaC_Java
   syn keyword javaE_JavaLang AbstractMethodError ClassCircularityError 
ClassFormatError Error IllegalAccessError IncompatibleClassChangeError 
InstantiationError InternalError LinkageError NoClassDefFoundError 
NoSuchFieldError NoSuchMethodError OutOfMemoryError StackOverflowError 
ThreadDeath UnknownError UnsatisfiedLinkError VerifyError VirtualMachineError 
ExceptionInInitializerError UnsupportedClassVersionError AssertionError 
BootstrapMethodError
@@ -279,6 +249,9 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   syn cluster javaClasses add=javaX_JavaLang
   hi def link javaX_JavaLang javaX_Java
   syn keyword javaI_JavaLang Cloneable Runnable CharSequence Appendable 
Deprecated Override Readable SuppressWarnings AutoCloseable SafeVarargs 
FunctionalInterface ProcessHandle
+  " Generic non-classes:
+  syn match   javaI_JavaLang "\<Comparable\>"
+  syn match   javaI_JavaLang "\<Iterable\>"
   " Member interfaces:
   exec 'syn match javaI_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<UncaughtExceptionHandler\>"'
   exec 'syn match javaI_JavaLang "\%(\<ProcessHandle\.\)\@' . s:ff.Peek('14', 
'') . '<=\<Info\>"'
@@ -287,16 +260,10 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   exec 'syn match javaI_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<Builder\>"'
   exec 'syn match javaI_JavaLang "\%(\<Thread\.Builder\.\)\@' . 
s:ff.Peek('15', '') . '<=\<OfPlatform\>"'
   exec 'syn match javaI_JavaLang "\%(\<Thread\.Builder\.\)\@' . 
s:ff.Peek('15', '') . '<=\<OfVirtual\>"'
-
-  if !exists("g:java_highlight_generics")
-    " The non-class parameterised names of java.lang members.
-    syn keyword javaI_JavaLang Comparable Iterable
-  endif
-
   syn cluster javaClasses add=javaI_JavaLang
   hi def link javaI_JavaLang javaI_Java
 
-  " Common groups for generated "javaid.vim" syntax items.
+  " Common groups for generated "javaid.vim" syntax items:
   hi def link javaR_Java javaR_
   hi def link javaC_Java javaC_
   hi def link javaE_Java javaE_
@@ -319,10 +286,36 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   syn match javaLangObject "\<hashCode\>"
   syn match javaLangObject "\<toString\>"
   hi def link javaLangObject javaConstant
+
+  " As of JDK 24, SecurityManager is rendered non-functional
+  "    (JDK-8338625).
+  "    (Note that SecurityException and RuntimePermission are still
+  "    not deprecated.)
+  " As of JDK 21, Compiler is no more (JDK-8205129).
+  syn keyword javaLangDeprecated Compiler SecurityManager
 endif
 
 runtime syntax/javaid.vim
 
+" Type parameter sections of generic and parameterised types (JLS-17,
+" §4.5).
+"
+" Note that false positives may elsewhere occur whenever an identifier
+" is butted against a less-than operator.  Cf. (X<Y) and (X < Y).
+if exists("g:java_highlight_generics")
+  syn keyword javaWildcardBound contained extends super
+
+  for s:ctx in [{'gsg': 'javaGenerics', 'ghg': 'javaGenericsC1', 'csg': 
'javaGenericsX', 'c': ''},
+      \ {'gsg': 'javaGenericsX', 'ghg': 'javaGenericsC2', 'csg': 
'javaGenerics', 'c': ' contained'}]
+    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 . 
',javaAnnotation,javaWildcardBound,javaType,@javaClasses'
+  endfor
+
+  unlet s:ctx
+  hi def link javaWildcardBound        Question
+  hi def link javaGenericsC1   Function
+  hi def link javaGenericsC2   Type
+endif
+
 if exists("g:java_space_errors")
   if !exists("g:java_no_trail_space_error")
     syn match javaSpaceError "\s\+$"
diff --git a/runtime/syntax/testdir/dumps/java_generics_00.dump 
b/runtime/syntax/testdir/dumps/java_generics_00.dump
index 5e762c5c6..c9aa70c57 100644
--- a/runtime/syntax/testdir/dumps/java_generics_00.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_00.dump
@@ -1,20 +1,20 @@
 >/+0#0000e05#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|_|f|u|n|c|t|i|o|n|s| |=| |'|s|t|y|l|e|'| 
 >+0#0000000&@16
 |/+0#0000e05&@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|_|g|e|n|e|r|i|c|s| |=| |1| +0#0000000&@23
+|/+0#0000e05&@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&@22
 |/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| 
|j|a|v|a|G|e|n|e|r|i|c|s|C|1| |T|o|d|o| +0#0000000&@29
 |/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| 
|j|a|v|a|G|e|n|e|r|i|c|s|C|2| |E|r@1|o|r| +0#0000000&@28
 @75
+@75
+@75
+@75
+@75
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|m|a|t|h|.|B|i|g|I|n|t|e|g|e|r|;| @46
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|C|o|n|s|u|m|e|r|;| @39
 |i+0#e000e06&|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|;| @39
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|L|o|n|g|F|u|n|c|t|i|o|n|;| @35
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|P|r|e|d|i|c|a|t|e|;| @38
 @75
-|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|T|e|s|t|s|<|T+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N|u|m|b|e|r| |&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@10
+|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|T|e|s|t|s|<|T+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N+0#e000002&|u|m|b|e|r| +0#0000000&|&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@10
 |{| @2|/+0#0000e05&@1| |J|D|K| |2|1|+|.| +0#0000000&@59
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#0000000#ffffff0|b|j|e|c|t|,|
 |O|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| |=| @5
-@24|G|e|n|e|r|i|c|s|T|e|s|t|s|.|y|0|(|)|;| @31
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|B+0#0000000#ffffff0|i|g|I|n|t|e|g|e|r|,|
 |B|i|g|I|n|t|e|g|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|F|A|C|T|O|R|I|A|L|_|2|0@2| |=| @8
-@16|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|B|i|g|I|n|t|e|g|e|r|,| 
|B|i|g|I|n|t|e|g|e|r|>|y|1|(|)| @16
-@8|.|a|p@1|l|y|(|f+0#00e0e07&| |-|>| +0#0000000&|x+0#00e0e07&| |-|>| 
+0#0000000&|(|x|.|c|o|m|p|a|r|e|T|o|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)| |<| 
|1+0#e000002&|)+0#0000000&| @16
-@12|?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#e000002#ffffff0|b|j|e|c|t|,+0#0000000&|
 |O+0#e000002&|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O+0#e000002&|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| 
|=| @5
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_01.dump 
b/runtime/syntax/testdir/dumps/java_generics_01.dump
index 385fc83d2..6eb8eae39 100644
--- a/runtime/syntax/testdir/dumps/java_generics_01.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_01.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@3|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#0000000#ffffff0|b|j|e|c|t|,|
 |O|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| |=| @5
+|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|.|L|o|n|g|F|u|n|c|t|i|o|n|;| @35
+|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|P|r|e|d|i|c|a|t|e|;| @38
+@75
+|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|T|e|s|t|s|<|T+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N+0#e000002&|u|m|b|e|r| +0#0000000&|&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@10
+|{| @2|/+0#0000e05&@1| |J|D|K| |2|1|+|.| +0#0000000&@59
+@4>s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#e000002#ffffff0|b|j|e|c|t|,+0#0000000&|
 |O+0#e000002&|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O+0#e000002&|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| 
|=| @5
 @24|G|e|n|e|r|i|c|s|T|e|s|t|s|.|y|0|(|)|;| @31
 @4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|B+0#0000000#ffffff0|i|g|I|n|t|e|g|e|r|,|
 |B|i|g|I|n|t|e|g|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|F|A|C|T|O|R|I|A|L|_|2|0@2| |=| @8
 @16|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|B|i|g|I|n|t|e|g|e|r|,| 
|B|i|g|I|n|t|e|g|e|r|>|y|1|(|)| @16
 @8|.|a|p@1|l|y|(|f+0#00e0e07&| |-|>| +0#0000000&|x+0#00e0e07&| |-|>| 
+0#0000000&|(|x|.|c|o|m|p|a|r|e|T|o|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)| |<| 
|1+0#e000002&|)+0#0000000&| @16
-@12>?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
+@12|?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
 @12|:| 
|x|.|m|u|l|t|i|p|l|y|(|f|.|a|p@1|l|y|(|x|.|s|u|b|t|r|a|c|t|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)@3|;|
 @11
 @75
-| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T|1|>| 
|Y+0#0000001#ffff4012|0|<|T+0#0000000#ffffff0|1|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|y|0|(|)| +0#0000000&@47
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T|1|>| 
|Y+0#0000001#ffff4012|0|<|T+0#00e0e07#ffffff0|1|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|y|0|(|)| +0#0000000&@47
 @4|{| @69
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,+0#00e0e07&|
 |T+0#0000000&|1|>+0#0000001#ffff4012| +0#00e0e07#ffffff0|f|)| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(| @27
+@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#00e0e07#ffffff0|1|,|
 |T|1|>+0#0000001#ffff4012| +0#00e0e07#ffffff0|f|)| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(| @27
 @20|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|T|1|>|y|0|(|)| @32
 @24|.|a|p@1|l|y|(|f|)@1|;| @39
 @4|}| @69
-@75
-| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T|1|,| |T|2|>| 
|Y+0#0000001#ffff4012|1|<|T+0#0000000#ffffff0|1|,+0#00e0e07&| 
|T+0#0000000&|2|>+0#0000001#ffff4012| +0#00e0e07#ffffff0|y|1|(|)| +0#0000000&@39
-@4|{| @69
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,+0#00e0e07&|
 |T+0#0000000&|2|>+0#ffffff16#ff404010|,+0#00e0e07#ffffff0| 
|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,+0#00e0e07&| 
|T+0#0000000&|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|f|)| |-|>| +0#0000000&@8
-@12|(+0#00e0e07&|T|1| |x|)| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @18
-@57|1|9|,|4|-|1|3| @6|1|0|%| 
+@57|1|9|,|2|-|5| @8|9|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_02.dump 
b/runtime/syntax/testdir/dumps/java_generics_02.dump
index af51ce3f8..89242a6c9 100644
--- a/runtime/syntax/testdir/dumps/java_generics_02.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_02.dump
@@ -1,9 +1,14 @@
-| +0&#ffffff0@11|(+0#00e0e07&|T|1| |x|)| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @18
+| +0&#ffffff0@3|}| @69
+@75
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T|1|,| |T|2|>| 
|Y+0#0000001#ffff4012|1|<|T+0#00e0e07#ffffff0|1|,| |T|2|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|y|1|(|)| +0#0000000&@39
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#00e0e07#ffffff0|1|,|
 |T|2|>+0#ffffff16#ff404010|,+0#00e0e07#ffffff0| 
|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#00e0e07#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| +0#00e0e07#ffffff0|f|)| |-|>| 
+0#0000000&@8
+@12>(+0#00e0e07&|T|1| |x|)| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @18
 @24|.|a|p@1|l|y|(|f|)@1| @40
 @16|.|a|p@1|l|y|(|x|)|;| @48
 @4|}| @69
 @75
-@4>s+0#00e0003&|t|a|t|i|c|<+0#0000000&|T|>| |v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|(|T| |d|u|m@1|y|)| |{| |}| @38
+@4|s+0#00e0003&|t|a|t|i|c|<+0#0000000&|T|>| |v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|(|T| |d|u|m@1|y|)| |{| |}| @38
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|a|l|p|h|a|<|T|>| |{| |}| @48
 @75
@@ -12,9 +17,4 @@
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|Y+0#0000001#ffff4012|1|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#0000001#ffff4012| +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,|
 |T|2|>+0#0000001#ffff4012|,+0#0000000#ffffff0| @6
 @20|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#0000001#ffff4012|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| @36
 @20|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| +0#0000000#ffffff0|{| |}| @33
-@75
-@4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@28
-@4|{| @69
-| +0#00e0e07&@7|b+0#00e0003&|o@1|l|e|a|n| 
+0#00e0e07&|i|s|E|m|p|t|y|(|)|;+0#0000000&| @48
-| +0#00e0e07&@7|E| |p|e@1|k|(|)|;+0#0000000&| @57
-@57|3|7|,|2|-|5| @7|2|5|%| 
+@57|3|7|,|4|-|1|3| @6|2@1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_03.dump 
b/runtime/syntax/testdir/dumps/java_generics_03.dump
index daa33f14e..5a61dddcf 100644
--- a/runtime/syntax/testdir/dumps/java_generics_03.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_03.dump
@@ -1,20 +1,20 @@
-| +0#00e0e07#ffffff0@7|E| |p|e@1|k|(|)|;+0#0000000&| @57
-| +0#00e0e07&@7|E| |p|o|p|(|)|;+0#0000000&| @58
-| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|o|p|A|l@1|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#0000000#ffffff0|
 +0#00e0e07&|s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|)|;+0#0000000&| @15
-| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|o|p|S|o|m|e|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#0000000#ffffff0|
 +0#00e0e07&|s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|,| +0#0000000&@15
-| +0#00e0e07&@19|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#0000000#ffffff0| 
+0#00e0e07&|s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|f|i|l|t|e|r|)|;+0#0000000&| @25
-| 
+0#00e0e07&@7>S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|p|u|s|h|(|E| |e|l|e|m|e|n|t|)|;+0#0000000&| @37
-| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|u|s|h|A|l@1|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#0000000#ffffff0|
 +0#00e0e07&|e+0#00e0003&|x|t|e|n|d|s| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|)|;+0#0000000&| @13
-| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|u|s|h|S|o|m|e|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#0000000#ffffff0|
 +0#00e0e07&|e+0#00e0003&|x|t|e|n|d|s| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|,| +0#0000000&@13
-| +0#00e0e07&@19|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#0000000#ffffff0| 
+0#00e0e07&|s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|E+0#0000000&|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|f|i|l|t|e|r|)|;+0#0000000&| @25
-| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|w|i|n|d|(|C+0#0000001#ffff4012|o|n|s|u|m|e|r|<|?+0#0000000#ffffff0|
 +0#00e0e07&|s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|S+0#ffffff16#ff404010|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|a|c|t|i|o|n|)|;+0#0000000&| @9
-@4|}| @69
+| 
+0&#ffffff0@19|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| +0#0000000#ffffff0|{| |}| @33
 @75
-@4|s+0#00e0003&|e|a|l|e|d| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0@32
+@4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@28
 @4|{| @69
-| +0#00e0e07&@7|i+0#00e0003&|n|t| +0#00e0e07&|r|a|d|i|x|(|)|;+0#0000000&| @54
-| +0#00e0e07&@7|N| |v|a|l|u|e|(|)|;+0#0000000&| @56
+| +0#00e0e07&@7|b+0#00e0003&|o@1|l|e|a|n| 
+0#00e0e07&|i|s|E|m|p|t|y|(|)|;+0#0000000&| @48
+| +0#00e0e07&@7>E| |p|e@1|k|(|)|;+0#0000000&| @57
+| +0#00e0e07&@7|E| |p|o|p|(|)|;+0#0000000&| @58
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|o|p|A|l@1|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#00e0e07#ffffff0|
 |s+0#00e0003&|u|p|e|r| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|)|;+0#0000000&| @15
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|o|p|S|o|m|e|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#00e0e07#ffffff0|
 |s+0#00e0003&|u|p|e|r| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|,| +0#0000000&@15
+| +0#00e0e07&@19|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#00e0e07#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|f|i|l|t|e|r|)|;+0#0000000&| @25
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|p|u|s|h|(|E| |e|l|e|m|e|n|t|)|;+0#0000000&| @37
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|u|s|h|A|l@1|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#00e0e07#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|)|;+0#0000000&| @13
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|p|u|s|h|S|o|m|e|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#00e0e07#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|e|l|e|m|e|n|t|s|,| +0#0000000&@13
+| +0#00e0e07&@19|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#00e0e07#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#00e0e07&|E|>+0#0000001#ffff4012| 
+0#00e0e07#ffffff0|f|i|l|t|e|r|)|;+0#0000000&| @25
+| 
+0#00e0e07&@7|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|w|i|n|d|(|C+0#0000001#ffff4012|o|n|s|u|m|e|r|<|?+0#00e0e07#ffffff0|
 |s+0#00e0003&|u|p|e|r| 
+0#00e0e07&|S+0#ffffff16#ff404010|t|a|c|k|a|b|l|e|<|E+0#00e0e07#ffffff0|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|a|c|t|i|o|n|)|;+0#0000000&| @9
 @4|}| @69
 @75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
-@57|5@1|,|3|-|9| @7|4|0|%| 
+@4|s+0#00e0003&|e|a|l|e|d| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012| +0#0000000#ffffff0@32
+@4|{| @69
+@57|5@1|,|3|-|9| @7|3|5|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_04.dump 
b/runtime/syntax/testdir/dumps/java_generics_04.dump
index 2e0203766..116e565b0 100644
--- a/runtime/syntax/testdir/dumps/java_generics_04.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_04.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@3|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+| +0&#ffffff0@3|{| @69
+| +0#00e0e07&@7|i+0#00e0003&|n|t| +0#00e0e07&|r|a|d|i|x|(|)|;+0#0000000&| @54
+| +0#00e0e07&@7|N| |v|a|l|u|e|(|)|;+0#0000000&| @56
+@4|}| @69
+@75
+@4>r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 | +0#00e0e07&@7|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|i+0#00e0003&|n|t| 
+0#00e0e07&|r|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|2+0#e000002&|;+0#0000000&| |}| @34
 @4|}| @69
 @75
-@4>r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|D+0#0000001#ffff4012|e|c|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|D+0#0000001#ffff4012|e|c|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 | +0#00e0e07&@7|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|i+0#00e0003&|n|t| 
+0#00e0e07&|r|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|1+0#e000002&|0|;+0#0000000&| |}| @33
 @4|}| @69
 @75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 | +0#00e0e07&@7|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|i+0#00e0003&|n|t| 
+0#00e0e07&|r|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|1+0#e000002&|6|;+0#0000000&| |}| @33
 @4|}| @69
-@75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
-@4|{| @69
-| +0#00e0e07&@7|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|i+0#00e0003&|n|t| 
+0#00e0e07&|r|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|8+0#e000002&|;+0#0000000&| |}| @34
-@4|}| @69
-@57|7|3|,|2|-|5| @7|5@1|%| 
+@57|7|3|,|2|-|5| @7|4|8|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_05.dump 
b/runtime/syntax/testdir/dumps/java_generics_05.dump
index ab4b7f9f7..54eabb143 100644
--- a/runtime/syntax/testdir/dumps/java_generics_05.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_05.dump
@@ -1,20 +1,20 @@
 | +0&#ffffff0@3|}| @69
 @75
-| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| 
+0#00e0e07&|N+0#0000001#ffff4012|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|f|r|o|m|D|e|c|i|m|a|l|(|l+0#00e0003&|o|n|g| 
+0#00e0e07&|x|,| |i+0#00e0003&|n|t| +0#00e0e07&|r|a|d|i|x|)| +0#0000000&@23
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
-@8|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|P|a|i|r|(|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|N+0#ffffff16#ff404010|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|a|,| @28
-@20>L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|S+0#0000000#ffffff0|t|r|i|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|b|)| |{| |}| @27
+| +0#00e0e07&@7|p+0#00e0003&|u|b|l|i|c| +0#00e0e07&|i+0#00e0003&|n|t| 
+0#00e0e07&|r|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|8+0#e000002&|;+0#0000000&| |}| @34
+@4>}| @69
+@75
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| 
+0#00e0e07&|N+0#0000001#ffff4012|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|f|r|o|m|D|e|c|i|m|a|l|(|l+0#00e0003&|o|n|g| 
+0#00e0e07&|x|,| |i+0#00e0003&|n|t| +0#00e0e07&|r|a|d|i|x|)| +0#0000000&@23
+@4|{| @69
+@8|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|P|a|i|r|(|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|N+0#ffffff16#ff404010|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|a|,| @28
+@20|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|S+0#e000002#ffffff0|t|r|i|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|b|)| |{| |}| @27
 @8|f+0#00e0003&|i|n|a|l| +0#0000000&|P|a|i|r| |p| |=| 
|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|r|a|d|i|x|)| |{| @35
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|2+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|B|i|n|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|B|i|n|a|r|y|S|t|r|i|n|g|)|;| @11
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|8+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|O|c|t|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|O|c|t|a|l|S|t|r|i|n|g|)|;| @12
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|6| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|H|e|x|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|H|e|x|S|t|r|i|n|g|)|;| @13
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|2+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|B|i|n|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|B|i|n|a|r|y|S|t|r|i|n|g|)|;| 
@11
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|8+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|O|c|t|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|O|c|t|a|l|S|t|r|i|n|g|)|;| @12
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|6| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|H|e|x|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|H|e|x|S|t|r|i|n|g|)|;| @13
 @12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| |n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|D|e|c|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| @33
-@24|y+0#00e0e07&| |-|>| +0#0000000&|L|o|n|g|.|t|o|S|t|r|i|n|g|(|y|)@1|;| @27
+@24|y+0#00e0e07&| |-|>| 
+0#0000000&|L+0#e000002&|o|n|g|.+0#0000000&|t+0#e000002&|o|S|t|r|i|n|g|(+0#0000000&|y|)@1|;|
 @27
 @8|}|;| @64
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
-@4|}| @69
-@75
-| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|l+0#00e0003&|o|n|g| 
+0#00e0e07&|t|o|D|e|c|i|m|a|l|(|N+0#0000001#ffff4012|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|x|)| +0#0000000&@36
-@4|{| @69
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|x|)| |{| @32
-@57|9|1|,|6|-|2|1| @6|7|0|%| 
+@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
+@57|9|1|,|2|-|5| @7|6|2|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_06.dump 
b/runtime/syntax/testdir/dumps/java_generics_06.dump
index ec15a671c..83543d1be 100644
--- a/runtime/syntax/testdir/dumps/java_generics_06.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_06.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|x|)| |{| @32
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |b|)| |-|>| |L|o|n|g|.|t|o|B|i|n|a|r|y|S|t|r|i|n|g|(|b|)|;| @16
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |o|)| |-|>| |L|o|n|g|.|t|o|O|c|t|a|l|S|t|r|i|n|g|(|o|)|;| @17
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |h|)| |-|>| |L|o|n|g|.|t|o|H|e|x|S|t|r|i|n|g|(|h|)|;| @19
-@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| 
|L|o|n|g|.|t|o|S|t|r|i|n|g|(|x|.|v|a|l|u|e|(|)@1|;| @26
-@8>}|,| |x|.|r|a|d|i|x|(|)@1|;| @52
+| +0&#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
 @4|}| @69
 @75
-@4|@+0#e000e06&|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|T|a|r|g|e|t|(| 
+0#0000000&@41
-@16|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|E|l|e|m|e|n|t|T|y|p|e|.|T|Y|P|E|_|U|S|E|)+0#e000e06&|
 +0#0000000&@16
-@4|@+0#00e0003&|i|n|t|e|r|f|a|c|e| +0#0000000&|T|a|g@1|a|b|l|e| @51
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|l+0#00e0003&|o|n|g| 
+0#00e0e07&|t|o|D|e|c|i|m|a|l|(|N+0#0000001#ffff4012|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#00e0e07#ffffff0|x|)| +0#0000000&@36
 @4|{| @69
-| +0#00e0e07&@7|S|t|r|i|n|g| |v|a|l|u|e|(|)| 
+0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|"+0#e000002&@1|;+0#0000000&| 
@40
+@8>r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h|
 +0#0000000&|(|x|)| |{| @32
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|b|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|B|i|n|a|r|y|S|t|r|i|n|g|(|b|)|;| @16
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|o|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|O|c|t|a|l|S|t|r|i|n|g|(|o|)|;| @17
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|h|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|H|e|x|S|t|r|i|n|g|(|h|)|;| @19
+@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t+0#e000002&|o|S|t|r|i|n|g|(+0#0000000&|x|.|v|a|l|u|e|(|)@1|;|
 @26
+@8|}|,| |x|.|r|a|d|i|x|(|)@1|;| @52
 @4|}| @69
 @75
+| +0#00e0e07&@3|s+0#00e0003&|t|a|t|i|c| 
+0#00e0e07&|C+0#0000001#ffff4012|l|a|s@1|<|?+0#00e0e07#ffffff0|>+0#0000001#ffff4012|
 
+0#00e0e07#ffffff0|e|i|t|h|e|r|C|o|m|p|a|r|a|b|l|e|O|r|I|t|e|r|a|b|l|e|(|O+0#e000002&|b|j|e|c|t|
 +0#00e0e07&|o|)| +0#0000000&@18
 @4|{| @69
-@8|i+0#00e0003&|n|t| +0#0000000&|N| |=| |0+0#e000002&|,+0#0000000&| |X| |=| 
|1+0#e000002&|,+0#0000000&| |Y| |=| |2+0#e000002&|;+0#0000000&| @42
-@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f| |=| 
|y+0#00e0e07&|-|>|N+0#0000000&|<|y|.|i|n|t|V|a|l|u|e|(|)|;| @31
-@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y+0#00e0e07&|-|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I|n|t|e|g|e|r|)|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
-@57|1|0|9|,|3|-|9| @6|8|5|%| 
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|b+0#00e0003&|o@1|l|e|a|n| 
+0#0000000&|c|o|m|p|a|r|a|b|l|e|;| @41
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(@1|c|o|m|p|a|r|a|b|l|e| |=| |o| 
|i+0#af5f00255&|n|s|t|a|n|c|e|o|f| 
+0#0000000&|C+0#00e0003&|o|m|p|a|r|a|b|l|e|)+0#0000000&| |^| @18
+@24|o| |i+0#af5f00255&|n|s|t|a|n|c|e|o|f| 
+0#0000000&|I+0#00e0003&|t|e|r|a|b|l|e|)+0#0000000&| @28
+@12|?| |(|c|o|m|p|a|r|a|b|l|e|)| @48
+@57|1|0|9|,|3|-|9| @6|7|5|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_07.dump 
b/runtime/syntax/testdir/dumps/java_generics_07.dump
index fffbf040a..b0dbedcb4 100644
--- a/runtime/syntax/testdir/dumps/java_generics_07.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_07.dump
@@ -1,20 +1,20 @@
-| 
+0&#ffffff0@7|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y+0#00e0e07&|-|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I|n|t|e|g|e|r|)|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
+| +0&#ffffff0@11|?| |(|c|o|m|p|a|r|a|b|l|e|)| @48
+@16|?| |C+0#00e0003&|o|m|p|a|r|a|b|l|e|.+0#0000000&|c+0#00e0003&|l|a|s@1| 
+0#0000000&@40
+@16|:| |I+0#00e0003&|t|e|r|a|b|l|e|.+0#0000000&|c+0#00e0003&|l|a|s@1| 
+0#0000000&@42
+@12|:| 
|j|a|v|a|.|l|a|n|g|.|C+0#e000002&|l|a|s@1|.+0#0000000&|c+0#00e0003&|l|a|s@1|;+0#0000000&|
 @38
+@4|}| @69
+> @74
+@4|@+0#e000e06&|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|T|a|r|g|e|t|(| 
+0#0000000&@41
+@16|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|E|l|e|m|e|n|t|T|y|p|e|.|T|Y|P|E|_|U|S|E|)+0#e000e06&|
 +0#0000000&@16
+@4|@+0#00e0003&|i|n|t|e|r|f|a|c|e| +0#0000000&|T|a|g@1|a|b|l|e| @51
+@4|{| @69
+| +0#00e0e07&@7|S+0#e000002&|t|r|i|n|g| +0#00e0e07&|v|a|l|u|e|(|)| 
+0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|"+0#e000002&@1|;+0#0000000&| 
@40
+@4|}| @69
+@75
+@4|{| @69
+@8|i+0#00e0003&|n|t| +0#0000000&|N| |=| |0+0#e000002&|,+0#0000000&| |X| |=| 
|1+0#e000002&|,+0#0000000&| |Y| |=| |2+0#e000002&|;+0#0000000&| @42
+@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f| |=| 
|y+0#00e0e07&|-|>|N+0#0000000&|<|y|.|i|n|t|V|a|l|u|e|(|)|;| @31
+@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y+0#00e0e07&|-|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I+0#e000002&|n|t|e|g|e|r|)+0#0000000&|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
 @8|b+0#00e0003&|o@1|l|e|a|n|[+0#0000000&|]| |b@1| |=| |{| @50
 
@12|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0||@1|N|>+0#0000001#ffff4012|Y+0#0000000#ffffff0|,|
 |X| |<| |Y|,| |X| |<|Y|,| |X| |<|(|Y|)|,| |X|<|(|Y|)|,| |(|X|)|<|Y|,| @18
-@12|D|o|u|b|l|e|.|i|s|F|i|n|i|t|e|(|X|<@1|Y|)|,| @40
-@12|X|<|=|Y|,| 
|X|<|(|i+0#00e0003&|n|t|)+0#0000000&|(|b+0#00e0003&|y|t|e|)+0#0000000&|Y|,| 
|X|<|~|Y|,| |X|<|-|Y|,| |X|<|+|Y|,| @23
-@8>}|;| @64
-@8|C+0#0000001#ffff4012|l|a|s@1|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|k|l|a|s@1| |=| 
|G|e|n|e|r|i|c|s|T|e|s|t|s|.|c+0#00e0003&|l|a|s@1|;+0#0000000&| @29
-@8|C+0#0000001#ffff4012|l|a|s@1|<| 
+0#0000000#ffffff0|j+0#ffffff16#ff404010|a|v|a|.|l|a|n|g|.|C|l|a|s@1|<|@+0#e000e06#ffffff0|T|a|g@1|a|b|l|e|(|"+0#e000002&|<|>|"|)+0#e000e06&|i+0#00e0003&|n|t|[+0#0000000&|]|[|]|>+0#ffffff16#ff404010|
 +0#0000000#ffffff0|[+0#ffffff16#ff404010|]| 
+0#0000000#ffffff0|[+0#ffffff16#ff404010|]| 
+0#0000000#ffffff0|>+0#0000001#ffff4012| +0#0000000#ffffff0@12
-@8|[+0#0000001#ffff4012| +0#0000000#ffffff0|]+0#0000001#ffff4012| 
+0#0000000#ffffff0|[+0#0000001#ffff4012| 
+0#0000000#ffffff0|]+0#0000001#ffff4012| +0#0000000#ffffff0|$| |[| |]| |[| 
|]|;| @48
-@8|i+0#af5f00255&|f| +0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&| |{| 
|n+0#af5f00255&|e|w| +0#0000000&|G|e|n|e|r|i|c|s|T|e|s|t|s|<|>|(|)|;| |}| @29
-@8|a|l|p|h|a|<|?|>| |a|o|;| @54
-@8|a|l|p|h|a|<|U|>| |a|u|;| @54
-@8|a|l|p|h|a|<|a|l|p|h|a|<|U|>@1| |a@1|u|;| @46
-@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|o|;| @48
-@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|U+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|u|;| @48
-@8|Y|0|<|a|l|p|h|a|<|?|>@1| |y|0|a|o|;| @48
-@8|Y|0|<|a|l|p|h|a|<|U|>@1| |y|0|a|u|;| @48
-@4|}| @69
-|}| @73
-@57|1|2|7|,|3|-|9| @6|B|o|t| 
+@57|1|2|7|,|0|-|1| @6|8@1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_08.dump 
b/runtime/syntax/testdir/dumps/java_generics_08.dump
new file mode 100644
index 000000000..d41b751f7
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_generics_08.dump
@@ -0,0 +1,20 @@
+| 
+0&#ffffff0@11|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0||@1|N|>+0#0000001#ffff4012|Y+0#0000000#ffffff0|,|
 |X| |<| |Y|,| |X| |<|Y|,| |X| |<|(|Y|)|,| |X|<|(|Y|)|,| |(|X|)|<|Y|,| @18
+@12|D+0#e000002&|o|u|b|l|e|.+0#0000000&|i|s|F|i|n|i|t|e|(|X|<@1|Y|)|,| @40
+@12|X|<|=|Y|,| 
|X|<|(|i+0#00e0003&|n|t|)+0#0000000&|(|b+0#00e0003&|y|t|e|)+0#0000000&|Y|,| 
|X|<|~|Y|,| |X|<|-|Y|,| |X|<|+|Y|,| @23
+@8|}|;| @64
+@8|C+0#0000001#ffff4012|l|a|s@1|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|k|l|a|s@1| |=| 
|G|e|n|e|r|i|c|s|T|e|s|t|s|.|c+0#00e0003&|l|a|s@1|;+0#0000000&| @29
+@8>C+0#0000001#ffff4012|l|a|s@1|<| 
+0#0000000#ffffff0|j+0#ffffff16#ff404010|a|v|a|.|l|a|n|g|.|C|l|a|s@1|<|@+0#e000e06#ffffff0|T|a|g@1|a|b|l|e|(|"+0#e000002&|<|>|"|)+0#e000e06&|i+0#00e0003&|n|t|[+0#0000000&|]|[|]|>+0#ffffff16#ff404010|
 +0#0000000#ffffff0|[|]| |[|]| |>+0#0000001#ffff4012| +0#0000000#ffffff0@12
+@8|[| |]| |[| |]| |$| |[| |]| |[| |]|;| @48
+@8|i+0#af5f00255&|f| +0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&| |{| 
|n+0#af5f00255&|e|w| +0#0000000&|G|e|n|e|r|i|c|s|T|e|s|t|s|<|>|(|)|;| |}| @29
+@8|a|l|p|h|a|<|?|>| |a|o|;| @54
+@8|a|l|p|h|a|<|U|>| |a|u|;| @54
+@8|a|l|p|h|a|<|a|l|p|h|a|<|U|>@1| |a@1|u|;| @46
+@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|o|;| @48
+@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|U+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|u|;| @48
+@8|Y|0|<|a|l|p|h|a|<|?|>@1| |y|0|a|o|;| @48
+@8|Y|0|<|a|l|p|h|a|<|U|>@1| |y|0|a|u|;| @48
+@4|}| @69
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+| +0#0000000&@56|1|4|5|,|3|-|9| @6|B|o|t| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_00.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_00.dump
index 4b70eb13d..b2b6e6b50 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_00.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_00.dump
@@ -1,20 +1,20 @@
 >/+0#0000e05#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|_|f|u|n|c|t|i|o|n|s| |=| |'|s|t|y|l|e|'| 
 >+0#0000000&@16
 |/+0#0000e05&@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|_|s|i|g|n|a|t|u|r|e| |=| |1| +0#0000000&@22
 |/+0#0000e05&@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|_|g|e|n|e|r|i|c|s| |=| |1| +0#0000000&@23
+|/+0#0000e05&@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&@22
 |/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| 
|j|a|v|a|G|e|n|e|r|i|c|s|C|1| |T|o|d|o| +0#0000000&@29
 |/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| 
|j|a|v|a|G|e|n|e|r|i|c|s|C|2| |E|r@1|o|r| +0#0000000&@28
+@75
+@75
+@75
+@75
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|m|a|t|h|.|B|i|g|I|n|t|e|g|e|r|;| @46
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|C|o|n|s|u|m|e|r|;| @39
 |i+0#e000e06&|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|;| @39
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|L|o|n|g|F|u|n|c|t|i|o|n|;| @35
 |i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|P|r|e|d|i|c|a|t|e|;| @38
 @75
-|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|$|T|e|s|t|s|<|T+0#0000000#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N|u|m|b|e|r| |&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@9
+|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|$|T|e|s|t|s|<|T+0#0000000#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N+0#e000002&|u|m|b|e|r| +0#0000000&|&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@9
 |{| @2|/+0#0000e05&@1| |J|D|K| |2|1|+|.| +0#0000000&@59
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#0000000#ffffff0|b|j|e|c|t|,|
 |O|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| |=| @5
-@24|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|y|0|(|)|;| @30
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|B+0#0000000#ffffff0|i|g|I|n|t|e|g|e|r|,|
 |B|i|g|I|n|t|e|g|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|F|A|C|T|O|R|I|A|L|_|2|0@2| |=| @8
-@16|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|B|i|g|I|n|t|e|g|e|r|,| 
|B|i|g|I|n|t|e|g|e|r|>|y|1|(|)| @15
-@8|.|a|p@1|l|y|(|f| |-+0#00e0e07&|>| +0#0000000&|x| |-+0#00e0e07&|>| 
+0#0000000&|(|x|.|c|o|m|p|a|r|e|T|o|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)| |<| 
|1+0#e000002&|)+0#0000000&| @16
-@12|?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#e000002#ffffff0|b|j|e|c|t|,+0#0000000&|
 |O+0#e000002&|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O+0#e000002&|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| 
|=| @5
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_01.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_01.dump
index 810564f53..c1e943a4c 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_01.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_01.dump
@@ -1,9 +1,14 @@
-| +0&#ffffff0@3|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#0000000#ffffff0|b|j|e|c|t|,|
 |O|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| |=| @5
+|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|.|L|o|n|g|F|u|n|c|t|i|o|n|;| @35
+|i+0#e000e06&|m|p|o|r|t| 
+0#0000000&|j|a|v|a|.|u|t|i|l|.|f|u|n|c|t|i|o|n|.|P|r|e|d|i|c|a|t|e|;| @38
+@75
+|c+0#00e0003&|l|a|s@1| 
+0#0000000&|G+0#0000001#ffff4012|e|n|e|r|i|c|s|$|T|e|s|t|s|<|T+0#0000000#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N+0#e000002&|u|m|b|e|r| +0#0000000&|&| 
|C+0#ffffff16#ff404010|o|m|p|a|r|a|b|l|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|T|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|U|>+0#0000001#ffff4012| +0#0000000#ffffff0@9
+|{| @2|/+0#0000e05&@1| |J|D|K| |2|1|+|.| +0#0000000&@59
+@4>s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|O+0#e000002#ffffff0|b|j|e|c|t|,+0#0000000&|
 |O+0#e000002&|b|j|e|c|t|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|O+0#e000002&|b|j|e|c|t|>+0#0000001#ffff4012| +0#0000000#ffffff0|P|A|R|T|I|A|L| 
|=| @5
 @24|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|y|0|(|)|;| @30
 @4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|f+0#00e0003&|i|n|a|l| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|B+0#0000000#ffffff0|i|g|I|n|t|e|g|e|r|,|
 |B|i|g|I|n|t|e|g|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|F|A|C|T|O|R|I|A|L|_|2|0@2| |=| @8
 @16|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|B|i|g|I|n|t|e|g|e|r|,| 
|B|i|g|I|n|t|e|g|e|r|>|y|1|(|)| @15
 @8|.|a|p@1|l|y|(|f| |-+0#00e0e07&|>| +0#0000000&|x| |-+0#00e0e07&|>| 
+0#0000000&|(|x|.|c|o|m|p|a|r|e|T|o|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)| |<| 
|1+0#e000002&|)+0#0000000&| @16
-@12>?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
+@12|?| |B|i|g|I|n|t|e|g|e|r|.|O|N|E| @46
 @12|:| 
|x|.|m|u|l|t|i|p|l|y|(|f|.|a|p@1|l|y|(|x|.|s|u|b|t|r|a|c|t|(|B|i|g|I|n|t|e|g|e|r|.|O|N|E|)@3|;|
 @11
 @75
 @4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|T|1|>| 
|Y+0#0000001#ffff4012|0|<|T+0#0000000#ffffff0|1|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|y+0#00e0e07&|0|(|)| +0#0000000&@47
@@ -12,9 +17,4 @@
 @20|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|T|1|>|y|0|(|)| @31
 @24|.|a|p@1|l|y|(|f|)@1|;| @39
 @4|}| @69
-@75
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|T|1|,| |T|2|>| 
|Y+0#0000001#ffff4012|1|<|T+0#0000000#ffffff0|1|,| |T|2|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|y+0#00e0e07&|1|(|)| +0#0000000&@39
-@4|{| @69
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,|
 |T|2|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|f|)+0#00e0e07&| |-|>| +0#0000000&@8
-@12|(+0#00e0e07&|T+0#0000000&|1| |x|)+0#00e0e07&| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @17
-@57|1|9|,|4|-|1|3| @6|1|0|%| 
+@57|1|9|,|2|-|5| @8|9|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_02.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_02.dump
index bfa32c112..6754ede61 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_02.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_02.dump
@@ -1,9 +1,14 @@
-| +0&#ffffff0@11|(+0#00e0e07&|T+0#0000000&|1| |x|)+0#00e0e07&| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @17
+| +0&#ffffff0@3|}| @69
+@75
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|<|T|1|,| |T|2|>| 
|Y+0#0000001#ffff4012|1|<|T+0#0000000#ffffff0|1|,| |T|2|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|y+0#00e0e07&|1|(|)| +0#0000000&@39
+@4|{| @69
+@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|(+0#00e0e07&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,|
 |T|2|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| 
|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|f|)+0#00e0e07&| |-|>| +0#0000000&@8
+@12>(+0#00e0e07&|T+0#0000000&|1| |x|)+0#00e0e07&| |-|>| 
+0#0000000&|f|.|a|p@1|l|y|(|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|<|T|1|,| 
|T|2|>|y|1|(|)| @17
 @24|.|a|p@1|l|y|(|f|)@1| @40
 @16|.|a|p@1|l|y|(|x|)|;| @48
 @4|}| @69
 @75
-@4>s+0#00e0003&|t|a|t|i|c|<+0#0000000&|T|>| |v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|(|T| |d|u|m@1|y|)| |{| |}| @38
+@4|s+0#00e0003&|t|a|t|i|c|<+0#0000000&|T|>| |v+0#00e0003&|o|i|d| 
+0#0000000&|n|o|O|p|(|T| |d|u|m@1|y|)| |{| |}| @38
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|a|l|p|h|a|<|T|>| |{| |}| @48
 @75
@@ -12,9 +17,4 @@
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|Y+0#0000001#ffff4012|1|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#0000001#ffff4012| +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,|
 |T|2|>+0#0000001#ffff4012|,+0#0000000#ffffff0| @6
 @20|F+0#0000001#ffff4012|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#0000001#ffff4012|>+0#ffffff16#ff404010|,+0#0000000#ffffff0| @36
 @20|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| +0#0000000#ffffff0|{| |}| @33
-@75
-@4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@28
-@4|{| @69
-@8|b+0#00e0003&|o@1|l|e|a|n| 
+0#0000000&|i+0#00e0e07&|s|E|m|p|t|y|(|)|;+0#0000000&| @48
-@8|E| |p+0#00e0e07&|e@1|k|(|)|;+0#0000000&| @57
-@57|3|7|,|2|-|5| @7|2|5|%| 
+@57|3|7|,|4|-|1|3| @6|2@1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_03.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_03.dump
index 80ce29bf4..4e66a401c 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_03.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@7|E| |p+0#00e0e07&|e@1|k|(|)|;+0#0000000&| @57
+| 
+0&#ffffff0@19|F+0#ffffff16#ff404010|u|n|c|t|i|o|n|<|T+0#0000000#ffffff0|1|,| 
|T|2|>+0#ffffff16#ff404010|>+0#0000001#ffff4012| +0#0000000#ffffff0|{| |}| @33
+@75
+@4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@28
+@4|{| @69
+@8|b+0#00e0003&|o@1|l|e|a|n| 
+0#0000000&|i+0#00e0e07&|s|E|m|p|t|y|(|)|;+0#0000000&| @48
+@8>E| |p+0#00e0e07&|e@1|k|(|)|;+0#0000000&| @57
 @8|E| |p+0#00e0e07&|o|p|(|)|;+0#0000000&| @58
 
@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|p+0#00e0e07&|o|p|A|l@1|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#0000000#ffffff0|
 |s+0#00e0003&|u|p|e|r| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|e|l|e|m|e|n|t|s|)+0#00e0e07&|;+0#0000000&| @15
 
@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|p+0#00e0e07&|o|p|S|o|m|e|(|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|?+0#0000000#ffffff0|
 |s+0#00e0003&|u|p|e|r| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|e|l|e|m|e|n|t|s|,| @15
 @20|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|f|i|l|t|e|r|)+0#00e0e07&|;+0#0000000&| @25
-@8>S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|p+0#00e0e07&|u|s|h|(|E+0#0000000&| 
|e|l|e|m|e|n|t|)+0#00e0e07&|;+0#0000000&| @37
+@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|p+0#00e0e07&|u|s|h|(|E+0#0000000&| 
|e|l|e|m|e|n|t|)+0#00e0e07&|;+0#0000000&| @37
 
@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|p+0#00e0e07&|u|s|h|A|l@1|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#0000000#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|e|l|e|m|e|n|t|s|)+0#00e0e07&|;+0#0000000&| @13
 
@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|p+0#00e0e07&|u|s|h|S|o|m|e|(|I+0#0000001#ffff4012|t|e|r|a|b|l|e|<|?+0#0000000#ffffff0|
 |e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|e|l|e|m|e|n|t|s|,| @13
 @20|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|?+0#0000000#ffffff0| 
|s+0#00e0003&|u|p|e|r| +0#0000000&|E|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|f|i|l|t|e|r|)+0#00e0e07&|;+0#0000000&| @25
 
@8|S+0#0000001#ffff4012|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|w+0#00e0e07&|i|n|d|(|C+0#0000001#ffff4012|o|n|s|u|m|e|r|<|?+0#0000000#ffffff0|
 |s+0#00e0003&|u|p|e|r| 
+0#0000000&|S+0#ffffff16#ff404010|t|a|c|k|a|b|l|e|<|E+0#0000000#ffffff0|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|a|c|t|i|o|n|)+0#00e0e07&|;+0#0000000&| @9
 @4|}| @69
 @75
-@4|s+0#00e0003&|e|a|l|e|d| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| +0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012| 
+0#0000000#ffffff0@32
+@4|s+0#00e0003&|e|a|l|e|d| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012| +0#0000000#ffffff0@32
 @4|{| @69
-@8|i+0#00e0003&|n|t| +0#0000000&|r+0#00e0e07&|a|d|i|x|(|)|;+0#0000000&| @54
-@8|N| |v+0#00e0e07&|a|l|u|e|(|)|;+0#0000000&| @56
-@4|}| @69
-@75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
-@57|5@1|,|3|-|9| @7|4|0|%| 
+@57|5@1|,|3|-|9| @7|3|5|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_04.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_04.dump
index 81606f148..6fa238689 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_04.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_04.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@3|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+| +0&#ffffff0@3|{| @69
+@8|i+0#00e0003&|n|t| +0#0000000&|r+0#00e0e07&|a|d|i|x|(|)|;+0#0000000&| @54
+@8|N| |v+0#00e0e07&|a|l|u|e|(|)|;+0#0000000&| @56
+@4|}| @69
+@75
+@4>r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 @8|p+0#00e0003&|u|b|l|i|c| +0#0000000&|i+0#00e0003&|n|t| 
+0#0000000&|r+0#00e0e07&|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|2+0#e000002&|;+0#0000000&| |}| @34
 @4|}| @69
 @75
-@4>r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|D+0#0000001#ffff4012|e|c|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|D+0#0000001#ffff4012|e|c|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 @8|p+0#00e0003&|u|b|l|i|c| +0#0000000&|i+0#00e0003&|n|t| 
+0#0000000&|r+0#00e0e07&|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|1+0#e000002&|0|;+0#0000000&| |}| @33
 @4|}| @69
 @75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
 @8|p+0#00e0003&|u|b|l|i|c| +0#0000000&|i+0#00e0003&|n|t| 
+0#0000000&|r+0#00e0e07&|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|1+0#e000002&|6|;+0#0000000&| |}| @33
 @4|}| @69
-@75
-@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
-@4|{| @69
-@8|p+0#00e0003&|u|b|l|i|c| +0#0000000&|i+0#00e0003&|n|t| 
+0#0000000&|r+0#00e0e07&|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|8+0#e000002&|;+0#0000000&| |}| @34
-@4|}| @69
-@57|7|3|,|2|-|5| @7|5@1|%| 
+@57|7|3|,|2|-|5| @7|4|8|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_05.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_05.dump
index 31165a5b1..352fc4d1a 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_05.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_05.dump
@@ -1,20 +1,20 @@
 | +0&#ffffff0@3|}| @69
 @75
-@4|s+0#00e0003&|t|a|t|i|c| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f+0#00e0e07&|r|o|m|D|e|c|i|m|a|l|(|l+0#00e0003&|o|n|g| 
+0#0000000&|x|,| |i+0#00e0003&|n|t| +0#0000000&|r|a|d|i|x|)+0#00e0e07&| 
+0#0000000&@23
+@4|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|N+0#0000000#ffffff0| 
|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|N+0#e000002&|u|m|b|e|r|>+0#0000001#ffff4012|(+0#0000000#ffffff0|N| 
|v|a|l|u|e|)| |i+0#00e0003&|m|p|l|e|m|e|n|t|s| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|N+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0@15
 @4|{| @69
-@8|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|P|a|i|r|(|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|N+0#ffffff16#ff404010|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|a|,| @28
-@20>L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|S+0#0000000#ffffff0|t|r|i|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|b|)| |{| |}| @27
+@8|p+0#00e0003&|u|b|l|i|c| +0#0000000&|i+0#00e0003&|n|t| 
+0#0000000&|r+0#00e0e07&|a|d|i|x|(|)| +0#0000000&|{| |r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|8+0#e000002&|;+0#0000000&| |}| @34
+@4>}| @69
+@75
+@4|s+0#00e0003&|t|a|t|i|c| 
+0#0000000&|N+0#0000001#ffff4012|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f+0#00e0e07&|r|o|m|D|e|c|i|m|a|l|(|l+0#00e0003&|o|n|g| 
+0#0000000&|x|,| |i+0#00e0003&|n|t| +0#0000000&|r|a|d|i|x|)+0#00e0e07&| 
+0#0000000&@23
+@4|{| @69
+@8|r+0#00e0003&|e|c|o|r|d| 
+0#0000000&|P|a|i|r|(|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|N+0#ffffff16#ff404010|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#ffffff16#ff404010|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|a|,| @28
+@20|L+0#0000001#ffff4012|o|n|g|F|u|n|c|t|i|o|n|<|S+0#e000002#ffffff0|t|r|i|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|b|)| |{| |}| @27
 @8|f+0#00e0003&|i|n|a|l| +0#0000000&|P|a|i|r| |p| |=| 
|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|r|a|d|i|x|)| |{| @35
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|2+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|B|i|n|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|B|i|n|a|r|y|S|t|r|i|n|g|)|;| @11
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|8+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|O|c|t|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|O|c|t|a|l|S|t|r|i|n|g|)|;| @12
-@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|6| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|H|e|x|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|H|e|x|S|t|r|i|n|g|)|;| @13
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|2+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|B|i|n|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|B|i|n|a|r|y|S|t|r|i|n|g|)|;| 
@11
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|8+0#e000002&| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|O|c|t|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|O|c|t|a|l|S|t|r|i|n|g|)|;| @12
+@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|6| +0#0000000&|-|>| 
|n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|H|e|x|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| 
|L+0#e000002&|o|n|g|:+0#00e0e07&@1|t+0#0000000&|o|H|e|x|S|t|r|i|n|g|)|;| @13
 @12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| |n+0#af5f00255&|e|w| 
+0#0000000&|P|a|i|r|(|D|e|c|:+0#00e0e07&@1|n+0#af5f00255&|e|w|,+0#0000000&| @33
-@24|y| |-+0#00e0e07&|>| +0#0000000&|L|o|n|g|.|t|o|S|t|r|i|n|g|(|y|)@1|;| @27
+@24|y| |-+0#00e0e07&|>| 
+0#0000000&|L+0#e000002&|o|n|g|.+0#0000000&|t+0#e000002&|o|S|t|r|i|n|g|(+0#0000000&|y|)@1|;|
 @27
 @8|}|;| @64
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
-@4|}| @69
-@75
-@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|l+0#00e0003&|o|n|g| 
+0#0000000&|t+0#00e0e07&|o|D|e|c|i|m|a|l|(|N+0#0000001#ffff4012|u|m|<|L+0#0000000#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|x|)+0#00e0e07&| +0#0000000&@36
-@4|{| @69
-@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|x|)| |{| @32
-@57|9|1|,|6|-|2|1| @6|7|0|%| 
+@8|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
+@57|9|1|,|2|-|5| @7|6|2|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_06.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_06.dump
index 8c6956b78..bebb9d40f 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_06.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_06.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L|o|n|g|.|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h| 
+0#0000000&|(|x|)| |{| @32
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |b|)| |-|>| |L|o|n|g|.|t|o|B|i|n|a|r|y|S|t|r|i|n|g|(|b|)|;| @16
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |o|)| |-|>| |L|o|n|g|.|t|o|O|c|t|a|l|S|t|r|i|n|g|(|o|)|;| @17
-@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L|o|n|g|
 |h|)| |-|>| |L|o|n|g|.|t|o|H|e|x|S|t|r|i|n|g|(|h|)|;| @19
-@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| 
|L|o|n|g|.|t|o|S|t|r|i|n|g|(|x|.|v|a|l|u|e|(|)@1|;| @26
-@8>}|,| |x|.|r|a|d|i|x|(|)@1|;| @52
+| +0&#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|p|.|a|(|)|.|a|p@1|l|y|(|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|p|.|b|(|)|.|a|p@1|l|y|(|x|)|,|
 |r|a|d|i|x|)@1|;| @8
 @4|}| @69
 @75
-@4|@+0#e000e06&|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|T|a|r|g|e|t|(| 
+0#0000000&@41
-@16|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|E|l|e|m|e|n|t|T|y|p|e|.|T|Y|P|E|_|U|S|E|)+0#e000e06&|
 +0#0000000&@16
-@4|@+0#00e0003&|i|n|t|e|r|f|a|c|e| +0#0000000&|T|a|g@1|a|b|l|e| @51
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|l+0#00e0003&|o|n|g| 
+0#0000000&|t+0#00e0e07&|o|D|e|c|i|m|a|l|(|N+0#0000001#ffff4012|u|m|<|L+0#e000002#ffffff0|o|n|g|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|x|)+0#00e0e07&| +0#0000000&@36
 @4|{| @69
-@8|S|t|r|i|n|g| |v+0#00e0e07&|a|l|u|e|(|)| 
+0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|"+0#e000002&@1|;+0#0000000&| 
@40
+@8>r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|L+0#e000002&|o|n|g|.+0#0000000&|p|a|r|s|e|L|o|n|g|(|s+0#af5f00255&|w|i|t|c|h|
 +0#0000000&|(|x|)| |{| @32
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|B+0#0000001#ffff4012|i|n|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|b|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|B|i|n|a|r|y|S|t|r|i|n|g|(|b|)|;| @16
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|O+0#0000001#ffff4012|c|t|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|o|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|O|c|t|a|l|S|t|r|i|n|g|(|o|)|;| @17
+@12|c+0#af5f00255&|a|s|e| 
+0#0000000&|H+0#0000001#ffff4012|e|x|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|(+0#0000000#ffffff0|L+0#e000002&|o|n|g|
 +0#0000000&|h|)| |-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t|o|H|e|x|S|t|r|i|n|g|(|h|)|;| @19
+@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&|-|>| 
|L+0#e000002&|o|n|g|.+0#0000000&|t+0#e000002&|o|S|t|r|i|n|g|(+0#0000000&|x|.|v|a|l|u|e|(|)@1|;|
 @26
+@8|}|,| |x|.|r|a|d|i|x|(|)@1|;| @52
 @4|}| @69
 @75
+@4|s+0#00e0003&|t|a|t|i|c| 
+0#0000000&|C+0#0000001#ffff4012|l|a|s@1|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|
 
+0#0000000#ffffff0|e+0#00e0e07&|i|t|h|e|r|C|o|m|p|a|r|a|b|l|e|O|r|I|t|e|r|a|b|l|e|(|O+0#e000002&|b|j|e|c|t|
 +0#0000000&|o|)+0#00e0e07&| +0#0000000&@18
 @4|{| @69
-@8|i+0#00e0003&|n|t| +0#0000000&|N| |=| |0+0#e000002&|,+0#0000000&| |X| |=| 
|1+0#e000002&|,+0#0000000&| |Y| |=| |2+0#e000002&|;+0#0000000&| @42
-@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f| |=| 
|y|-+0#00e0e07&|>|N+0#0000000&|<|y|.|i|n|t|V|a|l|u|e|(|)|;| @31
-@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y|-+0#00e0e07&|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I|n|t|e|g|e|r|)|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
-@57|1|0|9|,|3|-|9| @6|8|5|%| 
+@8|f+0#00e0003&|i|n|a|l| +0#0000000&|b+0#00e0003&|o@1|l|e|a|n| 
+0#0000000&|c|o|m|p|a|r|a|b|l|e|;| @41
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(@1|c|o|m|p|a|r|a|b|l|e| |=| |o| 
|i+0#af5f00255&|n|s|t|a|n|c|e|o|f| 
+0#0000000&|C+0#00e0003&|o|m|p|a|r|a|b|l|e|)+0#0000000&| |^| @18
+@24|o| |i+0#af5f00255&|n|s|t|a|n|c|e|o|f| 
+0#0000000&|I+0#00e0003&|t|e|r|a|b|l|e|)+0#0000000&| @28
+@12|?| |(|c|o|m|p|a|r|a|b|l|e|)| @48
+@57|1|0|9|,|3|-|9| @6|7|5|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_07.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_07.dump
index fe72261e3..11795d17e 100644
--- a/runtime/syntax/testdir/dumps/java_generics_signature_07.dump
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_07.dump
@@ -1,20 +1,20 @@
-| 
+0&#ffffff0@7|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y|-+0#00e0e07&|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I|n|t|e|g|e|r|)|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
+| +0&#ffffff0@11|?| |(|c|o|m|p|a|r|a|b|l|e|)| @48
+@16|?| |C+0#00e0003&|o|m|p|a|r|a|b|l|e|.+0#0000000&|c+0#00e0003&|l|a|s@1| 
+0#0000000&@40
+@16|:| |I+0#00e0003&|t|e|r|a|b|l|e|.+0#0000000&|c+0#00e0003&|l|a|s@1| 
+0#0000000&@42
+@12|:| 
|j|a|v|a|.|l|a|n|g|.|C+0#e000002&|l|a|s@1|.+0#0000000&|c+0#00e0003&|l|a|s@1|;+0#0000000&|
 @38
+@4|}| @69
+> @74
+@4|@+0#e000e06&|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|T|a|r|g|e|t|(| 
+0#0000000&@41
+@16|j|a|v|a|.|l|a|n|g|.|a|n@1|o|t|a|t|i|o|n|.|E|l|e|m|e|n|t|T|y|p|e|.|T|Y|P|E|_|U|S|E|)+0#e000e06&|
 +0#0000000&@16
+@4|@+0#00e0003&|i|n|t|e|r|f|a|c|e| +0#0000000&|T|a|g@1|a|b|l|e| @51
+@4|{| @69
+@8|S+0#e000002&|t|r|i|n|g| +0#0000000&|v+0#00e0e07&|a|l|u|e|(|)| 
+0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|"+0#e000002&@1|;+0#0000000&| 
@40
+@4|}| @69
+@75
+@4|{| @69
+@8|i+0#00e0003&|n|t| +0#0000000&|N| |=| |0+0#e000002&|,+0#0000000&| |X| |=| 
|1+0#e000002&|,+0#0000000&| |Y| |=| |2+0#e000002&|;+0#0000000&| @42
+@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|f| |=| 
|y|-+0#00e0e07&|>|N+0#0000000&|<|y|.|i|n|t|V|a|l|u|e|(|)|;| @31
+@8|P+0#0000001#ffff4012|r|e|d|i|c|a|t|e|<|T+0#0000000#ffffff0|>+0#0000001#ffff4012|
 +0#0000000#ffffff0|g| |=| 
|y|-+0#00e0e07&|>|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0|&@1|(|I+0#e000002&|n|t|e|g|e|r|)+0#0000000&|y|>+0#0000001#ffff4012|N+0#0000000#ffffff0|;|
 @28
 @8|b+0#00e0003&|o@1|l|e|a|n|[+0#0000000&|]| |b@1| |=| |{| @50
 
@12|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0||@1|N|>+0#0000001#ffff4012|Y+0#0000000#ffffff0|,|
 |X| |<| |Y|,| |X| |<|Y|,| |X| |<|(|Y|)|,| |X|<|(|Y|)|,| |(|X|)|<|Y|,| @18
-@12|D|o|u|b|l|e|.|i|s|F|i|n|i|t|e|(|X|<@1|Y|)|,| @40
-@12|X|<|=|Y|,| 
|X|<|(|i+0#00e0003&|n|t|)+0#0000000&|(|b+0#00e0003&|y|t|e|)+0#0000000&|Y|,| 
|X|<|~|Y|,| |X|<|-|Y|,| |X|<|+|Y|,| @23
-@8>}|;| @64
-@8|C+0#0000001#ffff4012|l|a|s@1|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|k|l|a|s@1| |=| 
|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|c+0#00e0003&|l|a|s@1|;+0#0000000&| @28
-@8|C+0#0000001#ffff4012|l|a|s@1|<| 
+0#0000000#ffffff0|j+0#ffffff16#ff404010|a|v|a|.|l|a|n|g|.|C|l|a|s@1|<|@+0#e000e06#ffffff0|T|a|g@1|a|b|l|e|(|"+0#e000002&|<|>|"|)+0#e000e06&|i+0#00e0003&|n|t|[+0#0000000&|]|[|]|>+0#ffffff16#ff404010|
 +0#0000000#ffffff0|[+0#ffffff16#ff404010|]| 
+0#0000000#ffffff0|[+0#ffffff16#ff404010|]| 
+0#0000000#ffffff0|>+0#0000001#ffff4012| +0#0000000#ffffff0@12
-@8|[+0#0000001#ffff4012| +0#0000000#ffffff0|]+0#0000001#ffff4012| 
+0#0000000#ffffff0|[+0#0000001#ffff4012| 
+0#0000000#ffffff0|]+0#0000001#ffff4012| +0#0000000#ffffff0|$| |[| |]| |[| 
|]|;| @48
-@8|i+0#af5f00255&|f| +0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&| |{| 
|n+0#af5f00255&|e|w| +0#0000000&|G|e|n|e|r|i|c|s|$|T|e|s|t|s|<|>|(|)|;| |}| @28
-@8|a|l|p|h|a|<|?|>| |a|o|;| @54
-@8|a|l|p|h|a|<|U|>| |a|u|;| @54
-@8|a|l|p|h|a|<|a|l|p|h|a|<|U|>@1| |a@1|u|;| @46
-@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|o|;| @48
-@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|U+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|u|;| @48
-@8|Y|0|<|a|l|p|h|a|<|?|>@1| |y|0|a|o|;| @48
-@8|Y|0|<|a|l|p|h|a|<|U|>@1| |y|0|a|u|;| @48
-@4|}| @69
-|}| @73
-@57|1|2|7|,|3|-|9| @6|B|o|t| 
+@57|1|2|7|,|0|-|1| @6|8@1|%| 
diff --git a/runtime/syntax/testdir/dumps/java_generics_signature_08.dump 
b/runtime/syntax/testdir/dumps/java_generics_signature_08.dump
new file mode 100644
index 000000000..606ff331e
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_generics_signature_08.dump
@@ -0,0 +1,20 @@
+| 
+0&#ffffff0@11|X+0#0000001#ffff4012|<|N+0#0000000#ffffff0||@1|N|>+0#0000001#ffff4012|Y+0#0000000#ffffff0|,|
 |X| |<| |Y|,| |X| |<|Y|,| |X| |<|(|Y|)|,| |X|<|(|Y|)|,| |(|X|)|<|Y|,| @18
+@12|D+0#e000002&|o|u|b|l|e|.+0#0000000&|i|s|F|i|n|i|t|e|(|X|<@1|Y|)|,| @40
+@12|X|<|=|Y|,| 
|X|<|(|i+0#00e0003&|n|t|)+0#0000000&|(|b+0#00e0003&|y|t|e|)+0#0000000&|Y|,| 
|X|<|~|Y|,| |X|<|-|Y|,| |X|<|+|Y|,| @23
+@8|}|;| @64
+@8|C+0#0000001#ffff4012|l|a|s@1|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012| 
+0#0000000#ffffff0|k|l|a|s@1| |=| 
|G|e|n|e|r|i|c|s|$|T|e|s|t|s|.|c+0#00e0003&|l|a|s@1|;+0#0000000&| @28
+@8>C+0#0000001#ffff4012|l|a|s@1|<| 
+0#0000000#ffffff0|j+0#ffffff16#ff404010|a|v|a|.|l|a|n|g|.|C|l|a|s@1|<|@+0#e000e06#ffffff0|T|a|g@1|a|b|l|e|(|"+0#e000002&|<|>|"|)+0#e000e06&|i+0#00e0003&|n|t|[+0#0000000&|]|[|]|>+0#ffffff16#ff404010|
 +0#0000000#ffffff0|[|]| |[|]| |>+0#0000001#ffff4012| +0#0000000#ffffff0@12
+@8|[| |]| |[| |]| |$| |[| |]| |[| |]|;| @48
+@8|i+0#af5f00255&|f| +0#0000000&|(|f+0#e000002&|a|l|s|e|)+0#0000000&| |{| 
|n+0#af5f00255&|e|w| +0#0000000&|G|e|n|e|r|i|c|s|$|T|e|s|t|s|<|>|(|)|;| |}| @28
+@8|a|l|p|h|a|<|?|>| |a|o|;| @54
+@8|a|l|p|h|a|<|U|>| |a|u|;| @54
+@8|a|l|p|h|a|<|a|l|p|h|a|<|U|>@1| |a@1|u|;| @46
+@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|?+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|o|;| @48
+@8|a|l|p|h|a|<|Y+0#0000001#ffff4012|0|<|U+0#0000000#ffffff0|>+0#0000001#ffff4012|>+0#0000000#ffffff0|
 |a|y|0|u|;| @48
+@8|Y|0|<|a|l|p|h|a|<|?|>@1| |y|0|a|o|;| @48
+@8|Y|0|<|a|l|p|h|a|<|U|>@1| |y|0|a|u|;| @48
+@4|}| @69
+|}| @73
+|~+0#4040ff13&| @73
+|~| @73
+| +0#0000000&@56|1|4|5|,|3|-|9| @6|B|o|t| 
diff --git a/runtime/syntax/testdir/dumps/java_method_references_03.dump 
b/runtime/syntax/testdir/dumps/java_method_references_03.dump
index 0a3d817fb..ead4c4f0d 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_03.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_03.dump
@@ -15,6 +15,6 @@
 @20|<|S|t|r|i|n|g|>|C|2|1|(|n+0#e000002&|u|l@1|)+0#0000000&|;| 
|/+0#0000e05&@1| |C|f|.| |"|d|"|.| +0#0000000&@24
 
@8|S+0#00e0e07&|u|p@1|l|i|e|r|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|>+0#00e0e07&|
 +0#0000000&|s|b| |=| |C|1|:+0#00e0e07&@1|n+0#af5f00255&|e|w|;+0#0000000&| @37
 @8|F+0#00e0e07&|u|n|c|t|i|o|n|<|B+0#0000000&|y|t|e|,| 
|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|>+0#00e0e07&| +0#0000000&|f|5| |=| 
|C+0#00e0e07&|1|<|V+0#0000000&|o|i|d|>+0#00e0e07&| +0#0000000&|:+0#00e0e07&@1| 
+0#0000000&|<|B|y|t|e|>| |n+0#af5f00255&|e|w|;+0#0000000&| @16
-@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|[|]|>+0#00e0e07&|
 +0#0000000&|i|f|1| |=| |C+0#00e0e07&|1|<|?+0#0000000&|>+0#00e0e07&|[|]| 
+0#0000000&|:+0#00e0e07&@1| +0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @24
+@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|[+0#0000000&|]|>+0#00e0e07&|
 +0#0000000&|i|f|1| |=| 
|C+0#00e0e07&|1|<|?+0#0000000&|>+0#00e0e07&|[+0#0000000&|]| |:+0#00e0e07&@1| 
+0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @24
 
@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|b+0#00e0003&|y|t|e|[+0#0000000&|]|>+0#00e0e07&|
 +0#0000000&|i|f|2| |=| |b+0#00e0003&|y|t|e|[+0#0000000&|]| |:+0#00e0e07&@1| 
+0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @26
 @57|5@1|,|8|-|2|9| @6|2|9|%| 
diff --git a/runtime/syntax/testdir/dumps/java_method_references_04.dump 
b/runtime/syntax/testdir/dumps/java_method_references_04.dump
index 2ca8bcaab..d474574eb 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_04.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_04.dump
@@ -13,7 +13,7 @@
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|I+0#00e0e07&|4|<|T+0#0000000&|>+0#00e0e07&| 
+0#0000000&|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#00e0e07&|3|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@41
 @4|{| @69
-| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| 
+0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0e07&| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
+| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| +0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T|>| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
 @8|{| @65
 @12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|I|3| @53
 @16|.|s+0#00e0003&|u|p|e|r|:+0#00e0e07&@1|e+0#0000000&|q|u|a|l|s|;| 
|/+0#0000e05&|*| |"|a|"| |*|/| +0#0000000&@33
diff --git a/runtime/syntax/testdir/dumps/java_method_references_05.dump 
b/runtime/syntax/testdir/dumps/java_method_references_05.dump
index f6da9441d..498047ed5 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_05.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_05.dump
@@ -4,7 +4,7 @@
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|I+0#00e0e07&|3|<|T+0#0000000&|>+0#00e0e07&| 
+0#0000000&|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#00e0e07&|2|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@41
 @4>{| @69
-| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| 
+0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0e07&| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
+| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| +0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T|>| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
 @8|{| @65
 @12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|I|2|.| @52
 @16|s+0#00e0003&|u|p|e|r|:+0#00e0e07&@1|e+0#0000000&|q|u|a|l|s|;| 
@1|/+0#0000e05&|*| |"|b|"| |*|/| +0#0000000&@33
@@ -13,7 +13,7 @@
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|I+0#00e0e07&|2|<|T+0#0000000&|>+0#00e0e07&| 
+0#0000000&|e+0#00e0003&|x|t|e|n|d|s| 
+0#0000000&|I+0#00e0e07&|1|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@41
 @4|{| @69
-| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| 
+0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0e07&| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
+| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| +0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T|>| 
|s|u|p|e|r|E|q|u|a|l|i|s|t|(|)| +0#0000000&@30
 @8|{| @2|/+0#0000e05&|*| |N|o|n|-|c|a|p|t|u|r|i|n|g| |g|y|m|n|a|s|t|i|c|s| 
|f|o|r| |s|u|p|e|r|:@1|e|q|u|a|l|s|.| |*|/| +0#0000000&@13
 @12|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|F|u|n|c|t|i|o|n|.|<|F+0#00e0e07&|u|n|c|t|i|o|n|<|M+0#0000000&|e|t|h|o|d|H|a|n|d|l|e|,|
 @23
 
@28|P+0#00e0003&|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0003&|>+0#00e0e07&|>+0#0000000&|
 @32
diff --git a/runtime/syntax/testdir/dumps/java_method_references_06.dump 
b/runtime/syntax/testdir/dumps/java_method_references_06.dump
index f2e24c8b2..4826e5581 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_06.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_06.dump
@@ -8,7 +8,7 @@
 @75
 @4|i+0#00e0003&|n|t|e|r|f|a|c|e| 
+0#0000000&|I+0#00e0e07&|1|<|T+0#0000000&|>+0#00e0e07&| +0#0000000&@55
 @4|{| @69
-| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| 
+0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0e07&| 
|e|q|u|a|l|i|s|t|(|)| +0#0000000&@35
+| +0#00e0e07&@7|d+0#00e0003&|e|f|a|u|l|t| +0#00e0e07&|P|r|e|d|i|c|a|t|e|<|T|>| 
|e|q|u|a|l|i|s|t|(|)| +0#0000000&@35
 @8|{| @2|/+0#0000e05&|*| |N|o|n|-|c|a|p|t|u|r|i|n|g| |g|y|m|n|a|s|t|i|c|s| 
|f|o|r| |t|h|i|s|:@1|e|q|u|a|l|s|.| |*|/| +0#0000000&@14
 @12|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|F|u|n|c|t|i|o|n|.|<|F+0#00e0e07&|u|n|c|t|i|o|n|<|I+0#00e0003&|1|<|T+0#0000000&|>+0#00e0003&|,+0#0000000&|
 
|P+0#00e0003&|r|e|d|i|c|a|t|e|<|T+0#0000000&|>+0#00e0003&|>+0#00e0e07&|>+0#0000000&|
 @15
 @32|i|d|e|n|t|i|t|y|(|)| @32
diff --git a/runtime/syntax/testdir/dumps/java_method_references_10.dump 
b/runtime/syntax/testdir/dumps/java_method_references_10.dump
index 19280b021..35efcca5b 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_10.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_10.dump
@@ -3,7 +3,7 @@
 @12|}| @61
 @8|}| @65
 @75
-| +0#00e0e07&@7>s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T| |e|x|t|e|n|d|s| 
|O|b|j|e|c|t|>| |F|u|n|c|t|i|o|n|<|T+0#0000000&|,+0#00e0e07&| 
|S+0#0000000&|t|r|i|n|g|>+0#00e0e07&| |s|t|r|i|n|g|e|r|(|)| +0#0000000&@10
+| +0#00e0e07&@7>s+0#00e0003&|t|a|t|i|c| +0#00e0e07&|<|T| |e|x|t|e|n|d|s| 
|O|b|j|e|c|t|>| |F|u|n|c|t|i|o|n|<|T|,| |S|t|r|i|n|g|>| |s|t|r|i|n|g|e|r|(|)| 
+0#0000000&@10
 @8|{| @65
 @12|r+0#af5f00255&|e|t|u|r|n| 
+0#0000000&|T|:+0#00e0e07&@1|t+0#0000000&|o|S|t|r|i|n|g|;| |/+0#0000e05&|*| 
|"|e|"| |*|/| +0#0000000&@33
 @8|}| @65
diff --git 
a/runtime/syntax/testdir/dumps/java_method_references_signature_03.dump 
b/runtime/syntax/testdir/dumps/java_method_references_signature_03.dump
index 85ea29bc4..761fb979e 100644
--- a/runtime/syntax/testdir/dumps/java_method_references_signature_03.dump
+++ b/runtime/syntax/testdir/dumps/java_method_references_signature_03.dump
@@ -15,6 +15,6 @@
 @20|<|S|t|r|i|n|g|>|C|2|1|(|n+0#e000002&|u|l@1|)+0#0000000&|;| 
|/+0#0000e05&@1| |C|f|.| |"|d|"|.| +0#0000000&@24
 
@8|S+0#00e0e07&|u|p@1|l|i|e|r|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|>+0#00e0e07&|
 +0#0000000&|s|b| |=| |C|1|:+0#00e0e07&@1|n+0#af5f00255&|e|w|;+0#0000000&| @37
 @8|F+0#00e0e07&|u|n|c|t|i|o|n|<|B+0#0000000&|y|t|e|,| 
|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|>+0#00e0e07&| +0#0000000&|f|5| |=| 
|C+0#00e0e07&|1|<|V+0#0000000&|o|i|d|>+0#00e0e07&| +0#0000000&|:+0#00e0e07&@1| 
+0#0000000&|<|B|y|t|e|>| |n+0#af5f00255&|e|w|;+0#0000000&| @16
-@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|[|]|>+0#00e0e07&|
 +0#0000000&|i|f|1| |=| |C+0#00e0e07&|1|<|?+0#0000000&|>+0#00e0e07&|[|]| 
+0#0000000&|:+0#00e0e07&@1| +0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @24
+@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|C+0#00e0003&|1|<|?+0#0000000&|>+0#00e0003&|[+0#0000000&|]|>+0#00e0e07&|
 +0#0000000&|i|f|1| |=| 
|C+0#00e0e07&|1|<|?+0#0000000&|>+0#00e0e07&|[+0#0000000&|]| |:+0#00e0e07&@1| 
+0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @24
 
@8|I+0#00e0e07&|n|t|F|u|n|c|t|i|o|n|<|b+0#00e0003&|y|t|e|[+0#0000000&|]|>+0#00e0e07&|
 +0#0000000&|i|f|2| |=| |b+0#00e0003&|y|t|e|[+0#0000000&|]| |:+0#00e0e07&@1| 
+0#0000000&|n+0#af5f00255&|e|w|;+0#0000000&| @26
 @57|5@1|,|8|-|2|9| @6|2|9|%| 
diff --git a/runtime/syntax/testdir/input/java_generics.java 
b/runtime/syntax/testdir/input/java_generics.java
index c9b001a40..dc94cbe0e 100644
--- a/runtime/syntax/testdir/input/java_generics.java
+++ b/runtime/syntax/testdir/input/java_generics.java
@@ -1,8 +1,13 @@
 // VIM_TEST_SETUP let g:java_highlight_functions = 'style'
 // VIM_TEST_SETUP let g:java_highlight_generics = 1
+// VIM_TEST_SETUP let g:java_highlight_java_lang = 1
 // VIM_TEST_SETUP hi link javaGenericsC1 Todo
 // VIM_TEST_SETUP hi link javaGenericsC2 Error
 
+
+
+
+
 import java.math.BigInteger;
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -109,6 +114,17 @@ class GenericsTests<T extends Number & Comparable<? super 
T>, U>
                }, x.radix());
        }
 
+       static Class<?> eitherComparableOrIterable(Object o)
+       {
+               final boolean comparable;
+               return ((comparable = o instanceof Comparable) ^
+                                               o instanceof Iterable)
+                       ? (comparable)
+                               ? Comparable.class
+                               : Iterable.class
+                       : java.lang.Class.class;
+       }
+
        @java.lang.annotation.Target(
                                java.lang.annotation.ElementType.TYPE_USE)
        @interface Taggable
diff --git a/runtime/syntax/testdir/input/java_generics_signature.java 
b/runtime/syntax/testdir/input/java_generics_signature.java
index 505e70e06..23d8adb8a 100644
--- a/runtime/syntax/testdir/input/java_generics_signature.java
+++ b/runtime/syntax/testdir/input/java_generics_signature.java
@@ -1,8 +1,13 @@
 // VIM_TEST_SETUP let g:java_highlight_functions = 'style'
 // VIM_TEST_SETUP let g:java_highlight_signature = 1
 // VIM_TEST_SETUP let g:java_highlight_generics = 1
+// VIM_TEST_SETUP let g:java_highlight_java_lang = 1
 // VIM_TEST_SETUP hi link javaGenericsC1 Todo
 // VIM_TEST_SETUP hi link javaGenericsC2 Error
+
+
+
+
 import java.math.BigInteger;
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -109,6 +114,17 @@ class Generics$Tests<T extends Number & Comparable<? super 
T>, U>
                }, x.radix());
        }
 
+       static Class<?> eitherComparableOrIterable(Object o)
+       {
+               final boolean comparable;
+               return ((comparable = o instanceof Comparable) ^
+                                               o instanceof Iterable)
+                       ? (comparable)
+                               ? Comparable.class
+                               : Iterable.class
+                       : java.lang.Class.class;
+       }
+
        @java.lang.annotation.Target(
                                java.lang.annotation.ElementType.TYPE_USE)
        @interface Taggable

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1uP3y7-00Bpkx-55%40256bit.org.

Raspunde prin e-mail lui