[#626] introduction of formatting options triggered a longer standing bug about wonky timing on replacing Options with LombokOptions, causing javac to complain about not recognizing i.e. a Getter annotation when using it more than once in a file.

This commit is contained in:
Reinier Zwitserloot committed 2014-01-14 22:52:29 +01:00
1 parent 20ac40f201
commit ae4864ebc3
2 files changed
+11 -5

No files matched your search

+10 -5
View File
@@ -25,13 +25,14 @@ import java.util.HashSet;
import java.util.Set;
import lombok.delombok.FormatPreferences;
import lombok.delombok.LombokOptionsFactory;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.Options;
public abstract class LombokOptions extends Options {
private boolean deleteLombokAnnotations = true;
private boolean deleteLombokAnnotations = false;
private final Set<JCCompilationUnit> changed = new HashSet<JCCompilationUnit>();
private FormatPreferences formatPreferences = new FormatPreferences(null);
@@ -48,13 +49,13 @@ public abstract class LombokOptions extends Options {
}
public static void markChanged(Context context, JCCompilationUnit ast) {
Options options = context.get(Options.optionsKey);
if (options instanceof LombokOptions) ((LombokOptions) options).changed.add(ast);
LombokOptions options = LombokOptionsFactory.getDelombokOptions(context);
options.changed.add(ast);
}
public static boolean shouldDeleteLombokAnnotations(Context context) {
Options options = context.get(Options.optionsKey);
return (options instanceof LombokOptions) && ((LombokOptions) options).deleteLombokAnnotations;
LombokOptions options = LombokOptionsFactory.getDelombokOptions(context);
return options.deleteLombokAnnotations;
}
protected LombokOptions(Context context) {
@@ -62,4 +63,8 @@ public abstract class LombokOptions extends Options {
}
public abstract void putJavacOption(String optionName, String value);
public void deleteLombokAnnotations() {
this.deleteLombokAnnotations = true;
}
}
@@ -467,6 +467,7 @@ public class Delombok {
public boolean delombok() throws IOException {
LombokOptions options = LombokOptionsFactory.getDelombokOptions(context);
options.deleteLombokAnnotations();
options.putJavacOption("ENCODING", charset.name());
if (classpath != null) options.putJavacOption("CLASSPATH", classpath);
if (sourcepath != null) options.putJavacOption("SOURCEPATH", sourcepath);