author | katleman |
Thu, 21 Aug 2014 14:16:14 -0700 | |
changeset 25878 | 6d561031123e |
parent 18388 | 7d67f9206d8f |
child 30730 | d3ce7619db2c |
permissions | -rw-r--r-- |
14717
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
1 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
2 |
/* |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
3 |
* @test /nodynamiccopyright/ |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
4 |
* @bug 7190862 7109747 |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
5 |
* @summary javap shows an incorrect type for operands if the 'wide' prefix is used |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
6 |
*/ |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
7 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
8 |
import com.sun.source.util.JavacTask; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
9 |
import com.sun.tools.javap.JavapFileManager; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
10 |
import com.sun.tools.javap.JavapTask; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
11 |
import java.io.PrintWriter; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
12 |
import java.io.StringWriter; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
13 |
import java.net.URI; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
14 |
import java.util.Arrays; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
15 |
import java.util.List; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
16 |
import java.util.Locale; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
17 |
import javax.tools.Diagnostic; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
18 |
import javax.tools.DiagnosticCollector; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
19 |
import javax.tools.JavaCompiler; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
20 |
import javax.tools.JavaFileManager; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
21 |
import javax.tools.JavaFileObject; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
22 |
import javax.tools.SimpleJavaFileObject; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
23 |
import javax.tools.ToolProvider; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
24 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
25 |
public class T7190862 { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
26 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
27 |
enum TypeWideInstructionMap { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
28 |
INT("int", new String[]{"istore_w", "iload_w"}), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
29 |
LONG("long", new String[]{"lstore_w", "lload_w"}), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
30 |
FLOAT("float", new String[]{"fstore_w", "fload_w"}), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
31 |
DOUBLE("double", new String[]{"dstore_w", "dload_w"}), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
32 |
OBJECT("Object", new String[]{"astore_w", "aload_w"}); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
33 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
34 |
String type; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
35 |
String[] instructions; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
36 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
37 |
TypeWideInstructionMap(String type, String[] instructions) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
38 |
this.type = type; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
39 |
this.instructions = instructions; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
40 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
41 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
42 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
43 |
JavaSource source; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
44 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
45 |
public static void main(String[] args) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
46 |
JavaCompiler comp = ToolProvider.getSystemJavaCompiler(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
47 |
new T7190862().run(comp); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
48 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
49 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
50 |
private void run(JavaCompiler comp) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
51 |
String code; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
52 |
for (TypeWideInstructionMap typeInstructionMap: TypeWideInstructionMap.values()) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
53 |
if (typeInstructionMap != TypeWideInstructionMap.OBJECT) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
54 |
code = createWideLocalSource(typeInstructionMap.type, 300); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
55 |
} else { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
56 |
code = createWideLocalSourceForObject(300); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
57 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
58 |
source = new JavaSource(code); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
59 |
compile(comp); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
60 |
check(typeInstructionMap.instructions); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
61 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
62 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
63 |
//an extra test for the iinc instruction |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
64 |
code = createIincSource(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
65 |
source = new JavaSource(code); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
66 |
compile(comp); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
67 |
check(new String[]{"iinc_w"}); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
68 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
69 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
70 |
private void compile(JavaCompiler comp) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
71 |
JavacTask ct = (JavacTask)comp.getTask(null, null, null, null, null, Arrays.asList(source)); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
72 |
try { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
73 |
if (!ct.call()) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
74 |
throw new AssertionError("Error thrown when compiling the following source:\n" + source.getCharContent(true)); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
75 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
76 |
} catch (Throwable ex) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
77 |
throw new AssertionError("Error thrown when compiling the following source:\n" + source.getCharContent(true)); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
78 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
79 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
80 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
81 |
private void check(String[] instructions) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
82 |
String out = javap(Arrays.asList("-c"), Arrays.asList("Test.class")); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
83 |
for (String line: out.split(System.getProperty("line.separator"))) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
84 |
line = line.trim(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
85 |
for (String instruction: instructions) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
86 |
if (line.contains(instruction) && line.contains("#")) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
87 |
throw new Error("incorrect type for operands for instruction " + instruction); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
88 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
89 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
90 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
91 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
92 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
93 |
private String javap(List<String> args, List<String> classes) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
94 |
DiagnosticCollector<JavaFileObject> dc = new DiagnosticCollector<JavaFileObject>(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
95 |
StringWriter sw = new StringWriter(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
96 |
PrintWriter pw = new PrintWriter(sw); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
97 |
JavaFileManager fm = JavapFileManager.create(dc, pw); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
98 |
JavapTask t = new JavapTask(pw, fm, dc, args, classes); |
18388
7d67f9206d8f
8007907: javap, method com.sun.tools.javap.Main.run returns 0 even in case of class not found error
vromero
parents:
14717
diff
changeset
|
99 |
if (t.run() != 0) |
14717
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
100 |
throw new Error("javap failed unexpectedly"); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
101 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
102 |
List<Diagnostic<? extends JavaFileObject>> diags = dc.getDiagnostics(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
103 |
for (Diagnostic<? extends JavaFileObject> d: diags) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
104 |
if (d.getKind() == Diagnostic.Kind.ERROR) |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
105 |
throw new Error(d.getMessage(Locale.ENGLISH)); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
106 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
107 |
return sw.toString(); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
108 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
109 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
110 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
111 |
private String createWideLocalSource(String type, int numberOfVars) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
112 |
String result = " " + type + " x0 = 0;\n"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
113 |
for (int i = 1; i < numberOfVars; i++) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
114 |
result += " " + type + " x" + i + " = x" + (i - 1) + " + 1;\n"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
115 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
116 |
return result; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
117 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
118 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
119 |
private String createWideLocalSourceForObject(int numberOfVars) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
120 |
String result = " Object x0 = new Object();\n"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
121 |
for (int i = 1; i < numberOfVars; i++) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
122 |
result += " Object x" + i + " = x0;\n"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
123 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
124 |
return result; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
125 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
126 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
127 |
private String createIincSource() { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
128 |
return " int i = 0;\n" |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
129 |
+ " i += 1;\n" |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
130 |
+ " i += 51;\n" |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
131 |
+ " i += 101;\n" |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
132 |
+ " i += 151;\n"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
133 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
134 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
135 |
class JavaSource extends SimpleJavaFileObject { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
136 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
137 |
String template = "class Test {\n" + |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
138 |
" public static void main(String[] args)\n" + |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
139 |
" {\n" + |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
140 |
" #C" + |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
141 |
" }\n" + |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
142 |
"}"; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
143 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
144 |
String source; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
145 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
146 |
public JavaSource(String code) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
147 |
super(URI.create("Test.java"), JavaFileObject.Kind.SOURCE); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
148 |
source = template.replaceAll("#C", code); |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
149 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
150 |
|
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
151 |
@Override |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
152 |
public CharSequence getCharContent(boolean ignoreEncodingErrors) { |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
153 |
return source; |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
154 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
155 |
} |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
diff
changeset
|
156 |
} |