]> granicus.if.org Git - clang/commit
Reimplement much of the way that we track nested classes in the
authorDouglas Gregor <dgregor@apple.com>
Wed, 27 May 2009 23:11:45 +0000 (23:11 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 27 May 2009 23:11:45 +0000 (23:11 +0000)
commit6569d68745c8213709740337d2be52b031384f58
treeb21a07fae6dd3ea152e433bcf3720d65285aa56e
parent26fa0edd63c0f34953ba22f519d0fa68ee572341
Reimplement much of the way that we track nested classes in the
parser. Rather than placing all of the delayed member function
declarations and inline definitions into a single bucket corresponding
to the top-level class, we instead mirror the nesting structure of the
nested classes and place the delayed member functions into their
appropriate place. Then, when we actually parse the delayed member
function declarations, set up the scope stack the same way as it was
when we originally saw the declaration, so that we can find, e.g.,
template parameters that are in scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72502 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Parse/Action.h
include/clang/Parse/Parser.h
lib/Parse/ParseCXXInlineMethods.cpp
lib/Parse/ParseDeclCXX.cpp
lib/Parse/Parser.cpp
lib/Sema/Sema.h
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaTemplateInstantiateStmt.cpp
test/SemaTemplate/instantiate-declref.cpp