qmljs: correctly handle js string templates

In most cases we do want to visit the expressions in a function
template. Changing its accept0 would force those not wanting to visit
it to iterate on the templates (currently a linked list), so we add a
visit method explicitly visiting the expression in all the needed
places.

Fixes: QTCREATORBUG-21869
Change-Id: I47733544bfd32eec357810b97242608b8f7de572
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Fawzi Mohamed
2021-12-06 09:44:24 +01:00
parent 9d1fe1df14
commit 6b270b8dc9
19 changed files with 99 additions and 0 deletions

View File

@@ -158,6 +158,11 @@ public:
return true;
}
bool visit(TemplateLiteral *ast) override
{
Node::accept(ast->expression, this);
return true;
}
bool visit(VariableStatement *ast) override { test(ast); return true; }
bool visit(VariableDeclarationList *ast) override { test(ast); return true; }
bool visit(ExpressionStatement *ast) override { test(ast); return true; }