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=1d09e4c12c782a3488c1ff76eb0955f5fdd26093;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.cpp b/test/manual/cedet/cedet/semantic/tests/testusing.cpp index 4fa26872ab5..f7135d1a7e9 100644 --- a/test/manual/cedet/cedet/semantic/tests/testusing.cpp +++ b/test/manual/cedet/cedet/semantic/tests/testusing.cpp @@ -218,3 +218,28 @@ void acc_using2() sn.//-19- ; //#19# ( "one" "two" ) } + +// Check if scope gets correctly generated, i.e., without us providing any +// hints in the form of an existing type + +void check_scope() +{ + using namespace first; + AAA//-20- + ; //#20# ( "AAA1" "AAA2" ) +} + +void check_scope2() +{ + using namespace third; + AAA//-21- + ; //#21# ( "AAA1" "AAA2" "AAA3" ) +} + +// Make sure this also works not only in functions + +namespace check_scope3 { + using namespace first; + AAA//-22- + ; //#22# ( "AAA1" "AAA2" ) +}