diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeBaseFactory.java @ 18807:4ce856e65728

Truffle-DSL: fix visiblity of create methods.
author Christian Humer <christian.humer@gmail.com>
date Fri, 09 Jan 2015 16:33:08 +0100
parents c0fb70634640
children d399c7ce78b3
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeBaseFactory.java	Fri Jan 09 16:04:37 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeBaseFactory.java	Fri Jan 09 16:33:08 2015 +0100
@@ -138,8 +138,9 @@
     }
 
     public static List<ExecutableElement> findUserConstructors(TypeMirror nodeType) {
+        TypeElement type = ElementUtils.fromTypeMirror(nodeType);
         List<ExecutableElement> constructors = new ArrayList<>();
-        for (ExecutableElement constructor : ElementFilter.constructorsIn(ElementUtils.fromTypeMirror(nodeType).getEnclosedElements())) {
+        for (ExecutableElement constructor : ElementFilter.constructorsIn(type.getEnclosedElements())) {
             if (constructor.getModifiers().contains(PRIVATE)) {
                 continue;
             }
@@ -150,7 +151,9 @@
         }
 
         if (constructors.isEmpty()) {
-            constructors.add(new CodeExecutableElement(null, ElementUtils.getSimpleName(nodeType)));
+            CodeExecutableElement executable = new CodeExecutableElement(null, ElementUtils.getSimpleName(nodeType));
+            ElementUtils.setVisibility(executable.getModifiers(), ElementUtils.getVisibility(type.getModifiers()));
+            constructors.add(executable);
         }
 
         return constructors;
@@ -439,6 +442,7 @@
 
     private CodeExecutableElement createUserConstructor(CodeTypeElement type, ExecutableElement superConstructor) {
         CodeExecutableElement method = new CodeExecutableElement(null, type.getSimpleName().toString());
+        ElementUtils.setVisibility(method.getModifiers(), ElementUtils.getVisibility(superConstructor.getModifiers()));
         CodeTreeBuilder builder = method.createBuilder();
 
         if (superConstructor != null) {
@@ -1838,12 +1842,12 @@
     /**
      * <pre>
      * variant1 $condition != null
-     * 
+     *
      * $type $name = defaultValue($type);
      * if ($condition) {
      *     $name = $value;
      * }
-     * 
+     *
      * variant2 $condition != null
      * $type $name = $value;
      * </pre>