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/qv4compileddata_p.h | |
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/qv4compileddata_p.h')
-rw-r--r-- | src/qml/compiler/qv4compileddata_p.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 1f6c591ada..c2ece459c8 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -63,6 +63,7 @@ #include <private/qv4identifier_p.h> #include <private/qflagpointer_p.h> #include <private/qendian_p.h> +#include <private/qqmljsastfwd_p.h> #ifndef V4_BOOTSTRAP #include <private/qqmltypenamecache_p.h> #include <private/qqmlpropertycache_p.h> @@ -127,6 +128,8 @@ struct Location Location() : _dummy(0) { } + Location &operator=(const QQmlJS::AST::SourceLocation &astLocation); + inline bool operator<(const Location &other) const { return line < other.line || (line == other.line && column < other.column); @@ -376,15 +379,16 @@ struct ExportEntry quint32_le moduleRequest; quint32_le importName; quint32_le localName; + Location location; }; -static_assert(sizeof(ExportEntry) == 16, "ExportEntry structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target"); +static_assert(sizeof(ExportEntry) == 20, "ExportEntry structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target"); struct ImportEntry { quint32_le moduleRequest; quint32_le importName; quint32_le localName; - quint32_le padding; + Location location; }; static_assert(sizeof(ImportEntry) == 16, "ImportEntry structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target"); |