aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse/Eclipse.java
AgeCommit message (Collapse)Author
2009-07-14Fixed a problem where @Data with a static constructor and generics params on ↵Reinier Zwitserloot
the class would generate errors regarding IllegalArgumentException in setSourcePosition in ASTNode.
2009-07-08Renamed all true names of 'eclipse' to 'Eclipse' (but not the eclipse ↵Reinier Zwitserloot
package, of course), and fixed a showstopper bug in the installer that would add -javaagent:lombok.jar to eclipse.ini, which is wrong of course; it needs to be lombok.eclipse.agent.jar.
2009-07-06Last massive documentation dump. All basic javadoc is now done, though ↵Reinier Zwitserloot
especially the docs on the lombok annotations in the lombok package need far more massaging. Also added a feature to HandleSynchronized to not auto-generate the locker fields if a specific name is provided (because, imagine you typoed those. You'd never find it!)
2009-06-27[BUGFIX] Pretty major bug - due to a typo, ALL values for annotation methods ↵Reinier Zwitserloot
were set to the value of the last annotation method. e.g in: @Foo(bar=10), ALL methods in the Foo annotation were presumed to be listed, and set to 10. This was obviously causing problems. Fixed it.
2009-06-23Fixed some bugs in copyType(), and now the static constructor is generated ↵Reinier Zwitserloot
without any raw generics warnings - it is effectively done.
2009-06-23Figured out that our previous act of just assigning TypeReference objects ↵Reinier Zwitserloot
directly to other nodes (e.g. from a FieldDeclaration's type to a method argument) is NOT a good idea, as this screws up when the TypeReference object represents a generic type (like 'T') - each instance of a generic type has a different resolution, but 1 TypeReference object can only hold 1 resolution. Thus, a copyType() method has been written, and the Handle* classes have been updated to use it. Also, generateEquals() is half-finished in HandleData.
2009-06-23This is a 3-day bughunt that ended up being something extremely simple:Reinier Zwitserloot
** DO NOT REUSE TYPEREFERENCE OBJECTS ** because that makes the binding process go pearshaped - after hte first run, that TypeReference object's binding parameter is set, and as its set, the resolver won't bother re-resolving it. However, each parse run starts with new scope objects, and any 2 bindings created by different scopes aren't equal to each other. urrrrrrgh! Fortunately, a lot of code that 'fixed' methods by adding bindings and scope have all been removed, as the parser patch point is well before these bindings are created. Thus: ** NEVER CREATE YOUR OWN BINDINGS AND SCOPE OBJECTS ** because if it comes down to that, you're doing it entirely wrong. That's eclipse's job. We're patching where we are so you don't have to do this.
2009-06-21Due to a java bug, constants in enums don't work, so instead the default ↵Reinier Zwitserloot
access level for @Getter and @Setter have now just been hardcoded in GetterHandler and SetterHandler. Added ability to look up the Node object for any given AST object on Node itself, as you don't usually have the AST object. Added toString() method generating to @Data, and this required some fancy footwork in finding if we've already generated methods, and editing a generated method to fill in binding and type resolutions. HandleGetter and HandleSetter have been updated to use these features. Exceptions caused by lombok handlers show up in the eclipse error log, but now, if they are related to a CompilationUnit, also as a problem (error) on the CUD - those error log entries are easy to miss! Our ASTs can now be appended to. When you generate a new AST node, you should add it to the AST, obviously. Getter/Setter have been updated to use this.
2009-06-19Added initial support for the @Data annotation. Currently produces getters ↵Reinier Zwitserloot
and setters only, not yet a constructor, toString, hashCode, or equals. HandleGetter and HandleSetter have been updated to handle static (theoretic; you can't put annotations on static fields normally). You can now make AnnotationValue objects using just an annotationNode and a target type, as well as check if a given annotationNode is likely to represent a target annotation type. This is in Javac and Eclipse classes. HandleGetter and HandleSetter can now be asked to make a getter/setter, and will grab access level off of a Getter/Setter annotation, if present.
2009-06-17Massive refactors. This list isn't complete, but should give you an idea:Reinier Zwitserloot
A) many things in lombok.eclipse moved to lombok.core to enable reuse with lombok.javac. B) lombok.javac works now similarly to eclipse's model: We first make big ASTs that are bidirectionally traversable, then we walk through that for annotations. C) Instead of getting an annotation instance, you now get an object that is more flexible and can e.g. give you class values in an enum as a string instead of a Class object, which may fail if that class isn't on the classpath of lombok. D) sources to the internal sun classes for javac added to /contrib.
2009-06-14Added support to generate errors, both on specific nodes in an AST ↵Reinier Zwitserloot
(generified code in HandlerLibrary for unintelligible annotation param values), and more severe general errors for eclipse's error log. Also unrolled the foreach loop on ServiceLoader, because any given .next() call can throw a ServiceLoaderError, which we now handle somewhat more nicely.