forked from qt-creator/qt-creator
Fix parsing of QML version tokens in the presence of "as Foo"
The previous code would omit the minor version, leading to a test failure. Change-Id: I3dccee5252a54806f8e1e5bf5c49eff149d9b936 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -863,8 +863,13 @@ UiImport: UiImportHead UiVersionSpecifier Semicolon;
|
|||||||
UiImport: UiImportHead UiVersionSpecifier T_AS QmlIdentifier Semicolon;
|
UiImport: UiImportHead UiVersionSpecifier T_AS QmlIdentifier Semicolon;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
sym(1).UiImport->versionToken = loc(2);
|
auto versionToken = loc(2);
|
||||||
sym(1).UiImport->version = sym(2).UiVersionSpecifier;
|
auto version = sym(2).UiVersionSpecifier;
|
||||||
|
sym(1).UiImport->version = version;
|
||||||
|
if (version->minorToken.isValid()) {
|
||||||
|
versionToken.length += version->minorToken.length + (version->minorToken.offset - versionToken.offset - versionToken.length);
|
||||||
|
}
|
||||||
|
sym(1).UiImport->versionToken = versionToken;
|
||||||
sym(1).UiImport->asToken = loc(3);
|
sym(1).UiImport->asToken = loc(3);
|
||||||
sym(1).UiImport->importIdToken = loc(4);
|
sym(1).UiImport->importIdToken = loc(4);
|
||||||
sym(1).UiImport->importId = stringRef(4);
|
sym(1).UiImport->importId = stringRef(4);
|
||||||
|
@@ -398,8 +398,13 @@ bool Parser::parse(int startToken)
|
|||||||
#line 866 "qmljs.g"
|
#line 866 "qmljs.g"
|
||||||
|
|
||||||
case 22: {
|
case 22: {
|
||||||
sym(1).UiImport->versionToken = loc(2);
|
auto versionToken = loc(2);
|
||||||
sym(1).UiImport->version = sym(2).UiVersionSpecifier;
|
auto version = sym(2).UiVersionSpecifier;
|
||||||
|
sym(1).UiImport->version = version;
|
||||||
|
if (version->minorToken.isValid()) {
|
||||||
|
versionToken.length += version->minorToken.length + (version->minorToken.offset - versionToken.offset - versionToken.length);
|
||||||
|
}
|
||||||
|
sym(1).UiImport->versionToken = versionToken;
|
||||||
sym(1).UiImport->asToken = loc(3);
|
sym(1).UiImport->asToken = loc(3);
|
||||||
sym(1).UiImport->importIdToken = loc(4);
|
sym(1).UiImport->importIdToken = loc(4);
|
||||||
sym(1).UiImport->importId = stringRef(4);
|
sym(1).UiImport->importId = stringRef(4);
|
||||||
|
Reference in New Issue
Block a user