QmlJS checks: Hint about extra parentheses.

Migrated from QtChecker.

Change-Id: I85f7dd039ac858b103dfe0af257f66031540c5de
Reviewed-on: http://codereview.qt-project.org/5969
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
This commit is contained in:
Christian Kamm
2011-10-04 09:49:30 +02:00
parent 038111c384
commit d48566234f
3 changed files with 39 additions and 3 deletions

View File

@@ -525,6 +525,7 @@ Check::Check(Document::Ptr doc, const ContextPtr &context)
disableMessage(HintDeclarationsShouldBeAtStartOfFunction);
disableMessage(HintBinaryOperatorSpacing);
disableMessage(HintOneStatementPerLine);
disableMessage(HintExtraParentheses);
}
Check::~Check()
@@ -1104,6 +1105,13 @@ void Check::checkBindingRhs(Statement *statement)
addMessages(unreachableCheck(statement));
}
void Check::checkExtraParentheses(ExpressionNode *expression)
{
if (NestedExpression *nested = cast<NestedExpression *>(expression)) {
addMessage(HintExtraParentheses, nested->lparenToken);
}
}
void Check::addMessages(const QList<Message> &messages)
{
foreach (const Message &msg, messages)
@@ -1199,6 +1207,30 @@ bool Check::visit(StatementList *ast)
return true;
}
bool Check::visit(ReturnStatement *ast)
{
checkExtraParentheses(ast->expression);
return true;
}
bool Check::visit(ThrowStatement *ast)
{
checkExtraParentheses(ast->expression);
return true;
}
bool Check::visit(DeleteExpression *ast)
{
checkExtraParentheses(ast->expression);
return true;
}
bool Check::visit(TypeOfExpression *ast)
{
checkExtraParentheses(ast->expression);
return true;
}
/// When something is changed here, also change ReadingContext::lookupProperty in
/// texttomodelmerger.cpp
/// ### Maybe put this into the context as a helper method.