/** * Records <strong>either</strong> a literal argument to the annotation class instantiation: * * <pre> * ... => AnnotationClass("", 1, true, 1.0, 'x') * </pre> * * <strong>Or</strong> a literal default argument in an annotation constructor: * * <pre> * AnnotationClass ctor(String s="", Integer i=1, * Boolean b=true, Float f=1.0, * Character c='x') => ... * </pre> * * Literal is in the Javac sense. */ private LiteralAnnotationTerm appendLiteralArgument(Node bme, LiteralAnnotationTerm argument) { if (spread) { bme.addError("compiler bug: spread static arguments not supported"); } if (this.elements != null) { this.elements.addElement(argument); } else { this.term = argument; } return argument; }
private void errorDefaultedParameter(Node d) { d.addError( "compiler bug: only literals, true, false, and annotation class instantiations are permitted as annotation parameter defaults"); }