antlr / stringtemplate4

StringTemplate 4
http://www.stringtemplate.org
Other
943 stars 229 forks source link

Interpreter.getAttribute scans attributes of parent scopes but ignores dictionaries #286

Open almondtools opened 3 years ago

almondtools commented 3 years ago

I found an unexpected behavior on resolving dictionaries and tracked it down to attribute resolution.

I found this code:

        // got to root scope and no definition, try dictionaries in group and up
        final ST self = scope.st;
        STGroup g = self.impl.nativeGroup;
        Object o = getDictionary(g, name);
        if ( o!=null ) return o;

        // not found, report unknown attr
        throw new STNoSuchAttributeException(name, scope);

According to the comment ("try dictionaries in group and up") dictionaries of parent scopes should have been resolved, but the code does not.

Now what is wrong? The comment or the code?

Actually I cannot reduce my code to a reproducing example, but I can try to provide a new example if the code is considered wrong.

parrt commented 3 years ago

Hmm...That does seem strange but unfortunately I'm not sure what the correct behavior is because it's been so long and I don't have time to investigate at the moment sorry!