Mercurial > hg > truffle
changeset 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 | b9cf6f3150ea |
children | cd0ae2f782c9 |
files | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeBaseFactory.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java |
diffstat | 3 files changed, 9 insertions(+), 11 deletions(-) [+] |
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>
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Fri Jan 09 16:04:37 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Fri Jan 09 16:33:08 2015 +0100 @@ -103,9 +103,6 @@ } new NodeFactoryFactory(context, node, second).createFactoryMethods(first); ElementUtils.setVisibility(first.getModifiers(), ElementUtils.getVisibility(node.getTemplateType().getModifiers())); - for (ExecutableElement constructor : ElementFilter.constructorsIn(first.getEnclosedElements())) { - ElementUtils.setVisibility(((CodeExecutableElement) constructor).getModifiers(), Modifier.PRIVATE); - } return first; }
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java Fri Jan 09 16:04:37 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java Fri Jan 09 16:33:08 2015 +0100 @@ -240,13 +240,10 @@ } private CodeExecutableElement createCreateMethod(ExecutableElement constructor) { - Modifier visibility = ElementUtils.getVisibility(constructor.getModifiers()); CodeExecutableElement method = CodeExecutableElement.clone(context.getEnvironment(), constructor); method.setSimpleName(CodeNames.of("create")); method.getModifiers().clear(); - if (visibility != null) { - method.getModifiers().add(visibility); - } + method.getModifiers().add(Modifier.PUBLIC); method.getModifiers().add(Modifier.STATIC); method.setReturnType(node.getNodeType());