diff options
| author | Roberto Raggi <[email protected]> | 2009-02-09 17:44:06 +0100 |
|---|---|---|
| committer | Roberto Raggi <[email protected]> | 2009-02-09 17:49:12 +0100 |
| commit | d01795d9334a96f0ae3f2b19b689fe9abd7fdf34 (patch) | |
| tree | 79e782f3e7a3797750e9e37cf26106f322426e8a /src/libs/cplusplus | |
| parent | ce22a96041ed7a61b09ea9596f415d30d67e68f1 (diff) | |
Reimplemented Type::as*Type() using virtual methods.
Diffstat (limited to 'src/libs/cplusplus')
| -rw-r--r-- | src/libs/cplusplus/Icons.cpp | 6 | ||||
| -rw-r--r-- | src/libs/cplusplus/OverviewModel.cpp | 2 | ||||
| -rw-r--r-- | src/libs/cplusplus/ResolveExpression.cpp | 14 |
3 files changed, 12 insertions, 10 deletions
diff --git a/src/libs/cplusplus/Icons.cpp b/src/libs/cplusplus/Icons.cpp index e0b50903c39..8626088052f 100644 --- a/src/libs/cplusplus/Icons.cpp +++ b/src/libs/cplusplus/Icons.cpp @@ -63,11 +63,13 @@ Icons::Icons() QIcon Icons::iconForSymbol(const Symbol *symbol) const { - if (symbol->isFunction() || (symbol->isDeclaration() && symbol->type()->isFunction())) + FullySpecifiedType symbolType = symbol->type(); + if (symbol->isFunction() || (symbol->isDeclaration() && symbolType && + symbolType->isFunctionType())) { const Function *function = symbol->asFunction(); if (!function) - function = symbol->type()->asFunction(); + function = symbol->type()->asFunctionType(); if (function->isSlot()) { if (function->isPublic()) { diff --git a/src/libs/cplusplus/OverviewModel.cpp b/src/libs/cplusplus/OverviewModel.cpp index fe78cb34332..1bef20f36d3 100644 --- a/src/libs/cplusplus/OverviewModel.cpp +++ b/src/libs/cplusplus/OverviewModel.cpp @@ -171,7 +171,7 @@ QVariant OverviewModel::data(const QModelIndex &index, int role) const if (! symbol->isScopedSymbol() || symbol->isFunction()) { QString type = _overview.prettyType(symbol->type()); if (! type.isEmpty()) { - if (! symbol->type()->isFunction()) + if (! symbol->type()->isFunctionType()) name += QLatin1String(": "); name += type; } diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index e6d4d81adce..4f39b8cad22 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -512,7 +512,7 @@ bool ResolveExpression::visit(CallAST *ast) _results.clear(); foreach (Result p, baseResults) { - if (Function *funTy = p.first->asFunction()) { + if (Function *funTy = p.first->asFunctionType()) { unsigned minNumberArguments = 0; for (; minNumberArguments < funTy->argumentCount(); ++minNumberArguments) { Argument *arg = funTy->argumentAt(minNumberArguments)->asArgument(); @@ -528,7 +528,7 @@ bool ResolveExpression::visit(CallAST *ast) p.first = funTy->returnType(); addResult(p); } - } else if (Class *classTy = p.first->asClass()) { + } else if (Class *classTy = p.first->asClassType()) { // Constructor call p.first = control()->namedType(classTy->name()); addResult(p); @@ -566,7 +566,7 @@ bool ResolveExpression::visit(ArrayAccessAST *ast) resolveArrayOperator(p, namedTy, classObject->asClass()); foreach (Result r, overloads) { FullySpecifiedType ty = r.first; - Function *funTy = ty->asFunction(); + Function *funTy = ty->asFunctionType(); if (! funTy) continue; @@ -621,7 +621,7 @@ ResolveExpression::resolveMemberExpression(const QList<Result> &baseResults, classObject->asClass()); foreach (Result r, overloads) { FullySpecifiedType ty = r.first; - Function *funTy = ty->asFunction(); + Function *funTy = ty->asFunctionType(); if (! funTy) continue; @@ -651,7 +651,7 @@ ResolveExpression::resolveMemberExpression(const QList<Result> &baseResults, if (NamedType *namedTy = ty->asNamedType()) results += resolveMember(p, memberName, namedTy); - else if (Function *fun = ty->asFunction()) { + else if (Function *fun = ty->asFunctionType()) { if (fun->scope()->isBlockScope() || fun->scope()->isNamespaceScope()) { ty = fun->returnType(); @@ -849,7 +849,7 @@ QList<Symbol *> ResolveClass::resolveClass(NamedType *namedTy, resolvedSymbols.append(klass); } else if (candidate->isTypedef()) { if (Declaration *decl = candidate->asDeclaration()) { - if (Class *asClass = decl->type()->asClass()) { + if (Class *asClass = decl->type()->asClassType()) { // typedef struct { } Point; // Point pt; // pt. @@ -863,7 +863,7 @@ QList<Symbol *> ResolveClass::resolveClass(NamedType *namedTy, } } } else if (Declaration *decl = candidate->asDeclaration()) { - if (Function *funTy = decl->type()->asFunction()) { + if (Function *funTy = decl->type()->asFunctionType()) { // QString foo("ciao"); // foo. if (funTy->scope()->isBlockScope() || funTy->scope()->isNamespaceScope()) { |
