From 45815d97f7f69840f0b3f2b0e9cc19255cce7b68 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Wed, 18 Jul 2012 15:38:31 -0500 Subject: [PATCH] Specifically test for the ModelElement annotation on fields (not just any annotation will do) --- tool/src/org/antlr/v4/codegen/OutputModelWalker.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tool/src/org/antlr/v4/codegen/OutputModelWalker.java b/tool/src/org/antlr/v4/codegen/OutputModelWalker.java index 5b62f0b4e..58c887db5 100644 --- a/tool/src/org/antlr/v4/codegen/OutputModelWalker.java +++ b/tool/src/org/antlr/v4/codegen/OutputModelWalker.java @@ -30,6 +30,7 @@ package org.antlr.v4.codegen; import org.antlr.v4.Tool; +import org.antlr.v4.codegen.model.ModelElement; import org.antlr.v4.codegen.model.OutputModelObject; import org.antlr.v4.tool.ErrorType; import org.stringtemplate.v4.*; @@ -96,8 +97,11 @@ public class OutputModelWalker { // COMPUTE STs FOR EACH NESTED MODEL OBJECT MARKED WITH @ModelElement AND MAKE ST ATTRIBUTE Field fields[] = cl.getFields(); for (Field fi : fields) { - Annotation[] annotations = fi.getAnnotations(); - if ( annotations.length==0 ) continue; + ModelElement annotation = fi.getAnnotation(ModelElement.class); + if (annotation == null) { + continue; + } + String fieldName = fi.getName(); // Just don't set @ModelElement fields w/o formal arg in target ST if ( formalArgs.get(fieldName)==null ) continue;