Skip to content
GitLab
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
b9ac631b
Commit
b9ac631b
authored
May 20, 2010
by
Erik Verbruggen
Browse files
Fixed expression resolving for ObjC message send expressions.
parent
576a8ae7
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/libs/cplusplus/ResolveExpression.cpp
View file @
b9ac631b
...
...
@@ -649,41 +649,30 @@ bool ResolveExpression::visit(PostIncrDecrAST *)
return
false
;
}
bool
ResolveExpression
::
visit
(
ObjCMessageExpressionAST
*
)
bool
ResolveExpression
::
visit
(
ObjCMessageExpressionAST
*
ast
)
{
qWarning
()
<<
"TODO"
<<
Q_FUNC_INFO
;
return
false
;
#if 0
const
QList
<
LookupItem
>
receiverResults
=
resolve
(
ast
->
receiver_expression
);
if (!receiverResults.isEmpty()) {
LookupItem result = receiverResults.first();
foreach
(
const
LookupItem
&
result
,
receiverResults
)
{
FullySpecifiedType
ty
=
result
.
type
().
simplified
();
const Name *k
lassName = 0;
C
lass
Or
Name
space
*
binding
=
0
;
if (
const
ObjCClass *cla
ssTy
= ty->asObjCClassType()) {
if
(
ObjCClass
*
cla
zz
=
ty
->
asObjCClassType
())
{
// static access, e.g.:
// [NSObject description];
klassName = classTy->name();
} else if (const PointerType *ptrTy = ty->asPointerType()) {
const FullySpecifiedType pointeeTy = ptrTy->elementType();
if (pointeeTy && pointeeTy->isNamedType()) {
// [NSObject description];
binding
=
_context
.
lookupType
(
clazz
);
}
else
if
(
PointerType
*
ptrTy
=
ty
->
asPointerType
())
{
if
(
NamedType
*
namedTy
=
ptrTy
->
asNamedType
())
{
// dynamic access, e.g.:
// NSObject *obj = ...; [obj release];
klassName = pointeeTy->asN
amedTy
pe()
->name();
//
NSObject *obj = ...; [obj release];
binding
=
_context
.
lookupType
(
n
amedTy
->
name
()
,
result
.
scope
())
;
}
}
if (klassName&&ast->selector && ast->selector->name) {
const QList<Symbol *> resolvedSymbols = _context.lookup(klassName, result.scope());
foreach (Symbol *resolvedSymbol, resolvedSymbols)
if (ObjCClass *klass = resolvedSymbol->asObjCClass())
_results.append(resolveMember(ast->selector->name, klass));
}
if
(
binding
)
addResults
(
binding
->
lookup
(
ast
->
selector
->
name
));
}
return
false
;
#endif
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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