Fix in QmlJS parser for UiParameterList
authorThomas Hartmann <Thomas.Hartmann@digia.com>
Fri, 28 Sep 2012 15:35:21 +0000 (17:35 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 1 Oct 2012 07:46:59 +0000 (09:46 +0200)
The propertyTypeToken was not initilized in this case.
Not having the source location of this token leads to
bugs in the tooling. e. g.: QTCREATORBUG-7931

I also added the initializer for program keeping the parser
and the grammar in sync.

Change-Id: Id7bfb4b6dd1b9689e701a858b6c769d3addab5dc
Reviewed-by: Christian Kamm <kamm@incasoftware.de>
src/qml/qml/parser/qqmljs.g
src/qml/qml/parser/qqmljsparser.cpp

index 00589af..e71ad63 100644 (file)
@@ -413,6 +413,7 @@ Parser::Parser(Engine *engine):
     state_stack(0),
     location_stack(0),
     string_stack(0),
+    program(0),
     first_token(0),
     last_token(0)
 {
@@ -835,6 +836,7 @@ UiParameterList: UiParameterList T_COMMA UiPropertyType JsIdentifier ;
 /.
 case $rule_number: {
   AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, stringRef(3), stringRef(4));
+  node->propertyTypeToken = loc(3);
   node->commaToken = loc(2);
   node->identifierToken = loc(4);
   sym(1).Node = node;
index 2c4d2ab..1bc8f23 100644 (file)
@@ -386,6 +386,7 @@ case 47: {
 
 case 48: {
   AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, stringRef(3), stringRef(4));
+  node->propertyTypeToken = loc(3);
   node->commaToken = loc(2);
   node->identifierToken = loc(4);
   sym(1).Node = node;