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
c7b023c0
Commit
c7b023c0
authored
Dec 30, 2008
by
Roberto Raggi
Browse files
Renamed SymbolsForDotAccess to ResolveClass.
parent
7c3d1a01
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/libs/cplusplus/ResolveExpression.cpp
View file @
c7b023c0
...
...
@@ -427,7 +427,7 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
bool
ResolveExpression
::
visit
(
QualifiedNameAST
*
ast
)
{
SymbolsForDotAcce
ss
symbolsForDotAcces
;
ResolveCla
ss
symbolsForDotAcces
;
Scope
dummy
;
Name
*
name
=
sem
.
check
(
ast
,
&
dummy
);
...
...
@@ -537,7 +537,7 @@ bool ResolveExpression::visit(ArrayAccessAST *ast)
_results
.
clear
();
const
QList
<
Result
>
indexResults
=
operator
()(
ast
->
expression
);
SymbolsForDotAcce
ss
symbolsForDotAcccess
;
ResolveCla
ss
symbolsForDotAcccess
;
foreach
(
Result
p
,
baseResults
)
{
FullySpecifiedType
ty
=
p
.
first
;
...
...
@@ -595,7 +595,7 @@ ResolveExpression::resolveMemberExpression(const QList<Result> &baseResults,
unsigned
accessOp
,
Name
*
memberName
)
const
{
SymbolsForDotAccess
symbolsForDotAcce
ss
;
ResolveClass
resolveCla
ss
;
QList
<
Result
>
results
;
if
(
accessOp
==
T_ARROW
)
{
...
...
@@ -607,7 +607,7 @@ ResolveExpression::resolveMemberExpression(const QList<Result> &baseResults,
if
(
NamedType
*
namedTy
=
ty
->
asNamedType
())
{
const
QList
<
Symbol
*>
classObjectCandidates
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
_context
);
resolveCla
ss
(
namedTy
,
p
,
_context
);
foreach
(
Symbol
*
classObject
,
classObjectCandidates
)
{
const
QList
<
Result
>
overloads
=
resolveArrowOperator
(
p
,
namedTy
,
...
...
@@ -667,10 +667,10 @@ ResolveExpression::resolveMember(const Result &p,
Name
*
memberName
,
NamedType
*
namedTy
)
const
{
SymbolsForDotAccess
symbolsForDotAcce
ss
;
ResolveClass
resolveCla
ss
;
const
QList
<
Symbol
*>
classObjectCandidates
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
_context
);
resolveCla
ss
(
namedTy
,
p
,
_context
);
QList
<
Result
>
results
;
foreach
(
Symbol
*
classObject
,
classObjectCandidates
)
{
...
...
@@ -799,29 +799,29 @@ bool ResolveExpression::visit(PostIncrDecrAST *)
}
////////////////////////////////////////////////////////////////////////////////
SymbolsForDotAccess
::
SymbolsForDotAcce
ss
()
ResolveClass
::
ResolveCla
ss
()
{
}
QList
<
Symbol
*>
SymbolsForDotAcce
ss
::
operator
()(
NamedType
*
namedTy
,
QList
<
Symbol
*>
ResolveCla
ss
::
operator
()(
NamedType
*
namedTy
,
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
)
{
const
QList
<
ResolveExpression
::
Result
>
previousBlackList
=
_blackList
;
const
QList
<
Symbol
*>
symbols
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
context
);
const
QList
<
Symbol
*>
symbols
=
resolveCla
ss
(
namedTy
,
p
,
context
);
_blackList
=
previousBlackList
;
return
symbols
;
}
QList
<
Symbol
*>
SymbolsForDotAcce
ss
::
operator
()(
ResolveExpression
::
Result
p
,
QList
<
Symbol
*>
ResolveCla
ss
::
operator
()(
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
)
{
const
QList
<
ResolveExpression
::
Result
>
previousBlackList
=
_blackList
;
const
QList
<
Symbol
*>
symbols
=
symbolsForDotAcce
ss
(
p
,
context
);
const
QList
<
Symbol
*>
symbols
=
resolveCla
ss
(
p
,
context
);
_blackList
=
previousBlackList
;
return
symbols
;
}
QList
<
Symbol
*>
SymbolsForDotAccess
::
symbolsForDotAcce
ss
(
NamedType
*
namedTy
,
QList
<
Symbol
*>
ResolveClass
::
resolveCla
ss
(
NamedType
*
namedTy
,
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
)
{
...
...
@@ -852,7 +852,7 @@ QList<Symbol *> SymbolsForDotAccess::symbolsForDotAccess(NamedType *namedTy,
// Boh b;
// b.
const
ResolveExpression
::
Result
r
(
decl
->
type
(),
decl
);
resolvedSymbols
+=
symbolsForDotAcce
ss
(
r
,
context
);
resolvedSymbols
+=
resolveCla
ss
(
r
,
context
);
}
}
}
else
if
(
Declaration
*
decl
=
candidate
->
asDeclaration
())
{
...
...
@@ -861,7 +861,7 @@ QList<Symbol *> SymbolsForDotAccess::symbolsForDotAccess(NamedType *namedTy,
// foo.
if
(
funTy
->
scope
()
->
isBlockScope
()
||
funTy
->
scope
()
->
isNamespaceScope
())
{
const
ResolveExpression
::
Result
r
(
funTy
->
returnType
(),
decl
);
resolvedSymbols
+=
symbolsForDotAcce
ss
(
r
,
context
);
resolvedSymbols
+=
resolveCla
ss
(
r
,
context
);
}
}
}
...
...
@@ -870,16 +870,16 @@ QList<Symbol *> SymbolsForDotAccess::symbolsForDotAccess(NamedType *namedTy,
return
resolvedSymbols
;
}
QList
<
Symbol
*>
SymbolsForDotAccess
::
symbolsForDotAcce
ss
(
ResolveExpression
::
Result
p
,
QList
<
Symbol
*>
ResolveClass
::
resolveCla
ss
(
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
)
{
FullySpecifiedType
ty
=
p
.
first
;
if
(
NamedType
*
namedTy
=
ty
->
asNamedType
())
{
return
symbolsForDotAcce
ss
(
namedTy
,
p
,
context
);
return
resolveCla
ss
(
namedTy
,
p
,
context
);
}
else
if
(
ReferenceType
*
refTy
=
ty
->
asReferenceType
())
{
const
ResolveExpression
::
Result
e
(
refTy
->
elementType
(),
p
.
second
);
return
symbolsForDotAcce
ss
(
e
,
context
);
return
resolveCla
ss
(
e
,
context
);
}
return
QList
<
Symbol
*>
();
...
...
src/libs/cplusplus/ResolveExpression.h
View file @
c7b023c0
...
...
@@ -128,10 +128,10 @@ private:
QList
<
Result
>
_results
;
};
class
CPLUSPLUS_EXPORT
SymbolsForDotAcce
ss
class
CPLUSPLUS_EXPORT
ResolveCla
ss
{
public:
SymbolsForDotAcce
ss
();
ResolveCla
ss
();
QList
<
Symbol
*>
operator
()(
NamedType
*
namedTy
,
ResolveExpression
::
Result
p
,
...
...
@@ -141,11 +141,11 @@ public:
const
LookupContext
&
context
);
private:
QList
<
Symbol
*>
symbolsForDotAcce
ss
(
NamedType
*
namedTy
,
QList
<
Symbol
*>
resolveCla
ss
(
NamedType
*
namedTy
,
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
);
QList
<
Symbol
*>
symbolsForDotAcce
ss
(
ResolveExpression
::
Result
p
,
QList
<
Symbol
*>
resolveCla
ss
(
ResolveExpression
::
Result
p
,
const
LookupContext
&
context
);
private:
...
...
src/plugins/cpptools/cppcodecompletion.cpp
View file @
c7b023c0
...
...
@@ -592,10 +592,9 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
if
(
NamedType
*
namedTy
=
ty
->
asNamedType
())
{
ResolveExpression
resolveExpression
(
context
);
SymbolsForDotAccess
symbolsForDotAcce
ss
;
ResolveClass
resolveCla
ss
;
const
QList
<
Symbol
*>
candidates
=
symbolsForDotAccess
(
namedTy
,
p
,
context
);
const
QList
<
Symbol
*>
candidates
=
resolveClass
(
namedTy
,
p
,
context
);
foreach
(
Symbol
*
classObject
,
candidates
)
{
const
QList
<
TypeOfExpression
::
Result
>
overloads
=
...
...
@@ -616,7 +615,7 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
if
(
PointerType
*
ptrTy
=
ty
->
asPointerType
())
{
if
(
NamedType
*
namedTy
=
ptrTy
->
elementType
()
->
asNamedType
())
{
const
QList
<
Symbol
*>
classes
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
context
);
resolveCla
ss
(
namedTy
,
p
,
context
);
foreach
(
Symbol
*
c
,
classes
)
{
if
(
!
classObjectCandidates
.
contains
(
c
))
...
...
@@ -628,9 +627,9 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
}
}
else
if
(
PointerType
*
ptrTy
=
ty
->
asPointerType
())
{
if
(
NamedType
*
namedTy
=
ptrTy
->
elementType
()
->
asNamedType
())
{
SymbolsForDotAccess
symbolsForDotAcce
ss
;
ResolveClass
resolveCla
ss
;
const
QList
<
Symbol
*>
classes
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
const
QList
<
Symbol
*>
classes
=
resolveCla
ss
(
namedTy
,
p
,
context
);
foreach
(
Symbol
*
c
,
classes
)
{
...
...
@@ -663,8 +662,8 @@ bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &re
}
if
(
namedTy
)
{
SymbolsForDotAccess
symbolsForDotAcce
ss
;
const
QList
<
Symbol
*>
symbols
=
symbolsForDotAcce
ss
(
namedTy
,
p
,
context
);
ResolveClass
resolveCla
ss
;
const
QList
<
Symbol
*>
symbols
=
resolveCla
ss
(
namedTy
,
p
,
context
);
foreach
(
Symbol
*
symbol
,
symbols
)
{
if
(
classObjectCandidates
.
contains
(
symbol
))
continue
;
...
...
@@ -715,8 +714,8 @@ bool CppCodeCompletion::completeScope(const QList<TypeOfExpression::Result> &res
completeClass
(
candidates
,
context
);
}
else
if
(
Symbol
*
symbol
=
result
.
second
)
{
if
(
symbol
->
isTypedef
())
{
SymbolsForDotAccess
symbolsForDotAcce
ss
;
const
QList
<
Symbol
*>
candidates
=
symbolsForDotAcce
ss
(
result
,
ResolveClass
resolveCla
ss
;
const
QList
<
Symbol
*>
candidates
=
resolveCla
ss
(
result
,
context
);
completeClass
(
candidates
,
context
);
}
...
...
@@ -829,6 +828,8 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
if
(
results
.
isEmpty
())
return
false
;
ResolveClass
resolveClass
;
ConvertToCompletionItem
toCompletionItem
(
this
);
Overview
o
;
o
.
setShowReturnTypes
(
false
);
...
...
@@ -849,10 +850,8 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
if
(
!
namedTy
)
// not a class name.
continue
;
const
QList
<
Scope
*>
visibleScopes
=
context
.
visibleScopes
(
p
);
const
QList
<
Symbol
*>
classObjects
=
context
.
resolveClass
(
namedTy
->
name
(),
visibleScopes
);
resolveClass
(
namedTy
,
p
,
context
);
if
(
classObjects
.
isEmpty
())
continue
;
...
...
@@ -860,6 +859,7 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
Class
*
klass
=
classObjects
.
first
()
->
asClass
();
QList
<
Scope
*>
todo
;
const
QList
<
Scope
*>
visibleScopes
=
context
.
visibleScopes
(
p
);
context
.
expand
(
klass
->
members
(),
visibleScopes
,
&
todo
);
foreach
(
Scope
*
scope
,
todo
)
{
...
...
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