Initial support for typedefs.

This commit is contained in:
Roberto Raggi
2008-12-29 11:53:40 +01:00
parent 98cc3ec6c9
commit a985b59d40
3 changed files with 90 additions and 12 deletions

View File

@@ -180,8 +180,6 @@ protected:
} // namespace Internal
} // namespace CppTools
using namespace CppTools::Internal;
FunctionArgumentWidget::FunctionArgumentWidget(Core::ICore *core)
@@ -581,12 +579,12 @@ bool CppCodeCompletion::completeMember(FullySpecifiedType,
const QList<TypeOfExpression::Result> &results,
const LookupContext &context)
{
QTC_ASSERT(!results.isEmpty(), return false);
if (results.isEmpty())
return false;
const TypeOfExpression::Result p = results.first();
QList<Symbol *> classObjectCandidates;
TypeOfExpression::Result p = results.first();
if (m_completionOperator == T_ARROW) {
FullySpecifiedType ty = p.first;
@@ -666,13 +664,13 @@ bool CppCodeCompletion::completeMember(FullySpecifiedType,
}
if (namedTy) {
const QList<Symbol *> classes =
context.resolveClass(namedTy->name(),
context.visibleScopes(p));
foreach (Symbol *c, classes) {
if (! classObjectCandidates.contains(c))
classObjectCandidates.append(c);
SymbolsForDotAccess symbolsForDotAccess;
const QList<Symbol *> symbols = symbolsForDotAccess(namedTy, p, context);
foreach (Symbol *symbol, symbols) {
if (classObjectCandidates.contains(symbol))
continue;
if (Class *klass = symbol->asClass())
classObjectCandidates.append(klass);
}
}
}