Lines Matching defs:ast
27 const ir::AstNode *ast)
29 if (auto [decision, action] = CheckCompound(ctx, ast); action == CheckAction::SKIP_SUBTREE) {
32 if (!ast->IsBinaryExpression() || !ast->AsBinaryExpression()->IsArithmetic()) {
35 if ((ast->AsBinaryExpression()->OperatorType() == lexer::TokenType::PUNCTUATOR_PLUS ||
36 ast->AsBinaryExpression()->OperatorType() == lexer::TokenType::PUNCTUATOR_PLUS_EQUAL) &&
37 (IsStringType(ast->AsBinaryExpression()->Left()) || IsStringType(ast->AsBinaryExpression()->Right()))) {
41 bool isBitwise = ast->AsBinaryExpression()->IsBitwise();
42 ast->Iterate([&result, &ctx, &isBitwise](ir::AstNode *child) {
51 CheckResult ArithmeticOperationValid::CheckCompound(CheckContext &ctx, const ir::AstNode *ast)
53 if (ast->IsTSInterfaceDeclaration()) {
54 for (const auto &member : ast->AsTSInterfaceDeclaration()->Body()->Body()) {
59 if (ast->IsTSEnumDeclaration()) {
60 for (const auto &member : ast->AsTSEnumDeclaration()->Members()) {
65 if (ast->IsClassDefinition()) {
66 for (const auto &member : ast->AsClassDefinition()->Body()) {