Wed, 05 Mar 2014 15:35:06 -0800
Merge
1.1 --- a/src/share/classes/com/sun/tools/classfile/Attribute.java Wed Mar 05 12:31:58 2014 -0800 1.2 +++ b/src/share/classes/com/sun/tools/classfile/Attribute.java Wed Mar 05 15:35:06 2014 -0800 1.3 @@ -71,10 +71,6 @@ 1.4 // defer init of standardAttributeClasses until after options set up 1.5 } 1.6 1.7 - public void setCompat(boolean compat) { 1.8 - this.compat = compat; 1.9 - } 1.10 - 1.11 public Attribute createAttribute(ClassReader cr, int name_index, byte[] data) 1.12 throws IOException { 1.13 if (standardAttributes == null) { 1.14 @@ -109,9 +105,10 @@ 1.15 protected void init() { 1.16 standardAttributes = new HashMap<String,Class<? extends Attribute>>(); 1.17 standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class); 1.18 - standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class); 1.19 + standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class); 1.20 standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class); 1.21 standardAttributes.put(Code, Code_attribute.class); 1.22 + standardAttributes.put(CompilationID, CompilationID_attribute.class); 1.23 standardAttributes.put(ConstantValue, ConstantValue_attribute.class); 1.24 standardAttributes.put(Deprecated, Deprecated_attribute.class); 1.25 standardAttributes.put(EnclosingMethod, EnclosingMethod_attribute.class); 1.26 @@ -120,29 +117,23 @@ 1.27 standardAttributes.put(LineNumberTable, LineNumberTable_attribute.class); 1.28 standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class); 1.29 standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class); 1.30 - 1.31 - if (!compat) { // old javap does not recognize recent attributes 1.32 - standardAttributes.put(MethodParameters, MethodParameters_attribute.class); 1.33 - standardAttributes.put(CompilationID, CompilationID_attribute.class); 1.34 - standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class); 1.35 - standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class); 1.36 - standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class); 1.37 - standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class); 1.38 - standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class); 1.39 - standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class); 1.40 - standardAttributes.put(Signature, Signature_attribute.class); 1.41 - standardAttributes.put(SourceID, SourceID_attribute.class); 1.42 - } 1.43 - 1.44 + standardAttributes.put(MethodParameters, MethodParameters_attribute.class); 1.45 + standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class); 1.46 + standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class); 1.47 + standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class); 1.48 + standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class); 1.49 + standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class); 1.50 + standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class); 1.51 + standardAttributes.put(Signature, Signature_attribute.class); 1.52 standardAttributes.put(SourceDebugExtension, SourceDebugExtension_attribute.class); 1.53 standardAttributes.put(SourceFile, SourceFile_attribute.class); 1.54 + standardAttributes.put(SourceID, SourceID_attribute.class); 1.55 standardAttributes.put(StackMap, StackMap_attribute.class); 1.56 standardAttributes.put(StackMapTable, StackMapTable_attribute.class); 1.57 standardAttributes.put(Synthetic, Synthetic_attribute.class); 1.58 } 1.59 1.60 private Map<String,Class<? extends Attribute>> standardAttributes; 1.61 - private boolean compat; // don't support recent attrs in compatibility mode 1.62 } 1.63 1.64 public static Attribute read(ClassReader cr) throws IOException {
2.1 --- a/src/share/classes/com/sun/tools/javap/AttributeWriter.java Wed Mar 05 12:31:58 2014 -0800 2.2 +++ b/src/share/classes/com/sun/tools/javap/AttributeWriter.java Wed Mar 05 15:35:06 2014 -0800 2.3 @@ -226,10 +226,7 @@ 2.4 } 2.5 2.6 public Void visitConstantValue(ConstantValue_attribute attr, Void ignore) { 2.7 - if (options.compat) // BUG 6622216 javap names some attributes incorrectly 2.8 - print("Constant value: "); 2.9 - else 2.10 - print("ConstantValue: "); 2.11 + print("ConstantValue: "); 2.12 constantWriter.write(attr.constantvalue_index); 2.13 println(); 2.14 return null; 2.15 @@ -290,20 +287,10 @@ 2.16 2.17 public Void visitInnerClasses(InnerClasses_attribute attr, Void ignore) { 2.18 boolean first = true; 2.19 - if (options.compat) { 2.20 - writeInnerClassHeader(); 2.21 - first = false; 2.22 - } 2.23 for (int i = 0 ; i < attr.classes.length; i++) { 2.24 InnerClasses_attribute.Info info = attr.classes[i]; 2.25 //access 2.26 AccessFlags access_flags = info.inner_class_access_flags; 2.27 - if (options.compat) { 2.28 - // BUG 6622215: javap ignores certain relevant access flags 2.29 - access_flags = access_flags.ignore(ACC_STATIC | ACC_PROTECTED | ACC_PRIVATE | ACC_INTERFACE | ACC_SYNTHETIC | ACC_ENUM); 2.30 - // BUG 6622232: javap gets whitespace confused 2.31 - print(" "); 2.32 - } 2.33 if (options.checkAccess(access_flags)) { 2.34 if (first) { 2.35 writeInnerClassHeader(); 2.36 @@ -345,11 +332,7 @@ 2.37 } 2.38 2.39 private void writeInnerClassHeader() { 2.40 - if (options.compat) // BUG 6622216: javap names some attributes incorrectly 2.41 - print("InnerClass"); 2.42 - else 2.43 - print("InnerClasses"); 2.44 - println(":"); 2.45 + println("InnerClasses:"); 2.46 indent(+1); 2.47 } 2.48 2.49 @@ -703,10 +686,7 @@ 2.50 } 2.51 2.52 String toHex(byte b, int w) { 2.53 - if (options.compat) // BUG 6622260: javap prints negative bytes incorrectly in hex 2.54 - return toHex((int) b, w); 2.55 - else 2.56 - return toHex(b & 0xff, w); 2.57 + return toHex(b & 0xff, w); 2.58 } 2.59 2.60 static String toHex(int i) {
3.1 --- a/src/share/classes/com/sun/tools/javap/ClassWriter.java Wed Mar 05 12:31:58 2014 -0800 3.2 +++ b/src/share/classes/com/sun/tools/javap/ClassWriter.java Wed Mar 05 15:35:06 2014 -0800 3.3 @@ -120,7 +120,7 @@ 3.4 public void write(ClassFile cf) { 3.5 setClassFile(cf); 3.6 3.7 - if ((options.sysInfo || options.verbose) && !options.compat) { 3.8 + if (options.sysInfo || options.verbose) { 3.9 if (uri != null) { 3.10 if (uri.getScheme().equals("file")) 3.11 println("Classfile " + uri.getPath()); 3.12 @@ -152,7 +152,7 @@ 3.13 println("Compiled from \"" + getSourceFile((SourceFile_attribute) sfa) + "\""); 3.14 } 3.15 3.16 - if ((options.sysInfo || options.verbose) && !options.compat) { 3.17 + if (options.sysInfo || options.verbose) { 3.18 indent(-1); 3.19 } 3.20 3.21 @@ -205,8 +205,7 @@ 3.22 attrWriter.write(cf, cf.attributes, constant_pool); 3.23 println("minor version: " + cf.minor_version); 3.24 println("major version: " + cf.major_version); 3.25 - if (!options.compat) 3.26 - writeList("flags: ", flags.getClassFlags(), "\n"); 3.27 + writeList("flags: ", flags.getClassFlags(), "\n"); 3.28 indent(-1); 3.29 constantWriter.writeConstantPool(); 3.30 } else { 3.31 @@ -372,7 +371,7 @@ 3.32 } 3.33 print(" "); 3.34 print(getFieldName(f)); 3.35 - if (options.showConstants && !options.compat) { // BUG 4111861 print static final field contents 3.36 + if (options.showConstants) { 3.37 Attribute a = f.attributes.get(Attribute.ConstantValue); 3.38 if (a instanceof ConstantValue_attribute) { 3.39 print(" = "); 3.40 @@ -390,7 +389,7 @@ 3.41 if (options.showDescriptors) 3.42 println("descriptor: " + getValue(f.descriptor)); 3.43 3.44 - if (options.verbose && !options.compat) 3.45 + if (options.verbose) 3.46 writeList("flags: ", flags.getFieldFlags(), "\n"); 3.47 3.48 if (options.showAllAttrs) { 3.49 @@ -487,7 +486,7 @@ 3.50 println("descriptor: " + getValue(m.descriptor)); 3.51 } 3.52 3.53 - if (options.verbose && !options.compat) { 3.54 + if (options.verbose) { 3.55 writeList("flags: ", flags.getMethodFlags(), "\n"); 3.56 } 3.57 3.58 @@ -553,13 +552,11 @@ 3.59 } 3.60 3.61 Signature_attribute getSignature(Attributes attributes) { 3.62 - if (options.compat) // javap does not recognize recent attributes 3.63 - return null; 3.64 return (Signature_attribute) attributes.get(Attribute.Signature); 3.65 } 3.66 3.67 String adjustVarargs(AccessFlags flags, String params) { 3.68 - if (flags.is(ACC_VARARGS) && !options.compat) { 3.69 + if (flags.is(ACC_VARARGS)) { 3.70 int i = params.lastIndexOf("[]"); 3.71 if (i > 0) 3.72 return params.substring(0, i) + "..." + params.substring(i+2);
4.1 --- a/src/share/classes/com/sun/tools/javap/ConstantWriter.java Wed Mar 05 12:31:58 2014 -0800 4.2 +++ b/src/share/classes/com/sun/tools/javap/ConstantWriter.java Wed Mar 05 15:35:06 2014 -0800 4.3 @@ -64,7 +64,7 @@ 4.4 public Integer visitClass(CONSTANT_Class_info info, Void p) { 4.5 print("#" + info.name_index); 4.6 tab(); 4.7 - println("// " + stringValue(info)); 4.8 + println("// " + stringValue(info)); 4.9 return 1; 4.10 } 4.11 4.12 @@ -76,7 +76,7 @@ 4.13 public Integer visitFieldref(CONSTANT_Fieldref_info info, Void p) { 4.14 print("#" + info.class_index + ".#" + info.name_and_type_index); 4.15 tab(); 4.16 - println("// " + stringValue(info)); 4.17 + println("// " + stringValue(info)); 4.18 return 1; 4.19 } 4.20 4.21 @@ -93,14 +93,14 @@ 4.22 public Integer visitInterfaceMethodref(CONSTANT_InterfaceMethodref_info info, Void p) { 4.23 print("#" + info.class_index + ".#" + info.name_and_type_index); 4.24 tab(); 4.25 - println("// " + stringValue(info)); 4.26 + println("// " + stringValue(info)); 4.27 return 1; 4.28 } 4.29 4.30 public Integer visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Void p) { 4.31 print("#" + info.bootstrap_method_attr_index + ":#" + info.name_and_type_index); 4.32 tab(); 4.33 - println("// " + stringValue(info)); 4.34 + println("// " + stringValue(info)); 4.35 return 1; 4.36 } 4.37 4.38 @@ -112,21 +112,21 @@ 4.39 public Integer visitNameAndType(CONSTANT_NameAndType_info info, Void p) { 4.40 print("#" + info.name_index + ":#" + info.type_index); 4.41 tab(); 4.42 - println("// " + stringValue(info)); 4.43 + println("// " + stringValue(info)); 4.44 return 1; 4.45 } 4.46 4.47 public Integer visitMethodref(CONSTANT_Methodref_info info, Void p) { 4.48 print("#" + info.class_index + ".#" + info.name_and_type_index); 4.49 tab(); 4.50 - println("// " + stringValue(info)); 4.51 + println("// " + stringValue(info)); 4.52 return 1; 4.53 } 4.54 4.55 public Integer visitMethodHandle(CONSTANT_MethodHandle_info info, Void p) { 4.56 print("#" + info.reference_kind.tag + ":#" + info.reference_index); 4.57 tab(); 4.58 - println("// " + stringValue(info)); 4.59 + println("// " + stringValue(info)); 4.60 return 1; 4.61 } 4.62 4.63 @@ -140,7 +140,7 @@ 4.64 public Integer visitString(CONSTANT_String_info info, Void p) { 4.65 print("#" + info.string_index); 4.66 tab(); 4.67 - println("// " + stringValue(info)); 4.68 + println("// " + stringValue(info)); 4.69 return 1; 4.70 } 4.71
5.1 --- a/src/share/classes/com/sun/tools/javap/JavapTask.java Wed Mar 05 12:31:58 2014 -0800 5.2 +++ b/src/share/classes/com/sun/tools/javap/JavapTask.java Wed Mar 05 15:35:06 2014 -0800 5.3 @@ -195,48 +195,12 @@ 5.4 } 5.5 }, 5.6 5.7 -// new Option(false, "-all") { 5.8 -// void process(JavapTask task, String opt, String arg) { 5.9 -// task.options.showAllAttrs = true; 5.10 -// } 5.11 -// }, 5.12 - 5.13 - new Option(false, "-h") { 5.14 - void process(JavapTask task, String opt, String arg) throws BadArgs { 5.15 - throw task.new BadArgs("err.h.not.supported"); 5.16 - } 5.17 - }, 5.18 - 5.19 - new Option(false, "-verify", "-verify-verbose") { 5.20 - void process(JavapTask task, String opt, String arg) throws BadArgs { 5.21 - throw task.new BadArgs("err.verify.not.supported"); 5.22 - } 5.23 - }, 5.24 - 5.25 new Option(false, "-sysinfo") { 5.26 void process(JavapTask task, String opt, String arg) { 5.27 task.options.sysInfo = true; 5.28 } 5.29 }, 5.30 5.31 - new Option(false, "-Xold") { 5.32 - void process(JavapTask task, String opt, String arg) throws BadArgs { 5.33 - task.log.println(task.getMessage("warn.Xold.not.supported")); 5.34 - } 5.35 - }, 5.36 - 5.37 - new Option(false, "-Xnew") { 5.38 - void process(JavapTask task, String opt, String arg) throws BadArgs { 5.39 - // ignore: this _is_ the new version 5.40 - } 5.41 - }, 5.42 - 5.43 - new Option(false, "-XDcompat") { 5.44 - void process(JavapTask task, String opt, String arg) { 5.45 - task.options.compat = true; 5.46 - } 5.47 - }, 5.48 - 5.49 new Option(false, "-XDdetails") { 5.50 void process(JavapTask task, String opt, String arg) { 5.51 task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class); 5.52 @@ -524,7 +488,7 @@ 5.53 throw new BadArgs("err.unknown.option", arg).showUsage(true); 5.54 } 5.55 5.56 - if (!options.compat && options.accessOptions.size() > 1) { 5.57 + if (options.accessOptions.size() > 1) { 5.58 StringBuilder sb = new StringBuilder(); 5.59 for (String opt: options.accessOptions) { 5.60 if (sb.length() > 0) 5.61 @@ -589,8 +553,6 @@ 5.62 SourceWriter sourceWriter = SourceWriter.instance(context); 5.63 sourceWriter.setFileManager(fileManager); 5.64 5.65 - attributeFactory.setCompat(options.compat); 5.66 - 5.67 int result = EXIT_OK; 5.68 5.69 for (String className: classes) {
6.1 --- a/src/share/classes/com/sun/tools/javap/Options.java Wed Mar 05 12:31:58 2014 -0800 6.2 +++ b/src/share/classes/com/sun/tools/javap/Options.java Wed Mar 05 15:35:06 2014 -0800 6.3 @@ -88,6 +88,4 @@ 6.4 public boolean showInnerClasses; 6.5 public int indentWidth = 2; // #spaces per indentWidth level; must be > 0 6.6 public int tabColumn = 40; // column number for comments; must be > 0 6.7 - 6.8 - public boolean compat; // bug-for-bug compatibility mode with old javap 6.9 }
7.1 --- a/src/share/classes/com/sun/tools/javap/resources/javap.properties Wed Mar 05 12:31:58 2014 -0800 7.2 +++ b/src/share/classes/com/sun/tools/javap/resources/javap.properties Wed Mar 05 15:35:06 2014 -0800 7.3 @@ -6,7 +6,6 @@ 7.4 err.crash=A serious internal error has occurred: {0}\nPlease file a bug report, and include the following information:\n{1} 7.5 err.end.of.file=unexpected end of file while reading {0} 7.6 err.file.not.found=file not found: {0} 7.7 -err.h.not.supported=-h is no longer available - use the 'javah' program 7.8 err.incompatible.options=bad combination of options: {0} 7.9 err.internal.error=internal error: {0} {1} {2} 7.10 err.invalid.arg.for.option=invalid argument for option: {0} 7.11 @@ -16,11 +15,9 @@ 7.12 err.not.standard.file.manager=can only specify class files when using a standard file manager 7.13 err.invalid.use.of.option=invalid use of option: {0} 7.14 err.unknown.option=unknown option: {0} 7.15 -err.verify.not.supported=-verify not supported 7.16 err.no.SourceFile.attribute=no SourceFile attribute 7.17 err.source.file.not.found=source file not found 7.18 err.bad.innerclasses.attribute=bad InnerClasses attribute for {0} 7.19 -warn.Xold.not.supported=-Xold is no longer available 7.20 7.21 main.usage.summary=\ 7.22 Usage: {0} <options> <classes>\n\
8.1 --- a/test/tools/javap/InvalidOptions.java Wed Mar 05 12:31:58 2014 -0800 8.2 +++ b/test/tools/javap/InvalidOptions.java Wed Mar 05 15:35:06 2014 -0800 8.3 @@ -24,7 +24,7 @@ 8.4 /* 8.5 * @test 8.6 * @bug 8027411 8.7 - * @summary test invalid options -h and -b 8.8 + * @summary test an invalid option 8.9 */ 8.10 8.11 import java.io.*; 8.12 @@ -39,7 +39,6 @@ 8.13 } 8.14 8.15 void run() throws Exception { 8.16 - test(2, "-h", "Error: -h is no longer available - use the javah program"); 8.17 test(2, "-b", "Error: unknown option: -b", 8.18 "Usage: javap <options> <classes>", 8.19 "use -help for a list of possible options");
9.1 --- a/test/tools/javap/MethodParameters.java Wed Mar 05 12:31:58 2014 -0800 9.2 +++ b/test/tools/javap/MethodParameters.java Wed Mar 05 15:35:06 2014 -0800 9.3 @@ -1,5 +1,5 @@ 9.4 /* 9.5 - * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. 9.6 + * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. 9.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9.8 * 9.9 * This code is free software; you can redistribute it and/or modify it 9.10 @@ -44,24 +44,24 @@ 9.11 static final String Init0_expected = 9.12 (" Foo();\n" + 9.13 " descriptor: ()V\n" + 9.14 - " flags: \n" + 9.15 + " flags:\n" + 9.16 " Code:\n" + 9.17 " stack=1, locals=1, args_size=1\n" + 9.18 - " 0: aload_0 \n" + 9.19 + " 0: aload_0\n" + 9.20 " 1: invokespecial #1 // Method java/lang/Object.\"<init>\":()V\n" + 9.21 - " 4: return \n" + 9.22 + " 4: return\n" + 9.23 " LineNumberTable:\n" + 9.24 " line 2: 0").replaceAll(" +", " "); 9.25 9.26 static final String Init1_expected = 9.27 (" Foo(int);\n" + 9.28 " descriptor: (I)V\n" + 9.29 - " flags: \n" + 9.30 + " flags:\n" + 9.31 " Code:\n" + 9.32 " stack=1, locals=2, args_size=2\n" + 9.33 - " 0: aload_0 \n" + 9.34 + " 0: aload_0\n" + 9.35 " 1: invokespecial #1 // Method java/lang/Object.\"<init>\":()V\n" + 9.36 - " 4: return \n" + 9.37 + " 4: return\n" + 9.38 " LineNumberTable:\n" + 9.39 " line 3: 0\n" + 9.40 " MethodParameters:\n" + 9.41 @@ -71,25 +71,25 @@ 9.42 static final String foo0_expected = 9.43 (" void foo0();\n" + 9.44 " descriptor: ()V\n" + 9.45 - " flags: \n" + 9.46 + " flags:\n" + 9.47 " Code:\n" + 9.48 " stack=0, locals=1, args_size=1\n" + 9.49 - " 0: return \n" + 9.50 + " 0: return\n" + 9.51 " LineNumberTable:\n" + 9.52 " line 4: 0").replaceAll(" +", " "); 9.53 9.54 static final String foo2_expected = 9.55 (" void foo2(int, int);\n" + 9.56 " descriptor: (II)V\n" + 9.57 - " flags: \n" + 9.58 + " flags:\n" + 9.59 " Code:\n" + 9.60 " stack=0, locals=3, args_size=3\n" + 9.61 - " 0: return \n" + 9.62 + " 0: return\n" + 9.63 " LineNumberTable:\n" + 9.64 " line 5: 0\n" + 9.65 " MethodParameters:\n" + 9.66 " Name Flags\n" + 9.67 - " j \n" + 9.68 + " j\n" + 9.69 " k").replaceAll(" +", " "); 9.70 9.71 static final File classesdir = new File("methodparameters");
10.1 --- a/test/tools/javap/T6868539.java Wed Mar 05 12:31:58 2014 -0800 10.2 +++ b/test/tools/javap/T6868539.java Wed Mar 05 15:35:06 2014 -0800 10.3 @@ -23,7 +23,7 @@ 10.4 10.5 /* 10.6 * @test 10.7 - * @bug 6868539 6868548 10.8 + * @bug 6868539 6868548 8035364 10.9 * @summary javap should use current names for constant pool entries, 10.10 * remove spurious ';' from constant pool entries 10.11 */ 10.12 @@ -41,17 +41,17 @@ 10.13 void run() { 10.14 String output = javap("T6868539"); 10.15 verify(output, "Utf8 +java/lang/String"); // 1: Utf8 10.16 - // 2: currently unused 10.17 + // 2: currently unused 10.18 verify(output, "Integer +123456"); // 3: Integer 10.19 verify(output, "Float +123456.0f"); // 4: Float 10.20 verify(output, "Long +123456l"); // 5: Long 10.21 verify(output, "Double +123456.0d"); // 6: Double 10.22 - verify(output, "Class +#[0-9]+ +// + T6868539"); // 7: Class 10.23 - verify(output, "String +#[0-9]+ +// + not found"); // 8: String 10.24 + verify(output, "Class +#[0-9]+ +// +T6868539"); // 7: Class 10.25 + verify(output, "String +#[0-9]+ +// +not found"); // 8: String 10.26 verify(output, "Fieldref +#[0-9]+\\.#[0-9]+ +// +T6868539.errors:I"); // 9: Fieldref 10.27 verify(output, "Methodref +#[0-9]+\\.#[0-9]+ +// +T6868539.run:\\(\\)V"); // 10: Methodref 10.28 verify(output, "InterfaceMethodref +#[0-9]+\\.#[0-9]+ +// +java/lang/Runnable\\.run:\\(\\)V"); 10.29 - // 11: InterfaceMethodref 10.30 + // 11: InterfaceMethodref 10.31 verify(output, "NameAndType +#[0-9]+:#[0-9]+ +// +run:\\(\\)V"); // 12: NameAndType 10.32 if (errors > 0) 10.33 throw new Error(errors + " found.");