aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2011-06-20Added ability for annotation handlers to be invoked in the diet parse phase ↵Reinier Zwitserloot
even if its a post-diet handler.
2011-06-20Javac/EclipseAnnotationHandler are now abstract classes instead of ↵Reinier Zwitserloot
interfaces; there were too many 'option' methods (methods where you return either true or false), so we really needed the ability to pick a default.
2011-06-20SpiLoadUtil's findAnnotationClass didn't work with extends Foo<T>, only with ↵Reinier Zwitserloot
implements Foo<T>. Fixed this.
2011-06-20as lombok never runs as AP anymore in ecj, the 'show some more info for bug ↵Reinier Zwitserloot
164' escape to not do that in ecj was no longer relevant.
2011-06-13Fixed PrintAST, and separately SneakyThrows/Synchronized which failed ↵Reinier Zwitserloot
because the 'isFullParse' boolean was erronously set on a full rebuild, forced by HandleDelegate. HandleDelegate has also been updated to not do so much work if there's no @Delegate in a source file.
2011-06-07Updated to ASM 4.0RC1 so that we can deal with java7,Reinier Zwitserloot
especially class files built with java7. Fixes issue #188
2011-06-06Issue 188: add class file pool constants for methodhandles and invokedynamic ↵Roel Spilker
(java7)
2011-06-02Eclipse handlers can now opt out of being run in diet-parse mode. Fixes ↵Reinier Zwitserloot
Synchronized and SneakyThrows
2011-06-02Trivial fixes.Reinier Zwitserloot
2011-05-30Whoops, ecj was broken due to half work on a previous commit to take ecj ↵Reinier Zwitserloot
annotation processing offline.
2011-05-30The EclipseAST was incomplete when it came to ConstructorCalls. This lead to ↵peichhorn
a severe error in PatchDelegate(issue #211) where classes that didn't use lombok at all could not be build due to a NullPointerException.
2011-05-30Whoops, we broke @Delegate with the last update. Now the CAS check on ↵Reinier Zwitserloot
handled is only done if we are -actually- going to call a handler.
2011-05-30tracking if an annotation has been handled or not is now no longer doneReinier Zwitserloot
via the LombokAST object. Instead its tracked more directly in an attempt to avoid having to write all handlers as idempotent, and just in case issue #164 is a race condition (the handled-or-not is a synchronized CAS check). This does break API for other plugins, but the fix is trivial: Just make your 'handle' method return void. That 'we won't call you again' business in the decks never quite worked right anyway. Also, you might want to call Javac.(recursive)setHandledBy when you generate nodes, now.
2011-05-30HandleDelegate did not remove the annotation @Delegate from javac's AST, so ↵peichhorn
HandleDelegate was called multiple times for the same field resulting in an error saying the delegate method was already defined. Also added a test for @Delegate that uncovered this issue.
2011-05-30Removed the ability of lombok to run as ecj annotation processor, becauseReinier Zwitserloot
it won't actually work right; method-level generics would break. The new way is to use -javaagent:lombok.jar=ECJ in addition to -cp lombok.jar
2011-05-17Added a layer of indirection between the patched calls for delegate to guard ↵grootjans
against situations in which lombok can't possibly work, since there is not enough of eclipse on the classpath. Major example of this is when we are called through jsps in the eclipse help. Also added an extra check before the patchval is performed by checking if previous patch calls failed in TransformEclipseAST. This fixes Issue #207.
2011-05-16Fixes issue 205: NullPointerException in javac's Check$Validator with valPhilipp Eichhorn
2011-05-13Updated copyright on javac HandleDelegateReinier Zwitserloot
2011-05-13@Delegate in javac on the new types/excludes model without autoexclusion now ↵Reinier Zwitserloot
works.
2011-05-03Changed how @Delegate works in ecj - methods already present do NOTReinier Zwitserloot
preclude them from being generated, which means you get duplicate method errors. excludes=Types has been added to counteract this. Once we figure out how to resolve method sigs out of order we can go back to the original plan.
2011-05-03Merge branch 'master' of git@github.com:rzwitserloot/lombokRoel Spilker
2011-05-03Eclipse 3.7 updated some internal AST classes, causing:Roel Spilker
NoSuchMethodError: CastExpression.<init> This commit fixes this (now lombok works both <3.7 and 3.7). fixes issue #206
2011-04-01Now logging a warning with diagnostic info so that the next timeReinier Zwitserloot
a user runs into issue #164, we can get a more useful stracktrace from them.
2011-04-01Added ability to log warnings in eclipse error log.Reinier Zwitserloot
2011-03-18Rewritten @Cleanup's new null analysis prevention to not useReinier Zwitserloot
Lombok.preventNullAnalysis but go with Collections.singletonList(expr).get(0) instead; while this does create a pointless object, it doesn't cause a clash when eclipse has lombok 0.10 installed but the project uses 0.9, which doesn't have preventNullAnalysis. Eventually, once 0.9 is long forgotten, this can be reverted.
2011-02-21Issue 194: Javac gives and error when lombok.jar is on the classpathRoel Spilker
2011-02-15Should be a fix for issue #177: NoClassDefFoundErrors for ↵Roel Spilker
JavacProcessingEnvironment would occur when using the m2eclipse plugin, for example when removing an entry from the build path. The actual change is small but this took quite some searching. m2eclipse uses plexus, and plexus uses a custom classloader, which means lombok can't find the JavacProcessingEnvironment loaded by that classloader. We fix it here by adding lombok to that custom classloader. Perhaps more die-hard m2eclipse users find a problem with this approach, but assuming these plexus compile runs are stand-alone, this should work great. fixed by Roel and Reinier.
2011-02-14Added annotation for handleconstructor: issue 172grootjans
2011-02-07Presence of isFoo(), hasFoo(), and getFoo(), as well as properties named ↵Reinier Zwitserloot
'isFoo', 'hasFoo', or 'getFoo' would trigger specialized handling for @Getter/@Setter. However, this special handling broke the bean spec, and has been simplified: Only fields named 'isFoo', and only if that field's type is 'boolean', results in both 'isFoo' and 'foo' being considered as possible property names for this property, with 'foo' preferred, so that @Getter boolean isFoo will generate setFoo and isFoo methods, not setIsFoo and isIsFoo. Fixes issue #148
2011-01-31Changed internal call for resolution to method support in javac7grootjans
2011-01-24NPE fixReinier Zwitserloot
2011-01-24In javac, @XArgsConstructor on enums was not forcing the generated ↵Philipp Eichhorn
constructor to be private (as all enum constructors have to be). Fixes issue #186
2011-01-10In javac7 the BaseFileObject and JavacFileManager have been moved fromRoel Spilker
com/sun/tools/javac/util to com/sun/tools/javac/file
2011-01-02Added debug feature (disabled in this commit) to print types of nodes ↵Reinier Zwitserloot
printed by EclipseASTVisitor.Printer
2010-12-31Using annotation processors with lombok sometimes results in a 'Not ↵Reinier Zwitserloot
Supported: DummyRound0' error. This fixes it. Fixes issue #176
2010-12-31Starting eclipse with an open file containing an enum with @Getter on it ↵Reinier Zwitserloot
would cause 1 error log entry to show up. No other effects other than that, but thats ugly and so thats been fixed.
2010-12-31Resolve-phase transformers in eclipse need to force a rebuild of the ↵Reinier Zwitserloot
EclipseAST object. Fixes issue #171
2010-12-31Presence of i.e. getABC() stops lombok from generating getAbc, but lombok ↵Reinier Zwitserloot
will still attempt to call this nonexistent getAbc instead of getABC. Fixed. Fixes issue #173.
2010-12-31calls to canEqual and equals are now fored to go to the version that has 1 ↵Reinier Zwitserloot
Object as parameter (creating new equals methods by giving them non-object parameterized is a _really_ bad idea, but if someone did do that, obviously lombok shouldn't call those!) Fixes #165.
2010-12-28@ToString, @Getter, and @XArgsConstructor now work on, and are legal on, ↵Reinier Zwitserloot
enums. Docs have been updated. Behaviour of @XArgsConstructor when its placement makes no sense (i.e. when annotating an interface with them) is no longer 'throw weird errors', but has been brought in line with the others: A nice error message is generated. Fixes issue #175
2010-12-24Added detection of type var naming conflicts to eclipse's @Delegate support.Reinier Zwitserloot
2010-12-22val x = foo; is now desugared into "@val type x = foo;" (the @val is added), ↵Reinier Zwitserloot
for javac. Of course, this is NOT done in delombok mode.
2010-12-22After 2 weeks of debugging, finally figured out val in eclipse using ↵Reinier Zwitserloot
lombok.val without breaking 'fix imports'. Eesh. Using "lombok.val" only half-works; auto-complete on the variable doesn't work, but it compiles fine and no errors are reported.
2010-12-18Moved all the Compile time constants from the Javac handlers and supporting ↵grootjans
classes
2010-12-01@Delegate in eclipse now uses more of the standard infrastructure to inject ↵Reinier Zwitserloot
methods.
2010-11-29lombok.val import now gets removed. Only adding lombok.val flags the ↵Roel Spilker
compilation unit as changed.
2010-11-29some more work on why delombok isn't tracking changes due to val alone.Reinier Zwitserloot
2010-11-29Make compilable under JDK 7's javac (thus also removing an error mark in ↵Jesse Glick
NetBeans' editor). src/core/lombok/core/LombokNode.java:260: gatherAndRemoveChildren(Map<N,L>) has private access in LombokNode for (L child : children) child.gatherAndRemoveChildren(map); ^ where N,L,A are type-variables: N extends Object declared in class LombokNode L extends LombokNode<A,L,N> declared in class LombokNode A extends AST<A,L,N> declared in class LombokNode
2010-11-29'val' now only works if its a reference to lombok.val on javac.Reinier Zwitserloot
2010-11-29Added 'val' as a type which the 'val' fake keyword must resolve to before ↵Reinier Zwitserloot
val works, as a gesture to make val less 'magical'. It even works, in eclipse. Next up: javac.