45 typedef QScopedValueRollback<
bool> TemporaryBoolAssignment;
47 ScanFunctions(Codegen *cg,
const QString &sourceCode, ContextType defaultProgramType);
48 void operator()(QQmlJS::AST::Node *node);
53 if (node && node->formals)
54 node->formals->accept(
this);
63 { enterFunction(ast, FunctionNameContext::None); }
81 void checkName(QStringView name,
const QQmlJS::SourceLocation &loc);
83 bool visit(QQmlJS::AST::Program *ast)
override;
84 void endVisit(QQmlJS::AST::Program *)
override;
86 bool visit(QQmlJS::AST::ESModule *ast)
override;
87 void endVisit(QQmlJS::AST::ESModule *)
override;
89 bool visit(QQmlJS::AST::ExportDeclaration *declaration)
override;
90 bool visit(QQmlJS::AST::ImportDeclaration *declaration)
override;
92 bool visit(QQmlJS::AST::CallExpression *ast)
override;
93 bool visit(QQmlJS::AST::PatternElement *ast)
override;
94 bool visit(QQmlJS::AST::IdentifierExpression *ast)
override;
95 bool visit(QQmlJS::AST::ExpressionStatement *ast)
override;
96 bool visit(QQmlJS::AST::FunctionExpression *ast)
override;
97 bool visit(QQmlJS::AST::TemplateLiteral *ast)
override;
98 bool visit(QQmlJS::AST::SuperLiteral *)
override;
99 bool visit(QQmlJS::AST::FieldMemberExpression *)
override;
100 bool visit(QQmlJS::AST::ArrayPattern *)
override;
105 void endVisit(QQmlJS::AST::FunctionExpression *)
override;
107 bool visit(QQmlJS::AST::ObjectPattern *ast)
override;
109 bool visit(QQmlJS::AST::PatternProperty *ast)
override;
110 void endVisit(QQmlJS::AST::PatternProperty *)
override;
112 bool visit(QQmlJS::AST::FunctionDeclaration *ast)
override;
113 void endVisit(QQmlJS::AST::FunctionDeclaration *)
override;
115 bool visit(QQmlJS::AST::ClassExpression *ast)
override;
116 void endVisit(QQmlJS::AST::ClassExpression *)
override;
118 bool visit(QQmlJS::AST::ClassDeclaration *ast)
override;
119 void endVisit(QQmlJS::AST::ClassDeclaration *)
override;
121 bool visit(QQmlJS::AST::DoWhileStatement *ast)
override;
122 bool visit(QQmlJS::AST::ForStatement *ast)
override;
123 void endVisit(QQmlJS::AST::ForStatement *)
override;
124 bool visit(QQmlJS::AST::ForEachStatement *ast)
override;
125 void endVisit(QQmlJS::AST::ForEachStatement *)
override;
127 bool visit(QQmlJS::AST::ThisExpression *ast)
override;
129 bool visit(QQmlJS::AST::Block *ast)
override;
130 void endVisit(QQmlJS::AST::Block *ast)
override;
132 bool visit(QQmlJS::AST::CaseBlock *ast)
override;
133 void endVisit(QQmlJS::AST::CaseBlock *ast)
override;
135 bool visit(QQmlJS::AST::Catch *ast)
override;
136 void endVisit(QQmlJS::AST::Catch *ast)
override;
138 bool visit(QQmlJS::AST::WithStatement *ast)
override;
139 void endVisit(QQmlJS::AST::WithStatement *ast)
override;
145 QQmlJS::AST::FormalParameterList *formals,
159 static constexpr QQmlJS::AST::Node *astNodeForGlobalEnvironment =
nullptr;