[PATCH] Rename DynTypedNode to ASTNode

Sean Silva chisophugis at gmail.com
Tue May 20 11:00:18 PDT 2014


On Tue, May 20, 2014 at 11:50 AM, Alp Toker <alp at nuanti.com> wrote:

>
> On 20/05/2014 20:42, Sean Silva wrote:
>
>>
>>
>>
>> On Tue, May 20, 2014 at 11:37 AM, Alp Toker <alp at nuanti.com <mailto:
>> alp at nuanti.com>> wrote:
>>
>>
>>     On 20/05/2014 20:34, Manuel Klimek wrote:
>>
>>         On Tue, May 20, 2014 at 7:19 PM, Sean Silva
>>         <chisophugis at gmail.com <mailto:chisophugis at gmail.com>
>>         <mailto:chisophugis at gmail.com <mailto:chisophugis at gmail.com>>>
>>
>>         wrote:
>>
>>             Manuel, do you remember why this name was chosen? I seem
>>         to recall
>>             thinking that the name was well-chosen.
>>
>>
>>         It's a DynTypedNode, because the type information is kept /
>>         available dynamically. ASTNode would suggest that there is a
>>         common interface for AST nodes, which there is not.
>>
>>
>>     Well, QualType is a wrapper around Type structures that works
>>     similarly and we don't make the distinction there.
>>
>>
>>         What doesn't work for me is saying "DynTypedNode is an AST
>>         node". This feels wrong. DynTypedNode is more like a "smart
>>         reference".
>>
>>
>>     How about ASTNodeRef? I don't have a strong feeling about ASTNode
>>     / ASTNodeRef or something along those lines, but DynTypedNode
>>     specifically doesn't feel right.
>>
>>     The current name doesn't mean much outside ASTMatchers lingo
>>     whereas the functionality is fairly general and could be useful
>>     elsewhere.
>>
>>
>> There was some speculation about extending use of DynTypedNode outside
>> the ASTMatchers library http://reviews.llvm.org/D33?id=85#inline-386; is
>> there something in particular that you have in mind that you are trying to
>> work towards?
>>
>
> Yes, it became apparent during the RecursiveASTVisitor /
> DataRecursiveASTVisitor that we have two data recursion techniques and this
> showed up as a possible way forward while investigating whether it's
> feasible to unify them. That kind of unification would be far off but the
> associated cleanup makes sense to make this class more discoverable outside
> of ASTMatchers.
>
> DynTypedNode, along with the parent map in ASTContext is fairly useful
> with the caveat that the code reads rather silly with the name
> "DynTypedNode" where what you have and what you want is an AST node
> reference.
>

Makes sense; I agree that DynTypedNode doesn't work too well in that
context.

I'm still not a fan of anything that would suggest that there is a unified
AST hierarchy (IMO even ASTNodeRef suggests that there is some sort of
underlying unified "ASTNode" being "Ref"erenced). Maybe ASTVariant?

-- Sean Silva


>
> Alp.
>
>
>
>> -- Sean Silva
>>
>>
>>     Alp.
>>
>>
>>
>>
>>         Cheers,
>>         /Manuel
>>
>>
>>             -- Sean Silva
>>
>>
>>             On Sun, May 18, 2014 at 11:18 PM, Alp Toker
>>         <alp at nuanti.com <mailto:alp at nuanti.com>
>>             <mailto:alp at nuanti.com <mailto:alp at nuanti.com>>> wrote:
>>
>>                 This is always referred to as an AST node in
>>         documentation. By
>>                 wrapping Decls, Stmts and QualTypes it provides a
>>         generalised
>>                 way to reference AST nodes. And despite the name,
>>         DynTypedNode
>>                 doesn't have anything to do with dynamic types in the AST.
>>
>>                 The attached patch renames the class and implementation to
>>                 ASTNode.
>>
>>                 (Indeed the namespace "ast_type_traits" is equally
>>         confusing.
>>                 Presumably both are cases where implementation details
>>         have
>>                 leaked into the naming scheme?)
>>
>>                 Alp.
>>
>>                 -- http://www.nuanti.com
>>                 the browser experts
>>
>>
>>                 _______________________________________________
>>                 cfe-commits mailing list
>>         cfe-commits at cs.uiuc.edu <mailto:cfe-commits at cs.uiuc.edu>
>>         <mailto:cfe-commits at cs.uiuc.edu <mailto:cfe-commits at cs.uiuc.edu>>
>>
>>         http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>>
>>
>>     --     http://www.nuanti.com
>>     the browser experts
>>
>>
>>
> --
> http://www.nuanti.com
> the browser experts
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140520/cc49c67f/attachment.html>


More information about the cfe-commits mailing list