changeset 50335:3c5bb1c5919c condy-folding

fixing failing regression tests
author vromero
date Thu, 19 Apr 2018 17:19:09 -0400
parents b37b8d8e2954
children 0d1b8810b899
files src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ConstablesVisitor.java test/langtools/jdk/javadoc/doclet/testClassTree/TestClassTree.java test/langtools/tools/javac/T8187978/FilterOutCandidatesForDiagnosticsTest.out test/langtools/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.out
diffstat 4 files changed, 22 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ConstablesVisitor.java	Thu Apr 19 13:56:29 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ConstablesVisitor.java	Thu Apr 19 17:19:09 2018 -0400
@@ -159,7 +159,7 @@
             if (elementToConstantMap.get(v) != null) {
                 return;
             }
-            Object constant = getConstant(tree.init);
+            Object constant = getConstant(tree.init, v.type);
             if (constant != null &&
                     (v.isFinal() || v.isEffectivelyFinal())) {
                 elementToConstantMap.remove(tree.init);
@@ -176,6 +176,15 @@
         return result == null ? elementToConstantMap.get(sym) : result;
     }
 
+    // this one coerces
+    Object getConstant(JCTree tree, Type targetType) {
+        Symbol sym = TreeInfo.symbol(tree);
+        Object result = tree.type.constValue() != null ?
+                cfolder.coerce(tree.type, targetType).constValue() :
+                elementToConstantMap.get(tree);
+        return result == null ? elementToConstantMap.get(sym) : result;
+    }
+
     @Override
     public void visitBinary(JCBinary tree) {
         super.visitBinary(tree);
@@ -219,7 +228,9 @@
             truePartConstant != null &&
             falsePartConstant != null &&
             !tree.type.hasTag(NONE)) {
-            Object constant = ConstFold.isTrue(tree.cond.type.getTag(), condConstant) ? truePartConstant : falsePartConstant;
+            Object constant = ConstFold.isTrue(tree.cond.type.getTag(), condConstant) ?
+                    getConstant(tree.truepart, tree.type) :
+                    getConstant(tree.falsepart, tree.type);
             elementToConstantMap.put(tree, constant);
         }
         if (condConstant != null) {
@@ -233,7 +244,7 @@
         if (elementToConstantMap.get(tree) == null &&
                 tree.type.constValue() == null &&
                 getConstant(tree.expr) != null) {
-            elementToConstantMap.put(tree, getConstant(tree.expr));
+            elementToConstantMap.put(tree, getConstant(tree.expr, tree.type));
         }
     }
 
--- a/test/langtools/jdk/javadoc/doclet/testClassTree/TestClassTree.java	Thu Apr 19 13:56:29 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testClassTree/TestClassTree.java	Thu Apr 19 17:19:09 2018 -0400
@@ -63,7 +63,7 @@
                 + "<ul>\n"
                 + "<li class=\"circle\">java.lang.Object\n"
                 + "<ul>\n"
-                + "<li class=\"circle\">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.lang.sym.Constable&lt;T&gt;, java.io.Serializable)\n"
+                + "<li class=\"circle\">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.lang.invoke.constant.Constable&lt;T&gt;, java.io.Serializable)\n"
                 + "<ul>\n"
                 + "<li class=\"circle\">pkg.<a href=\"Coin.html\" "
                 + "title=\"enum in pkg\"><span class=\"typeNameLink\">Coin</span></a></li>\n"
--- a/test/langtools/tools/javac/T8187978/FilterOutCandidatesForDiagnosticsTest.out	Thu Apr 19 13:56:29 2018 -0400
+++ b/test/langtools/tools/javac/T8187978/FilterOutCandidatesForDiagnosticsTest.out	Thu Apr 19 17:19:09 2018 -0400
@@ -1,2 +1,2 @@
-FilterOutCandidatesForDiagnosticsTest.java:12:64: compiler.err.cant.apply.symbols: kindname.method, add, java.lang.String,{(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>,java.lang.Object[],int), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inconvertible.types: java.lang.String, compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>))),(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(int,compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>>&java.lang.sym.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.ConstantRef<?>&java.lang.sym.Constable<?>>&java.lang.sym.Constable<?>>), (compiler.misc.arg.length.mismatch))}
+FilterOutCandidatesForDiagnosticsTest.java:12:64: compiler.err.cant.apply.symbols: kindname.method, add, java.lang.String,{(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>,java.lang.Object[],int), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inconvertible.types: java.lang.String, compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>))),(compiler.misc.inapplicable.method: kindname.method, java.util.ArrayList, add(int,compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>), (compiler.misc.arg.length.mismatch))}
 1 error
--- a/test/langtools/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.out	Thu Apr 19 13:56:29 2018 -0400
+++ b/test/langtools/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.out	Thu Apr 19 17:19:09 2018 -0400
@@ -4,10 +4,10 @@
 EagerReturnTypeResolutionTestb.java:45:26: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:74:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:75:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:77:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
+EagerReturnTypeResolutionTestb.java:77:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
 EagerReturnTypeResolutionTestb.java:78:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:79:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:81:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
+EagerReturnTypeResolutionTestb.java:81:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:82:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:83:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:85:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
@@ -17,10 +17,10 @@
 EagerReturnTypeResolutionTestb.java:90:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:91:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:92:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:94:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.J<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
+EagerReturnTypeResolutionTestb.java:94:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.J<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
 EagerReturnTypeResolutionTestb.java:95:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:96:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:98:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
+EagerReturnTypeResolutionTestb.java:98:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:99:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:100:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:102:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
@@ -28,10 +28,10 @@
 EagerReturnTypeResolutionTestb.java:104:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:105:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:106:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:108:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
+EagerReturnTypeResolutionTestb.java:108:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
 EagerReturnTypeResolutionTestb.java:109:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:110:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:112:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>>&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<? extends java.lang.Object&java.lang.sym.SymbolicRef.OfSelf<?>&java.io.Serializable&java.lang.Comparable<?>>&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
+EagerReturnTypeResolutionTestb.java:112:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>>&java.lang.invoke.constant.Constable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.ConstantDesc<?>&java.lang.invoke.constant.Constable<?>>&java.lang.invoke.constant.Constable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:113:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:114:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:174:9: compiler.err.cant.apply.symbol: kindname.method, takeLong, long, java.lang.Double, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Double, java.lang.Long,java.lang.Object))