Lines Matching full:ir
26 #include "ir/visitor/IterateAstVisitor.h"
27 #include "ir/expressions/literals/undefinedLiteral.h"
28 #include "ir/expressions/blockExpression.h"
29 #include "ir/ets/etsUnionType.h"
30 #include "ir/ets/etsTuple.h"
38 class ScopesInitPhase : public Phase, public ir::visitor::IterateAstVisitor {
85 void CallFuncParams(const ArenaVector<ir::Expression *> ¶ms);
86 void IterateNoTParams(ir::ClassDefinition *classDef);
97 void VisitFunctionExpression(ir::FunctionExpression *funcExpr) override;
98 void VisitScriptFunction(ir::ScriptFunction *scriptFunction) override;
99 void VisitBlockStatement(ir::BlockStatement *blockStmt) override;
100 void VisitImportDeclaration(ir::ImportDeclaration *importDeclaration) override;
101 void VisitClassStaticBlock(ir::ClassStaticBlock *staticBlock) override;
102 void VisitClassDefinition(ir::ClassDefinition *classDef) override;
103 void VisitMethodDefinition(ir::MethodDefinition *methodDefinition) override;
104 void VisitForUpdateStatement(ir::ForUpdateStatement *forUpdateStmt) override;
105 void VisitForInStatement(ir::ForInStatement *forInStmt) override;
106 void VisitForOfStatement(ir::ForOfStatement *forOfStmt) override;
107 void VisitCatchClause(ir::CatchClause *catchClause) override;
108 void VisitVariableDeclarator(ir::VariableDeclarator *varDecl) override;
109 void VisitSwitchStatement(ir::SwitchStatement *switchStmt) override;
110 void VisitWhileStatement(ir::WhileStatement *whileStmt) override;
111 void VisitETSStructDeclaration(ir::ETSStructDeclaration *structDecl) override;
112 void VisitClassDeclaration(ir::ClassDeclaration *classDecl) override;
113 void VisitDoWhileStatement(ir::DoWhileStatement *doWhileStmt) override;
114 void VisitFunctionDeclaration(ir::FunctionDeclaration *funcDecl) override;
115 void VisitExportAllDeclaration(ir::ExportAllDeclaration *exportAllDecl) override;
116 void VisitImportNamespaceSpecifier(ir::ImportNamespaceSpecifier *importSpec) override;
117 void VisitImportSpecifier(ir::ImportSpecifier *importSpec) override;
118 void VisitImportDefaultSpecifier(ir::ImportDefaultSpecifier *importSpec) override;
119 void VisitExportDefaultDeclaration(ir::ExportDefaultDeclaration *exportDecl) override;
120 void VisitExportNamedDeclaration(ir::ExportNamedDeclaration *exportDecl) override;
121 void VisitArrowFunctionExpression(ir::ArrowFunctionExpression *arrowExpr) override;
122 void VisitDirectEvalExpression(ir::DirectEvalExpression *directCallExpr) override;
123 void VisitTSFunctionType(ir::TSFunctionType *funcType) override;
124 void VisitAnnotationDeclaration(ir::AnnotationDeclaration *annoDecl) override;
125 void VisitAnnotationUsage(ir::AnnotationUsage *annoUsage) override;
159 virtual void CreateFuncDecl(ir::ScriptFunction *func);
160 virtual util::StringView FormInterfaceOrEnumDeclarationIdBinding(ir::Identifier *id);
161 void HandleFunction(ir::ScriptFunction *function);
162 varbinder::FunctionParamScope *HandleFunctionSig(ir::TSTypeParameterDeclaration *typeParams,
163 const ArenaVector<ir::Expression *> ¶ms,
164 ir::TypeNode *returnType);
169 void HandleBlockStmt(ir::BlockStatement *block, varbinder::Scope *scope);
180 virtual varbinder::Decl *BindClassName(ir::ClassDefinition *classDef);
193 void BindClassDefinition(ir::ClassDefinition *classDef);
195 …std::tuple<varbinder::Decl *, varbinder::Variable *> AddOrGetVarDecl(ir::VariableDeclaratorFlag fl…
196 const ir::Identifier *id);
198 …virtual void BindVarDecl([[maybe_unused]] ir::Identifier *binding, ir::Expression *init, varbinder…
200 virtual void AttachLabelToScope(ir::AstNode *node);
213 void VisitTSModuleDeclaration(ir::TSModuleDeclaration *moduleDecl) override;
215 void VisitTSModuleBlock(ir::TSModuleBlock *block) override;
217 void VisitTSTypeAliasDeclaration(ir::TSTypeAliasDeclaration *typeAliasDecl) override;
219 util::StringView FormInterfaceOrEnumDeclarationIdBinding(ir::Identifier *id) override;
226 void VisitTSInterfaceDeclaration(ir::TSInterfaceDeclaration *interfDecl) override;
228 void VisitTSEnumMember(ir::TSEnumMember *enumMember) override;
230 void VisitTSEnumDeclaration(ir::TSEnumDeclaration *enumDecl) override;
232 void VisitTSTypeParameter(ir::TSTypeParameter *typeParam) override;
234 void VisitTSTypeParameterDeclaration(ir::TSTypeParameterDeclaration *paramDecl) override;
236 void VisitClassDefinition(ir::ClassDefinition *classDef) override;
255 void VisitTSMappedType([[maybe_unused]] ir::TSMappedType *mapped) override {} in VisitTSMappedType()
256 void VisitTSInferType([[maybe_unused]] ir::TSInferType *infer) override {} in VisitTSInferType()
257 void VisitExportDefaultDeclaration(ir::ExportDefaultDeclaration *exportDecl) override;
258 void VisitExportNamedDeclaration(ir::ExportNamedDeclaration *exportDecl) override;
259 void VisitImportDeclaration(ir::ImportDeclaration *importDeclaration) override;
260 void VisitTSFunctionType(ir::TSFunctionType *constrType) override;
261 void VisitTSConstructorType(ir::TSConstructorType *constrT) override;
262 void VisitArrowFunctionExpression(ir::ArrowFunctionExpression *arrowFExpr) override;
263 void VisitTSSignatureDeclaration(ir::TSSignatureDeclaration *signDecl) override;
264 void VisitTSMethodSignature(ir::TSMethodSignature *methodSign) override;
266 void CreateFuncDecl(ir::ScriptFunction *func) override;
299 * Then you should pass your new created node = ir::BlockStatement() to RunExternalNode,
311 static void RunExternalNode(ir::AstNode *node, varbinder::VarBinder *varbinder);
315 static void RunExternalNode(ir::AstNode *node, parser::Program *ctx);
331 void HandleETSModule(ir::BlockStatement *script);
333 void ParseGlobalClass(ir::ClassDefinition *global);
335 void AddGlobalDeclaration(ir::AstNode *node);
337 varbinder::Decl *BindClassName([[maybe_unused]] ir::ClassDefinition *identNode) override in BindClassName()
342 void BindVarDecl(ir::Identifier *binding, ir::Expression *init, varbinder::Decl *decl,
344 void DeclareClassMethod(ir::MethodDefinition *method);
345 …void MaybeAddOverload(ir::MethodDefinition *method, ir::Identifier *methodName, varbinder::Variabl…
348 void VisitClassStaticBlock(ir::ClassStaticBlock *staticBlock) override;
349 void VisitBlockExpression(ir::BlockExpression *blockExpr) override;
350 void VisitImportNamespaceSpecifier(ir::ImportNamespaceSpecifier *importSpec) override;
351 void VisitImportSpecifier([[maybe_unused]] ir::ImportSpecifier *importSpec) override;
352 …void VisitImportDefaultSpecifier([[maybe_unused]] ir::ImportDefaultSpecifier *importSpec) override… in VisitImportDefaultSpecifier()
353 void VisitETSReExportDeclaration(ir::ETSReExportDeclaration *reExport) override;
354 void VisitETSParameterExpression(ir::ETSParameterExpression *paramExpr) override;
355 void VisitETSImportDeclaration(ir::ETSImportDeclaration *importDecl) override;
356 void VisitTSEnumMember(ir::TSEnumMember *enumMember) override;
357 void VisitMethodDefinition(ir::MethodDefinition *method) override;
358 void VisitETSFunctionType(ir::ETSFunctionType *funcType) override;
359 … void VisitETSNewClassInstanceExpression(ir::ETSNewClassInstanceExpression *newClassExpr) override;
360 void VisitTSTypeParameter(ir::TSTypeParameter *typeParam) override;
361 void VisitTSInterfaceDeclaration(ir::TSInterfaceDeclaration *interfaceDecl) override;
362 void VisitTSEnumDeclaration(ir::TSEnumDeclaration *enumDecl) override;
363 void VisitTSTypeAliasDeclaration(ir::TSTypeAliasDeclaration *typeAlias) override;
364 void VisitClassDefinition(ir::ClassDefinition *classDef) override;
365 void VisitTSInterfaceBody(ir::TSInterfaceBody *interfBody) override;
366 void VisitClassProperty(ir::ClassProperty *classProp) override;
367 void VisitBreakStatement(ir::BreakStatement *stmt) override;
368 void VisitContinueStatement(ir::ContinueStatement *stmt) override;
369 void AttachLabelToScope(ir::AstNode *node) override;
370 void VisitArrowFunctionExpression(ir::ArrowFunctionExpression *arrowExpr) override in VisitArrowFunctionExpression()
375 util::StringView FormInterfaceOrEnumDeclarationIdBinding(ir::Identifier *id) override in FormInterfaceOrEnumDeclarationIdBinding()
382 void FilterInterfaceOverloads(ArenaVector<ir::AstNode *> &props);
384 void FilterOverloads(ArenaVector<ir::AstNode *> &props);
395 void VisitArrowFunctionExpression(ir::ArrowFunctionExpression *arrowExpr) override;
396 void VisitExportNamedDeclaration(ir::ExportNamedDeclaration *exportDecl) override;