Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
5bee5dea
Commit
5bee5dea
authored
Oct 13, 2009
by
Roberto Raggi
Browse files
Check the scope of class and fwd-class declarations
parent
b07c1be5
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/plugins/cpptools/cppfindreferences.cpp
View file @
5bee5dea
...
...
@@ -166,6 +166,26 @@ protected:
return
false
;
}
bool
checkScope
(
Symbol
*
symbol
,
Symbol
*
otherSymbol
)
const
{
if
(
!
(
symbol
&&
otherSymbol
))
return
false
;
else
if
(
symbol
->
scope
()
==
otherSymbol
->
scope
())
return
true
;
else
if
(
symbol
->
name
()
&&
otherSymbol
->
name
())
{
if
(
!
symbol
->
name
()
->
isEqualTo
(
otherSymbol
->
name
()))
return
false
;
}
else
if
(
symbol
->
name
()
!=
otherSymbol
->
name
())
{
return
false
;
}
return
checkScope
(
symbol
->
enclosingSymbol
(),
otherSymbol
->
enclosingSymbol
());
}
bool
isDeclSymbol
(
Symbol
*
symbol
)
const
{
if
(
!
symbol
)
...
...
@@ -180,11 +200,11 @@ protected:
}
else
if
(
symbol
->
isForwardClassDeclaration
()
&&
(
_declSymbol
->
isClass
()
||
_declSymbol
->
isForwardClassDeclaration
()))
{
return
true
;
return
checkScope
(
symbol
,
_declSymbol
)
;
}
else
if
(
_declSymbol
->
isForwardClassDeclaration
()
&&
(
symbol
->
isClass
()
||
symbol
->
isForwardClassDeclaration
()))
{
return
true
;
return
checkScope
(
symbol
,
_declSymbol
)
;
}
return
false
;
...
...
src/shared/cplusplus/Symbol.cpp
View file @
5bee5dea
...
...
@@ -314,6 +314,14 @@ void Symbol::setScope(Scope *scope)
_scope
=
scope
;
}
Symbol
*
Symbol
::
enclosingSymbol
()
const
{
if
(
!
_scope
)
return
0
;
return
_scope
->
owner
();
}
Scope
*
Symbol
::
enclosingNamespaceScope
()
const
{
if
(
!
_scope
)
...
...
src/shared/cplusplus/Symbol.h
View file @
5bee5dea
...
...
@@ -281,6 +281,8 @@ public:
bool
isGenerated
()
const
;
Symbol
*
enclosingSymbol
()
const
;
/// Returns the eclosing namespace scope.
Scope
*
enclosingNamespaceScope
()
const
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment