Moved some complicated checks into convenience functions

This commit is contained in:
Thorbjørn Lindeijer
2009-03-26 16:43:38 +01:00
parent 536320ea1a
commit 5d8ee0d742
3 changed files with 20 additions and 7 deletions

View File

@@ -1209,10 +1209,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
if (Function *function = symbol->type()->asFunctionType()) {
// If the member is a function, automatically place the opening parenthesis,
// except when it might take template parameters.
const bool hasReturnType = function->returnType().isValid() ||
function->returnType().isSigned() ||
function->returnType().isUnsigned();
if (! hasReturnType && (function->identity() && !function->identity()->isDestructorNameId())) {
if (! function->hasReturnType() && (function->identity() && !function->identity()->isDestructorNameId())) {
// Don't insert any magic, since the user might have just wanted to select the class
} else if (function->templateParameterCount() != 0) {
@@ -1224,9 +1221,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
extraChars += QLatin1Char('(');
// If the function takes no arguments, automatically place the closing parenthesis
if (item.m_duplicateCount == 0 && (function->argumentCount() == 0 ||
(function->argumentCount() == 1 &&
function->argumentAt(0)->type()->isVoidType()))) {
if (item.m_duplicateCount == 0 && ! function->hasArguments()) {
extraChars += QLatin1Char(')');
// If the function doesn't return anything, automatically place the semicolon,