Skip to content
  • Douglas Gregor's avatar
    Eliminate QualifiedDeclRefExpr, which captured the notion of a · 4bd90e53
    Douglas Gregor authored
    qualified reference to a declaration that is not a non-static data
    member or non-static member function, e.g., 
    
      namespace N { int i; }
      int j = N::i;
    
    Instead, extend DeclRefExpr to optionally store the qualifier. Most
    clients won't see or care about the difference (since
    QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
    number of top-level expression types that clients need to cope with,
    brings the implementation of DeclRefExpr into line with MemberExpr,
    and simplifies and unifies our handling of declaration references.
    
    Extended DeclRefExpr to (optionally) store explicitly-specified
    template arguments. This occurs when naming a declaration via a
    template-id (which will be stored in a TemplateIdRefExpr) that,
    following template argument deduction and (possibly) overload
    resolution, is replaced with a DeclRefExpr that refers to a template
    specialization but maintains the template arguments as written.
    
    llvm-svn: 84962
    4bd90e53
Loading