Commit a33ae029 authored by Thorbjørn Lindeijer's avatar Thorbjørn Lindeijer
Browse files

Revert now unnecessary checks for null-types

This reverts commits:

c721304a
885d908e
a0909989
fb4ad59d
0a9a67cf
0d1624d4
d018cfd5
0504fdd0
a2fd10fe

Conflicts:

	src/plugins/cpptools/cppcodecompletion.cpp

Reviewed-by: Roberto Raggi
parent 146a5349
......@@ -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() && ! symbol->type()->isFunctionType())
if (! symbol->type()->isFunctionType())
name += QLatin1String(": ");
name += type;
}
......
......@@ -593,8 +593,6 @@ Symbol *CPPEditor::findDefinition(Symbol *symbol)
{
if (symbol->isFunction())
return 0; // symbol is a function definition.
else if (! symbol->type())
return 0;
Function *funTy = symbol->type()->asFunctionType();
if (! funTy)
......
......@@ -256,7 +256,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
const QList<TypeOfExpression::Result> types =
typeOfExpression(expression, doc, lastSymbol);
if (!types.isEmpty() && types.first().first) {
if (!types.isEmpty()) {
FullySpecifiedType firstType = types.first().first;
Symbol *symbol = types.first().second;
FullySpecifiedType docType = firstType;
......
......@@ -578,8 +578,6 @@ bool CppCodeCompletion::completeFunction(FullySpecifiedType exprTy,
QSet<QString> signatures;
foreach (TypeOfExpression::Result p, resolvedTypes) {
FullySpecifiedType ty = p.first;
if (! ty)
continue;
if (Function *fun = ty->asFunctionType()) {
if (TextEditor::CompletionItem item = toCompletionItem(fun)) {
QString signature;
......@@ -602,7 +600,7 @@ bool CppCodeCompletion::completeFunction(FullySpecifiedType exprTy,
bool CppCodeCompletion::completeMember(const QList<TypeOfExpression::Result> &results,
const LookupContext &context)
{
if (results.isEmpty() || ! results.first().first)
if (results.isEmpty())
return false;
TypeOfExpression::Result result = results.first();
......@@ -898,10 +896,7 @@ bool CppCodeCompletion::completeConstructors(Class *klass)
for (unsigned i = 0; i < klass->memberCount(); ++i) {
Symbol *member = klass->memberAt(i);
FullySpecifiedType memberTy = member->type();
if (! memberTy)
continue;
else if (! memberTy->isFunctionType())
if (! member->type()->isFunctionType())
continue;
else if (! member->identity())
continue;
......@@ -935,12 +930,8 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
QSet<QString> signatures;
foreach (TypeOfExpression::Result p, results) {
FullySpecifiedType ty = p.first;
if (! ty)
continue;
if (ReferenceType *refTy = ty->asReferenceType())
ty = refTy->elementType();
if (PointerType *ptrTy = ty->asPointerType())
ty = ptrTy->elementType();
else
......@@ -968,8 +959,6 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
for (unsigned i = 0; i < scope->symbolCount(); ++i) {
Symbol *member = scope->symbolAt(i);
if (! member->type())
continue;
Function *fun = member->type()->asFunctionType();
if (! fun)
continue;
......@@ -1127,15 +1116,13 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
extraChars += QLatin1Char('(');
// If the function takes no arguments, automatically place the closing parenthesis
if (function->argumentCount() == 0 || (function->argumentCount() == 1 &&
function->argumentAt(0)->type() &&
if (function->argumentCount() == 0 || (function->argumentCount() == 1 &&
function->argumentAt(0)->type()->isVoidType())) {
extraChars += QLatin1Char(')');
// If the function doesn't return anything, automatically place the semicolon,
// unless we're doing a scope completion (then it might be function definition).
FullySpecifiedType retTy = function->returnType();
if (retTy && retTy->isVoidType() && m_completionOperator != T_COLON_COLON) {
if (function->returnType()->isVoidType() && m_completionOperator != T_COLON_COLON) {
extraChars += QLatin1Char(';');
}
}
......
......@@ -320,8 +320,8 @@ bool CheckExpression::visit(QtMethodAST *ast)
Scope dummy;
FullySpecifiedType methTy = semantic()->check(ast->declarator, FullySpecifiedType(),
&dummy, &name);
Function *fty = 0;
if (! methTy || 0 == (fty = methTy->asFunctionType()))
Function *fty = methTy->asFunctionType();
if (! fty)
translationUnit()->warning(ast->firstToken(), "expected a function declarator");
else {
for (unsigned i = 0; i < fty->argumentCount(); ++i) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment