From 1d09e4c12c782a3488c1ff76eb0955f5fdd26093 Mon Sep 17 00:00:00 2001 From: David Engster Date: Mon, 18 Nov 2013 23:11:17 +0100 Subject: [PATCH] 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. --- .../cedet/cedet/semantic/tests/testusing.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) 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" ) +} -- 2.39.2