From: David Engster Date: Mon, 18 Nov 2013 22:11:17 +0000 (+0100) Subject: C++: Deal with 'using' statements when calculating scope X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4ab930bc8617be1eca7492ec85471d37b6d4c9d5;p=emacs.git C++: Deal with 'using' statements when calculating scope * semantic/bovine/c.el (semantic-ctxt-scoped-types): Go through all tags around point and search them for using statements. Before, we skipped the last one thinking that it would have to be function, but it could also be a type. * semantic/scope.el (semantic-completable-tags-from-type): When creating the list of completable types, pull in types which are referenced through 'using' statements. * tests/cedet/semantic/test/manual/cedet/testusing.cpp: * tests/cedet/semantic/test/manual/cedet/testusing.hh: Add tests for the above. --- diff --git a/test/manual/cedet/cedet/semantic/tests/testusing.hh b/test/manual/cedet/cedet/semantic/tests/testusing.hh index 61b5d08e106..471891a88d4 100644 --- a/test/manual/cedet/cedet/semantic/tests/testusing.hh +++ b/test/manual/cedet/cedet/semantic/tests/testusing.hh @@ -123,6 +123,22 @@ namespace outer { } } +// Namespace which pulls in one of its own nested namespaces +namespace first { + class AAA1; + namespace second { + class AAA2; + } + // Elevate nested namespace into first one + using namespace second; +} + +namespace third { + using namespace first; + class AAA3; +} + + // Elevate the first struct into 'outer' // so that we can access it via 'outer::StructNested' namespace outer {