diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-09-04 10:25:37 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-10-11 14:40:18 +0000 |
commit | a4852b1ee77a913f6cc4806e6606c1b720e8f40b (patch) | |
tree | ac430430bf167465153485974e31fb4d9f723e75 /src/qml/compiler/qv4compilerscanfunctions.cpp | |
parent | b6f7fe1f80e6beed62ef47691fae6aa9f4a851b8 (diff) |
Fix error reporting when imports or re-exports in modules fail
Collect the location of the import/export statement and include it in
the exception thrown.
Change-Id: I7966dfd53ed67d2d7087acde2dd8ff67c64cb044
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compilerscanfunctions.cpp')
-rw-r--r-- | src/qml/compiler/qv4compilerscanfunctions.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4compilerscanfunctions.cpp b/src/qml/compiler/qv4compilerscanfunctions.cpp index 4e18af2227..6a56b7d1a0 100644 --- a/src/qml/compiler/qv4compilerscanfunctions.cpp +++ b/src/qml/compiler/qv4compilerscanfunctions.cpp @@ -176,6 +176,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) Compiler::ExportEntry entry; entry.moduleRequest = declaration->fromClause->moduleSpecifier.toString(); entry.importName = QStringLiteral("*"); + entry.location = declaration->firstSourceLocation(); _context->exportEntries << entry; } else if (declaration->exportClause) { for (ExportsList *it = declaration->exportClause->exportsList; it; it = it->next) { @@ -188,6 +189,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) entry.moduleRequest = module; entry.exportName = spec->exportedIdentifier.toString(); + entry.location = it->firstSourceLocation(); _context->exportEntries << entry; } @@ -202,6 +204,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) Compiler::ExportEntry entry; entry.localName = name; entry.exportName = name; + entry.location = vstmt->firstSourceLocation(); _context->exportEntries << entry; } } else if (auto *classDecl = AST::cast<AST::ClassDeclaration*>(declaration->variableStatementOrDeclaration)) { @@ -210,6 +213,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) Compiler::ExportEntry entry; entry.localName = name; entry.exportName = name; + entry.location = classDecl->firstSourceLocation(); _context->exportEntries << entry; if (declaration->exportDefault) localNameForDefaultExport = entry.localName; @@ -228,6 +232,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) Compiler::ExportEntry entry; entry.localName = functionName; entry.exportName = functionName; + entry.location = fdef->firstSourceLocation(); _context->exportEntries << entry; if (declaration->exportDefault) localNameForDefaultExport = entry.localName; @@ -239,6 +244,7 @@ bool ScanFunctions::visit(ExportDeclaration *declaration) entry.localName = localNameForDefaultExport; _context->localNameForDefaultExport = localNameForDefaultExport; entry.exportName = QStringLiteral("default"); + entry.location = declaration->firstSourceLocation(); _context->exportEntries << entry; } @@ -263,6 +269,7 @@ bool ScanFunctions::visit(ImportDeclaration *declaration) entry.moduleRequest = module; entry.importName = QStringLiteral("default"); entry.localName = import->importedDefaultBinding.toString(); + entry.location = declaration->firstSourceLocation(); _context->importEntries << entry; } @@ -271,6 +278,7 @@ bool ScanFunctions::visit(ImportDeclaration *declaration) entry.moduleRequest = module; entry.importName = QStringLiteral("*"); entry.localName = import->nameSpaceImport->importedBinding.toString(); + entry.location = declaration->firstSourceLocation(); _context->importEntries << entry; } @@ -283,6 +291,7 @@ bool ScanFunctions::visit(ImportDeclaration *declaration) entry.importName = it->importSpecifier->identifier.toString(); else entry.importName = entry.localName; + entry.location = declaration->firstSourceLocation(); _context->importEntries << entry; } } |