[cfe-dev] Quick Questions: DeclRefExpr, TypedefDecl, TypedefType, and TemplateTypeParmDecl.
lvoufo at cs.indiana.edu
Tue Feb 8 09:12:17 PST 2011
1 - The documentation for DeclRefExpr says the following:
"A <http://clang.llvm.org/doxygen/classA.html> reference to a declared
variable, function, enum, etc."
Does this mean that DeclRefExprs also refer to types such as a
concept's associated type
(declared with the typename keyword, as a TemplateTypeParmDecl) ?
2 - How are TypedefTypes related to TypedefDecls, and possibly
TemplateTypeParmDecl as well?
3- I ran into this confusion when I was trying to modify the
transformations on calls to concept's associated
functions and types. I can't decide which one of these methods would
be the most appropriate or general
place for the change: TransformDeclRefExpr, or TransformDecl and
TransformType (and/or even
Basically, I'm trying to say: if the referred type or function (or
variable) we are trying to transform is
declared within a concept defn context, then match it to the
appropriate concept map, and change
the type or expression so that it now refers to the corresponding type
or function (or variable) as defined
within the map context...
This is part of my implementation for concept lookup. I can see it
working for associated functions, when
my changes are at the beginning of TransformDeclRef, but I'm not sure
if that would work well for types as well.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev