Hi Ben,

It seems that the following is a correct patch for these 2 files (Parser.java and Name.java):

diff -r 871c1708de94 src/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Tue Dec 23 05:50:59 2008 +0300 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Sat Dec 27 00:29:06 2008 +0300
@@ -1027,7 +1027,13 @@
                    return illegal(pos);
                }
            } else {
-                return illegal();
+ // Support the corner case of myMethodHandle.<void>invoke() by passing + // a void type (like other primitive types) to the next phase. + // The error will be reported in Attr.attribTypes or Attr.visitApply. + JCPrimitiveTypeTree ti = to(F.at(pos).TypeIdent(TypeTags.VOID));
+                S.nextToken();
+                return ti;
+                //return illegal();
            }
            break;
        default:
diff -r 871c1708de94 src/share/classes/com/sun/tools/javac/util/Names.java
--- a/src/share/classes/com/sun/tools/javac/util/Names.java Tue Dec 23 05:50:59 2008 +0300 +++ b/src/share/classes/com/sun/tools/javac/util/Names.java Sat Dec 27 00:29:07 2008 +0300
@@ -73,6 +73,8 @@
    public final Name java_io_Serializable;
    public final Name serialVersionUID;
    public final Name java_lang_Enum;
+    public final Name java_dyn_MethodHandle;
+    public final Name java_dyn_Dynamic;
    public final Name package_info;
    public final Name ConstantValue;
    public final Name LineNumberTable;
@@ -111,6 +113,7 @@
    public final Name value;
    public final Name getMessage;
    public final Name getClass;
+    public final Name invoke;
    public final Name TYPE;
    public final Name FIELD;
    public final Name METHOD;
@@ -175,6 +178,8 @@
        java_lang_Cloneable = fromString("java.lang.Cloneable");
        java_io_Serializable = fromString("java.io.Serializable");
        java_lang_Enum = fromString("java.lang.Enum");
+        java_dyn_MethodHandle = fromString("java.dyn.MethodHandle");
+        java_dyn_Dynamic = fromString("java.dyn.Dynamic");
        package_info = fromString("package-info");
        serialVersionUID = fromString("serialVersionUID");
        ConstantValue = fromString("ConstantValue");
@@ -216,6 +221,7 @@
        value = fromString("value");
        getMessage = fromString("getMessage");
        getClass = fromString("getClass");
+        invoke = fromString("invoke");

        TYPE = fromString("TYPE");
        FIELD = fromString("FIELD");

Best regards,
Kirill

Ben Evans пишет:
Merry Christmas John (and everyone),

I'm starting to look at the delta between the current bsd-port and b42, to see what needs doing to get this building on Mac and I've noticed something which seems a bit odd about meth.patch

It contains this hunk:

diff --git a/src/share/classes/com/sun/tools/javac/util/Name.java b/src/share/classes/com/sun/tools/javac/util/Name.java
--- a/src/share/classes/com/sun/tools/javac/util/Name.java
+++ b/src/share/classes/com/sun/tools/javac/util/Name.java
@@ -437,6 +437,8 @@
             java_lang_Cloneable = fromString("java.lang.Cloneable");
             java_io_Serializable = fromString("java.io.Serializable");
             java_lang_Enum = fromString("java.lang.Enum");
+            java_dyn_MethodHandle = fromString("java.dyn.MethodHandle");
+            java_dyn_Dynamic = fromString("java.dyn.Dynamic");
             package_info = fromString("package-info");
             serialVersionUID = fromString("serialVersionUID");
             ConstantValue = fromString("ConstantValue");
@@ -478,6 +480,7 @@
             value = fromString("value");
             getMessage = fromString("getMessage");
             getClass = fromString("getClass");
+            invoke = fromString("invoke");
TYPE = fromString("TYPE");
             FIELD = fromString("FIELD");
@@ -571,6 +574,8 @@
         public final Name java_io_Serializable;
         public final Name serialVersionUID;
         public final Name java_lang_Enum;
+        public final Name java_dyn_MethodHandle;
+        public final Name java_dyn_Dynamic;
         public final Name package_info;
         public final Name ConstantValue;
         public final Name LineNumberTable;
@@ -612,6 +617,7 @@
         public final Name value;
         public final Name getMessage;
         public final Name getClass;
+        public final Name invoke;
public final Name TYPE;
         public final Name FIELD;

but in the code which I fclone'd today, those additions look like they should be applied to Names.java rather than Name.java as the diff line would suggest.

Am I making some schoolboy error which currently eludes me?

Thanks,

Ben

On Fri, Dec 26, 2008 at 9:03 AM, John Rose <[email protected] <mailto:[email protected]>> wrote:

    I've spent the last 24+ hours enjoying more traditional forms of
    merrymaking.  (Though I was indeed having a wild ride with that
    meth.patch stuff.)

    Merry Christmas (x 12 days of); enjoy all the good things the
    holidays bring!

    Warm best wishes,
    -- John

    On Dec 25, 2008, at 6:36 AM, David Pollak wrote:

    (F)rebasing meth... a new kind of Christmas cheer.  :-)

    Sorry... it's t-minus 30 minutes to kids waking up and I spent
    many hours last night doing "some assembly required"


        On Dec 24, 2008 8:22 PM, <[email protected]
        <mailto:[email protected]>> wrote:

        Changeset: 1d42dc25d9e3
        Author:    jrose
        Date:      2008-12-24 19:53 -0800
URL: http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/1d42dc25d9e3

        meth: rebase to b42; improve implementation

        ! meth.patch
        ! meth.txt
        ! series

        _____________


    _______________________________________________
    mlvm-dev mailing list
    [email protected] <mailto:[email protected]>
    http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to