--- old/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java 2013-02-12 16:39:48.149488521 -0800 +++ new/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java 2013-02-12 16:39:48.061490708 -0800 @@ -1470,12 +1470,13 @@ position.type = type; switch (type) { - // type cast - case CAST: // instanceof case INSTANCEOF: // new expression case NEW: + // constructor/method reference receiver + case CONSTRUCTOR_REFERENCE: + case METHOD_REFERENCE: position.offset = nextChar(); break; // local variable @@ -1524,9 +1525,12 @@ case METHOD_FORMAL_PARAMETER: position.parameter_index = nextByte(); break; + // type cast + case CAST: // method/constructor/reference type argument case CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT: case METHOD_INVOCATION_TYPE_ARGUMENT: + case CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT: case METHOD_REFERENCE_TYPE_ARGUMENT: position.offset = nextChar(); position.type_index = nextByte(); @@ -1535,10 +1539,6 @@ case METHOD_RETURN: case FIELD: break; - // lambda formal parameter - case LAMBDA_FORMAL_PARAMETER: - position.parameter_index = nextByte(); - break; case UNKNOWN: throw new AssertionError("jvm.ClassReader: UNKNOWN target type should never occur!"); default: