Skip to content
  • Douglas Gregor's avatar
    Improve name lookup for and template instantiation of declaration · f98d9b60
    Douglas Gregor authored
    references. There are several smallish fixes here:
    
      - Make sure we look through template parameter scope when
        determining whether we're parsing a nested class (or nested class
        *template*). This makes sure that we delay parsing the bodies of
        inline member functions until after we're out of the outermost
        class (template) scope.
      - Since the bodies of member functions are always parsed
        "out-of-line", even when they were declared in-line, teach
        unqualified name lookup to look into the (semantic) parents.
      - Use the new InstantiateDeclRef to handle the instantiation of a
        reference to a declaration (in DeclRefExpr), which drastically
        simplifies template instantiation for DeclRefExprs.
      - When we're instantiating a ParmVarDecl, it must be in the current
        instantiation scope, so only look there.
    
    Also, remove the #if 0's and FIXME's from the dynarray example, which
    now compiles and executes thanks to Anders and Eli.
    
    llvm-svn: 72481
    f98d9b60
Loading