forked from qt-creator/qt-creator
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:
@@ -279,6 +279,13 @@ protected:
|
||||
--_depth;
|
||||
}
|
||||
|
||||
bool visit(AST::TemplateLiteral *ast) override
|
||||
{
|
||||
// avoid? finds function declarations in templates
|
||||
AST::Node::accept(ast->expression, this);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool visit(AST::FunctionExpression *) override
|
||||
{
|
||||
return false;
|
||||
@@ -398,6 +405,12 @@ protected:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool visit(AST::TemplateLiteral *ast) override
|
||||
{
|
||||
AST::Node::accept(ast->expression, this);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool visit(AST::FunctionDeclaration *ast) override
|
||||
{
|
||||
_ranges.append(createRange(ast));
|
||||
|
||||
Reference in New Issue
Block a user