src/share/classes/com/sun/tools/javac/jvm/ClassReader.java

Print this page

        

@@ -644,10 +644,22 @@
         case '<':
             typevars = typevars.dup(currentOwner);
             Type poly = new ForAll(sigToTypeParams(), sigToType());
             typevars = typevars.leave();
             return poly;
+        case '#':
+            sigp++;
+            Type returnType = sigToType();
+            if (signature[sigp] != '(')
+              throw badClassFile("bad.signature", Convert.utf2string(signature, sigp, 10));
+            sigp++;
+            List<Type> parameterTypes = sigToTypes(')');
+            return new MethodType(FUNCTION,
+                                  parameterTypes,
+                                  returnType,
+                                  List.<Type>nil(),
+                                  syms.methodClass);
         default:
             throw badClassFile("bad.signature",
                                Convert.utf2string(signature, sigp, 10));
         }
     }