Lines Matching refs:ir
24 namespace ark::es2panda::ir {
26 } // namespace ark::es2panda::ir
60 explicit AssignPendingExit(const ir::AstNode *node, Set &inits, Set &uninits)
86 using NodeIdMap = ArenaMap<const ir::AstNode *, NodeId>;
91 void Analyze(const ir::AstNode *node);
97 void AnalyzeNodes(const ir::AstNode *node);
98 void AnalyzeNode(const ir::AstNode *node);
99 bool AnalyzeStmtNode1(const ir::AstNode *node);
100 bool AnalyzeStmtNode2(const ir::AstNode *node);
101 bool AnalyzeExprNode1(const ir::AstNode *node);
102 bool AnalyzeExprNode2(const ir::AstNode *node);
103 void AnalyzeStat(const ir::AstNode *node);
104 void AnalyzeStats(const ArenaVector<ir::Statement *> &stats);
105 void AnalyzeBlock(const ir::BlockStatement *blockStmt);
106 void AnalyzeStructDecl(const ir::ETSStructDeclaration *structDecl);
107 void AnalyzeClassDecl(const ir::ClassDeclaration *classDecl);
108 void AnalyzeClassDef(const ir::ClassDefinition *classDef);
109 void ProcessClassDefStaticFields(const ir::ClassDefinition *classDef);
110 void CheckAnonymousClassCtor(const ir::ClassDefinition *classDef);
111 void AnalyzeMethodDef(const ir::MethodDefinition *methodDef);
112 void AnalyzeVarDef(const ir::VariableDeclaration *varDef);
113 void AnalyzeDoLoop(const ir::DoWhileStatement *doWhileStmt);
114 void AnalyzeWhileLoop(const ir::WhileStatement *whileStmt);
115 void AnalyzeForLoop(const ir::ForUpdateStatement *forStmt);
116 void AnalyzeForOfLoop(const ir::ForOfStatement *forOfStmt);
117 void AnalyzeIf(const ir::IfStatement *ifStmt);
118 void AnalyzeLabelled(const ir::LabelledStatement *labelledStmt);
119 void AnalyzeSwitch(const ir::SwitchStatement *switchStmt);
120 void AnalyzeTry(const ir::TryStatement *tryStmt);
121 void AnalyzeBreak(const ir::BreakStatement *breakStmt);
122 void AnalyzeContinue(const ir::ContinueStatement *contStmt);
123 void AnalyzeReturn(const ir::ReturnStatement *retStmt);
124 void AnalyzeThrow(const ir::ThrowStatement *throwStmt);
125 void AnalyzeAssert(const ir::AssertStatement *assertStmt);
126 void AnalyzeExpr(const ir::AstNode *node);
127 void AnalyzeExprs(const ArenaVector<ir::Expression *> &exprs);
128 void AnalyzeCond(const ir::AstNode *node);
129 void AnalyzeAssignExpr(const ir::AssignmentExpression *assignExpr);
130 void AnalyzeBinaryExpr(const ir::BinaryExpression *binExpr);
131 void AnalyzeCallExpr(const ir::CallExpression *callExpr);
132 void AnalyzeCondExpr(const ir::ConditionalExpression *condExpr);
133 void AnalyzeId(const ir::Identifier *id);
134 void AnalyzeMemberExpr(const ir::MemberExpression *membExpr);
135 void AnalyzeNewClass(const ir::ETSNewClassInstanceExpression *newClass);
136 void AnalyzeUnaryExpr(const ir::UnaryExpression *unaryExpr);
137 void AnalyzeUpdateExpr(const ir::UpdateExpression *updateExpr);
138 void AnalyzeArrowFunctionExpr(const ir::ArrowFunctionExpression *arrowFuncExpr);
143 bool Trackable(const ir::AstNode *node) const;
144 bool IsConstUninitializedField(const ir::AstNode *node) const;
145 bool IsConstUninitializedStaticField(const ir::AstNode *node) const;
146 void NewVar(const ir::AstNode *node);
147 void LetInit(const ir::AstNode *node);
148 void CheckInit(const ir::AstNode *node);
152 NodeId GetNodeId(const ir::AstNode *node) const;
153 util::StringView GetVariableType(const ir::AstNode *node) const;
154 util::StringView GetVariableName(const ir::AstNode *node) const;
155 const lexer::SourcePosition &GetVariablePosition(const ir::AstNode *node) const;
156 const ir::AstNode *GetDeclaringNode(const ir::AstNode *node);
157 varbinder::Variable *GetBoundVariable(const ir::AstNode *node);
158 bool VariableHasDefaultValue(const ir::AstNode *node);
168 ArenaVector<const ir::AstNode *> varDecls_;
169 const ir::ClassDefinition *globalClass_ {};
170 const ir::ClassDefinition *classDef_ {};
180 ArenaSet<const ir::AstNode *> foundErrors_;