Unifying the api and exposing the options.
, _snapshot(snapshot)
, _context(*linkedContextNoScope)
, _scopeBuilder(&_context, doc, snapshot)
- , _ignoreTypeErrors(false)
, _options(WarnDangerousNonStrictEqualityChecks | WarnBlocks | WarnWith
| WarnVoid | WarnCommaExpression | WarnExpressionStatement
| WarnAssignInCondition | WarnUseBeforeDeclaration | WarnDuplicateDeclaration
- | WarnCaseWithoutFlowControlEnd)
+ | WarnCaseWithoutFlowControlEnd | ErrCheckTypeErrors)
, _lastValue(0)
{
}
_scopeBuilder.push(ast);
if (! _context.lookupType(_doc.data(), typeId)) {
- if (! _ignoreTypeErrors)
+ if (_options & ErrCheckTypeErrors)
error(typeId->identifierToken,
Check::tr("unknown type"));
// suppress subsequent errors about scope object lookup by clearing
QList<DiagnosticMessage> operator()();
-
- void setIgnoreTypeErrors(bool ignore)
- { _ignoreTypeErrors = ignore; }
-
enum Option {
WarnDangerousNonStrictEqualityChecks = 1 << 0,
WarnAllNonStrictEqualityChecks = 1 << 1,
WarnUseBeforeDeclaration = 1 << 8,
WarnDuplicateDeclaration = 1 << 9,
WarnDeclarationsNotStartOfFunction = 1 << 10,
- WarnCaseWithoutFlowControlEnd = 1 << 11
+ WarnCaseWithoutFlowControlEnd = 1 << 11,
+ ErrCheckTypeErrors = 1 << 12
};
Q_DECLARE_FLAGS(Options, Option)
+ const Options options() const
+ { return _options; }
+
+ void setOptions(Options options)
+ { _options = options; }
+
protected:
virtual bool preVisit(AST::Node *ast);
virtual void postVisit(AST::Node *ast);
QList<DiagnosticMessage> _messages;
- bool _ignoreTypeErrors;
Options _options;
const Interpreter::Value *_lastValue;
m_document = doc;
QList<RewriterView::Error> errors;
+
+ foreach (const QmlJS::DiagnosticMessage &diagnosticMessage, ctxt.diagnosticLinkMessages()) {
+ errors.append(RewriterView::Error(diagnosticMessage, QUrl::fromLocalFile(doc->fileName())));
+ }
+
Check check(doc, snapshot, m_lookupContext->context());
- check.setIgnoreTypeErrors(true);
+ check.setOptions(check.options() & ~Check::ErrCheckTypeErrors);
foreach (const QmlJS::DiagnosticMessage &diagnosticMessage, check())
if (diagnosticMessage.isError())
errors.append(RewriterView::Error(diagnosticMessage, QUrl::fromLocalFile(doc->fileName())));