changeset 20958:4514065de564

Remove dsl processor dependency from nodeinfo.processor project.
author Christian Humer <christian.humer@gmail.com>
date Tue, 14 Apr 2015 22:56:15 +0200
parents 71509cb61f17
children bb7e95512781
files graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeVerifier.java mx/suite.py
diffstat 3 files changed, 44 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java	Tue Apr 14 19:56:01 2015 +0200
+++ b/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java	Tue Apr 14 22:56:15 2015 +0200
@@ -22,7 +22,6 @@
  */
 package com.oracle.graal.nodeinfo.processor;
 
-import static com.oracle.truffle.dsl.processor.java.ElementUtils.*;
 import static java.util.Collections.*;
 
 import java.io.*;
@@ -71,6 +70,21 @@
         }
     }
 
+    private static List<Element> getElementHierarchy(Element e) {
+        List<Element> elements = new ArrayList<>();
+        elements.add(e);
+
+        Element enclosing = e.getEnclosingElement();
+        while (enclosing != null && enclosing.getKind() != ElementKind.PACKAGE) {
+            elements.add(enclosing);
+            enclosing = enclosing.getEnclosingElement();
+        }
+        if (enclosing != null) {
+            elements.add(enclosing);
+        }
+        return elements;
+    }
+
     /**
      * Bugs in an annotation processor can cause silent failure so try to report any exception
      * throws as errors.
--- a/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeVerifier.java	Tue Apr 14 19:56:01 2015 +0200
+++ b/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeVerifier.java	Tue Apr 14 22:56:15 2015 +0200
@@ -22,7 +22,6 @@
  */
 package com.oracle.graal.nodeinfo.processor;
 
-import static com.oracle.truffle.dsl.processor.java.ElementUtils.*;
 import static javax.lang.model.element.Modifier.*;
 
 import java.util.*;
@@ -32,10 +31,6 @@
 import javax.lang.model.type.*;
 import javax.lang.model.util.*;
 
-import com.oracle.truffle.dsl.processor.java.*;
-import com.oracle.truffle.dsl.processor.java.compiler.*;
-import com.oracle.truffle.dsl.processor.java.compiler.Compiler;
-
 /**
  * Verifies static constraints on nodes.
  */
@@ -54,6 +49,8 @@
     private final TypeElement NodeInputList;
     private final TypeElement NodeSuccessorList;
 
+    private final TypeElement object;
+
     // Checkstyle: resume
 
     public GraphNodeVerifier(GraphNodeProcessor processor) {
@@ -68,6 +65,7 @@
         this.Node = getTypeElement("com.oracle.graal.graph.Node");
         this.NodeInputList = getTypeElement("com.oracle.graal.graph.NodeInputList");
         this.NodeSuccessorList = getTypeElement("com.oracle.graal.graph.NodeSuccessorList");
+        this.object = getTypeElement("java.lang.Object");
     }
 
     /**
@@ -91,10 +89,6 @@
         return getTypeElement(name).asType();
     }
 
-    public TypeMirror getType(Class<?> cls) {
-        return ElementUtils.getType(getProcessingEnv(), cls);
-    }
-
     public ProcessingEnvironment getProcessingEnv() {
         return env.getProcessingEnv();
     }
@@ -106,10 +100,9 @@
     }
 
     private void scanFields(TypeElement node) {
-        Compiler compiler = CompilerFactory.getCompiler(node);
         TypeElement currentClazz = node;
         do {
-            for (VariableElement field : ElementFilter.fieldsIn(compiler.getEnclosedElementsInDeclarationOrder(currentClazz))) {
+            for (VariableElement field : ElementFilter.fieldsIn(currentClazz.getEnclosedElements())) {
                 Set<Modifier> modifiers = field.getModifiers();
                 if (modifiers.contains(STATIC) || modifiers.contains(TRANSIENT)) {
                     continue;
@@ -117,7 +110,7 @@
 
                 List<? extends AnnotationMirror> annotations = field.getAnnotationMirrors();
 
-                boolean isNonOptionalInput = findAnnotationMirror(annotations, Input.asType()) != null;
+                boolean isNonOptionalInput = findAnnotationMirror(annotations, Input) != null;
                 boolean isOptionalInput = findAnnotationMirror(annotations, OptionalInput) != null;
                 boolean isSuccessor = findAnnotationMirror(annotations, Successor) != null;
 
@@ -187,6 +180,30 @@
         } while (!isObject(getSuperType(currentClazz).asType()));
     }
 
+    private AnnotationMirror findAnnotationMirror(List<? extends AnnotationMirror> mirrors, TypeElement expectedAnnotationType) {
+        for (AnnotationMirror mirror : mirrors) {
+            if (sameType(mirror.getAnnotationType(), expectedAnnotationType.asType())) {
+                return mirror;
+            }
+        }
+        return null;
+    }
+
+    private boolean isObject(TypeMirror type) {
+        return sameType(object.asType(), type);
+    }
+
+    private boolean sameType(TypeMirror type1, TypeMirror type2) {
+        return env.getProcessingEnv().getTypeUtils().isSameType(type1, type2);
+    }
+
+    private TypeElement getSuperType(TypeElement element) {
+        if (element.getSuperclass() != null) {
+            return (TypeElement) env.getProcessingEnv().getTypeUtils().asElement(element.getSuperclass());
+        }
+        return null;
+    }
+
     void verify(TypeElement node) {
         scanFields(node);
 
--- a/mx/suite.py	Tue Apr 14 19:56:01 2015 +0200
+++ b/mx/suite.py	Tue Apr 14 22:56:15 2015 +0200
@@ -465,7 +465,6 @@
       "checkstyle" : "com.oracle.graal.graph",
       "dependencies" : [
         "com.oracle.graal.nodeinfo",
-        "com.oracle.truffle.dsl.processor",
       ],
       "javaCompliance" : "1.8",
       "workingSets" : "Graal,Graph",