comparison graal/com.oracle.graal.java/src/com/oracle/graal/java/VerifyOptionsPhase.java @ 15311:820c6d353358

added ModifiersProvider as superinterface for ResolvedJava[Method|Field|Type] and implemented all checks against modifiers as default methods
author Doug Simon <doug.simon@oracle.com>
date Wed, 23 Apr 2014 12:38:05 +0200
parents 96bb07a5d667
children
comparison
equal deleted inserted replaced
15310:dc2dd913c47e 15311:820c6d353358
22 */ 22 */
23 23
24 package com.oracle.graal.java; 24 package com.oracle.graal.java;
25 25
26 import static com.oracle.graal.api.meta.MetaUtil.*; 26 import static com.oracle.graal.api.meta.MetaUtil.*;
27 import static java.lang.reflect.Modifier.*;
28
29 import java.util.*; 27 import java.util.*;
30 28
31 import com.oracle.graal.api.meta.*; 29 import com.oracle.graal.api.meta.*;
32 import com.oracle.graal.compiler.common.*; 30 import com.oracle.graal.compiler.common.*;
33 import com.oracle.graal.graph.*; 31 import com.oracle.graal.graph.*;
113 protected void run(StructuredGraph graph) { 111 protected void run(StructuredGraph graph) {
114 for (ValueNode node : graph.getNodes().filter(ValueNode.class)) { 112 for (ValueNode node : graph.getNodes().filter(ValueNode.class)) {
115 if (node instanceof StoreFieldNode) { 113 if (node instanceof StoreFieldNode) {
116 ResolvedJavaField field = ((StoreFieldNode) node).field(); 114 ResolvedJavaField field = ((StoreFieldNode) node).field();
117 verify(field.getDeclaringClass().equals(declaringClass), node, "store to field " + format("%H.%n", field)); 115 verify(field.getDeclaringClass().equals(declaringClass), node, "store to field " + format("%H.%n", field));
118 verify(isStatic(field.getModifiers()), node, "store to field " + format("%H.%n", field)); 116 verify(field.isStatic(), node, "store to field " + format("%H.%n", field));
119 if (optionValueType.isAssignableFrom((ResolvedJavaType) field.getType())) { 117 if (optionValueType.isAssignableFrom((ResolvedJavaType) field.getType())) {
120 verify(isFinal(field.getModifiers()), node, "option field " + format("%H.%n", field) + " not final"); 118 verify(field.isFinal(), node, "option field " + format("%H.%n", field) + " not final");
121 } else { 119 } else {
122 verify((field.isSynthetic()), node, "store to non-synthetic field " + format("%H.%n", field)); 120 verify((field.isSynthetic()), node, "store to non-synthetic field " + format("%H.%n", field));
123 } 121 }
124 } else if (node instanceof Invoke) { 122 } else if (node instanceof Invoke) {
125 Invoke invoke = (Invoke) node; 123 Invoke invoke = (Invoke) node;