mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-14 02:16:18 +00:00
Fixes issue #56 - annotations with shorthand parameters on methods in method-local classes failed to parse correctly due to a (rare) boneheaded design in the javac tree.
Also had a bunch of code in doing raw introspection of the Annotation ASTNode. It wasn't doing anything other than causing bugs and cluttering the code. Removed it.
This commit is contained in:
1 parent
2d3b98e847
commit
fdcdcc89d8
2 files changed
+4
-15
No files matched your search
@@ -33,6 +33,8 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Represents a single annotation in a source file and can be used to query the parameters present on it.
|
||||
*
|
||||
* @param A The annotation that this class represents, such as {@code lombok.Getter}
|
||||
*/
|
||||
public class AnnotationValues<A extends Annotation> {
|
||||
private final Class<A> type;
|
||||
@@ -295,9 +297,9 @@ public class AnnotationValues<A extends Annotation> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw expressions used for the provided annotationMethodName.
|
||||
* Returns the raw expressions used for the provided {@code annotationMethodName}.
|
||||
*
|
||||
* You should use this method for annotation methods that return Class objects. Remember that
|
||||
* You should use this method for annotation methods that return {@code Class} objects. Remember that
|
||||
* class literals end in ".class" which you probably want to strip off.
|
||||
*/
|
||||
public List<String> getRawExpressions(String annotationMethodName) {
|
||||
|
||||
@@ -36,11 +36,9 @@ import org.mangosdk.spi.ProviderFor;
|
||||
import com.sun.tools.javac.code.Flags;
|
||||
import com.sun.tools.javac.tree.TreeMaker;
|
||||
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
|
||||
import com.sun.tools.javac.tree.JCTree.JCAssign;
|
||||
import com.sun.tools.javac.tree.JCTree.JCBlock;
|
||||
import com.sun.tools.javac.tree.JCTree.JCExpression;
|
||||
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
|
||||
import com.sun.tools.javac.tree.JCTree.JCNewArray;
|
||||
import com.sun.tools.javac.tree.JCTree.JCStatement;
|
||||
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
|
||||
import com.sun.tools.javac.util.List;
|
||||
@@ -56,17 +54,6 @@ public class HandleSneakyThrows implements JavacAnnotationHandler<SneakyThrows>
|
||||
List<JCExpression> memberValuePairs = ast.getArguments();
|
||||
if (memberValuePairs == null || memberValuePairs.size() == 0) return false;
|
||||
|
||||
JCExpression arrayOrSingle = ((JCAssign)memberValuePairs.get(0)).rhs;
|
||||
final List<JCExpression> exceptionNameNodes;
|
||||
if (arrayOrSingle instanceof JCNewArray) {
|
||||
exceptionNameNodes = ((JCNewArray)arrayOrSingle).elems;
|
||||
} else exceptionNameNodes = List.of(arrayOrSingle);
|
||||
|
||||
if (exceptionNames.size() != exceptionNameNodes.size()) {
|
||||
annotationNode.addError(
|
||||
"LOMBOK BUG: The number of exception classes in the annotation isn't the same pre- and post- guessing.");
|
||||
}
|
||||
|
||||
java.util.List<String> exceptions = new ArrayList<String>();
|
||||
for (String exception : exceptionNames) {
|
||||
if (exception.endsWith(".class")) exception = exception.substring(0, exception.length() - 6);
|
||||
|
||||
Reference in new issue
Block a user