changeset 18772:7fab6f106989

Truffle-DSL: avoid some checkstyle errors for generated code.
author Christian Humer <christian.humer@gmail.com>
date Mon, 05 Jan 2015 01:31:07 +0100
parents 15fe16c45d64
children 7382bbcac3a3
files graal/com.oracle.graal.graph/.checkstyle_checks.xml graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java
diffstat 4 files changed, 20 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/.checkstyle_checks.xml	Mon Jan 05 01:31:07 2015 +0100
+++ b/graal/com.oracle.graal.graph/.checkstyle_checks.xml	Mon Jan 05 01:31:07 2015 +0100
@@ -199,4 +199,9 @@
     <property name="onCommentFormat" value="CheckStyle: resume line length check"/>
     <property name="checkFormat" value="LineLength"/>
   </module>
+  <module name="SuppressionCommentFilter">
+    <property name="offCommentFormat" value="CheckStyle: start generated"/>
+    <property name="onCommentFormat" value="CheckStyle: stop generated"/>
+    <property name="checkFormat" value=".*Name|.*LineLength"/>
+  </module>
 </module>
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java	Mon Jan 05 01:31:07 2015 +0100
+++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java	Mon Jan 05 01:31:07 2015 +0100
@@ -26,6 +26,7 @@
 
 import com.oracle.truffle.api.*;
 import com.oracle.truffle.api.dsl.*;
+import com.oracle.truffle.api.dsl.internal.*;
 import com.oracle.truffle.api.dsl.test.ArrayTestFactory.TestNode1NodeGen;
 import com.oracle.truffle.api.frame.*;
 import com.oracle.truffle.api.nodes.*;
@@ -96,6 +97,7 @@
     }
 
     @TypeSystem({int.class, int[].class, double[].class, String[].class, Object[].class})
+    @DSLOptions(useNewLayout = true)
     public static class ArrayTypeSystem {
 
         @ImplicitCast
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
@@ -57,6 +57,7 @@
         if (comment != null) {
             writeLn(comment);
         }
+        writeLn("// CheckStyle: start generated");
     }
 
 }
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
@@ -131,7 +131,7 @@
             writeLn();
         }
 
-        writeModifiers(e.getModifiers());
+        writeModifiers(e.getModifiers(), true);
         if (e.getKind() == ElementKind.ENUM) {
             write("enum ");
         } else {
@@ -267,7 +267,7 @@
             }
         } else {
             Element enclosing = f.getEnclosingElement();
-            writeModifiers(f.getModifiers());
+            writeModifiers(f.getModifiers(), true);
 
             boolean varArgs = false;
             if (enclosing.getKind() == ElementKind.METHOD) {
@@ -476,7 +476,7 @@
             writeLn();
         }
 
-        writeModifiers(e.getModifiers());
+        writeModifiers(e.getModifiers(), !e.getEnclosingClass().getModifiers().contains(Modifier.FINAL));
 
         if (e.getReturnType() != null) {
             write(useImport(e, e.getReturnType()));
@@ -586,10 +586,15 @@
         // default implementation does nothing
     }
 
-    private void writeModifiers(Set<Modifier> modifiers) {
-        if (modifiers != null) {
-            for (Modifier modifier : modifiers) {
-                write(modifier.toString());
+    private void writeModifiers(Set<Modifier> modifiers, boolean includeFinal) {
+        if (modifiers != null && !modifiers.isEmpty()) {
+            Modifier[] modArray = modifiers.toArray(new Modifier[modifiers.size()]);
+            Arrays.sort(modArray);
+            for (Modifier mod : modArray) {
+                if (mod == Modifier.FINAL && !includeFinal) {
+                    continue;
+                }
+                write(mod.toString());
                 write(" ");
             }
         }