Mercurial > hg > truffle
diff graal/com.oracle.graal.options.processor/src/com/oracle/graal/options/processor/OptionProcessor.java @ 21519:cecb4e39521c
Use files in lib/graal/options to define Graal options (-G:...) instead of generating code for them
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Wed, 27 May 2015 17:40:26 +0200 |
parents | 4cc6793cda69 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.graal.options.processor/src/com/oracle/graal/options/processor/OptionProcessor.java Mon May 18 18:30:43 2015 +0200 +++ b/graal/com.oracle.graal.options.processor/src/com/oracle/graal/options/processor/OptionProcessor.java Wed May 27 17:40:26 2015 +0200 @@ -229,6 +229,7 @@ String filename = "META-INF/options/" + pkg + "." + relativeName; FileObject file = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", filename, originatingElements); PrintWriter writer = new PrintWriter(new OutputStreamWriter(file.openOutputStream(), "UTF-8")); + Types types = processingEnv.getTypeUtils(); for (OptionInfo option : info.options) { String help = option.help; if (help.indexOf('\t') >= 0 || help.indexOf('\r') >= 0 || help.indexOf('\n') >= 0) { @@ -237,13 +238,20 @@ } try { char optionTypeToChar = optionTypeToChar(option); - writer.printf("%s\t%s\t%s%n", option.name, optionTypeToChar, help); + String fqDeclaringClass = className(types.erasure(option.field.getEnclosingElement().asType())); + String fqFieldType = className(types.erasure(option.field.asType())); + writer.printf("%s\t%s\t%s\t%s\t%s%n", option.name, optionTypeToChar, help, fqDeclaringClass, fqFieldType); } catch (IllegalArgumentException iae) { } } writer.close(); } + private String className(TypeMirror t) { + DeclaredType dt = (DeclaredType) t; + return processingEnv.getElementUtils().getBinaryName((TypeElement) dt.asElement()).toString(); + } + private char optionTypeToChar(OptionInfo option) { switch (option.type) { case "Boolean":