From 1287ce431aa6bb428a15a2e03870db6ff191f035 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 20 Aug 2025 23:13:27 +0200 Subject: [PATCH] Recursive template instantations --- packages/cxx-frontend/src/ASTSlot.ts | 353 ++-- src/frontend/cxx/frontend.cc | 4 +- src/lsp/cxx/lsp/cxx_document.cc | 1 - src/parser/cxx/ast.h | 1 + src/parser/cxx/ast_printer.cc | 4 + src/parser/cxx/ast_rewriter.cc | 7 +- src/parser/cxx/ast_rewriter.h | 1 + src/parser/cxx/ast_rewriter_declarations.cc | 10 +- src/parser/cxx/ast_rewriter_declarators.cc | 2 + src/parser/cxx/ast_rewriter_expressions.cc | 21 +- src/parser/cxx/ast_rewriter_names.cc | 9 + src/parser/cxx/ast_rewriter_specifiers.cc | 27 +- src/parser/cxx/ast_slot.cc | 1494 +++++++++-------- src/parser/cxx/binder.cc | 2 + src/parser/cxx/const_value.h | 4 +- src/parser/cxx/parser.cc | 85 +- src/parser/cxx/parser.h | 1 + src/parser/cxx/parser_fwd.h | 2 - src/parser/cxx/symbol_printer.cc | 23 +- src/parser/cxx/symbols.cc | 18 + src/parser/cxx/symbols.h | 6 + src/parser/cxx/type_printer.cc | 8 +- .../ast/constrained_template_parameter_01.cc | 3 + tests/unit_tests/ast/deduce_this_01.cc | 1 + tests/unit_tests/ast/deduction_guide_01.cc | 1 + tests/unit_tests/ast/deduction_guide_02.cc | 1 + tests/unit_tests/ast/nested_templates_01.cc | 2 + tests/unit_tests/ast/new_expression_01.cc | 1 + tests/unit_tests/ast/template_lambda_01.cc | 1 + .../ast/template_member_expression_01.cc | 1 + .../ast/template_nested_name_specifier_01.cc | 2 + .../ast/template_type_parameter_01.cc | 2 + 32 files changed, 1128 insertions(+), 970 deletions(-) diff --git a/packages/cxx-frontend/src/ASTSlot.ts b/packages/cxx-frontend/src/ASTSlot.ts index e119bdea..a4d94bb6 100644 --- a/packages/cxx-frontend/src/ASTSlot.ts +++ b/packages/cxx-frontend/src/ASTSlot.ts @@ -82,180 +82,181 @@ export enum ASTSlot { decltypeSpecifier = 59, defaultLoc = 60, deleteLoc = 61, - designatorList = 62, - doLoc = 63, - dotLoc = 64, - ellipsisLoc = 65, - elseLoc = 66, - elseStatement = 67, - emicolonLoc = 68, - enumLoc = 69, - enumTypeSpecifier = 70, - enumeratorList = 71, - equalLoc = 72, - exceptionDeclaration = 73, - exceptionSpecifier = 74, - exclaimLoc = 75, - explicitLoc = 76, - explicitSpecifier = 77, - exportLoc = 78, - expression = 79, - expressionList = 80, - externLoc = 81, - extraAttributeList = 82, - finalLoc = 83, - foldOp = 84, - foldOpLoc = 85, - forLoc = 86, - friendLoc = 87, - functionBody = 88, - genericAssociationList = 89, - genericLoc = 90, - globalModuleFragment = 91, - gnuAtributeList = 92, - gnuAttributeList = 93, - gotoLabelList = 94, - gotoLoc = 95, - greaterLoc = 96, - handlerList = 97, - headerLoc = 98, - id = 99, - idExpression = 100, - identifier = 101, - identifierLoc = 102, - ifLoc = 103, - iffalseExpression = 104, - iftrueExpression = 105, - importLoc = 106, - importName = 107, - indexExpression = 108, - initDeclaratorList = 109, - initializer = 110, - inlineLoc = 111, - inputOperandList = 112, - isFinal = 113, - isIndirect = 114, - isInline = 115, - isNot = 116, - isOverride = 117, - isPack = 118, - isPure = 119, - isTemplateIntroduced = 120, - isThisIntroduced = 121, - isTrue = 122, - isVariadic = 123, - isVirtual = 124, - lambdaSpecifierList = 125, - lbraceLoc = 126, - lbracket2Loc = 127, - lbracketLoc = 128, - leftExpression = 129, - lessLoc = 130, - literal = 131, - literalLoc = 132, - literalOperatorId = 133, - lparen2Loc = 134, - lparenLoc = 135, - matchedAssocIndex = 136, - memInitializerList = 137, - minusGreaterLoc = 138, - moduleDeclaration = 139, - moduleLoc = 140, - moduleName = 141, - modulePartition = 142, - moduleQualifier = 143, - mutableLoc = 144, - namespaceLoc = 145, - nestedNameSpecifier = 146, - nestedNamespaceSpecifierList = 147, - newInitalizer = 148, - newLoc = 149, - newPlacement = 150, - noexceptLoc = 151, - noreturnLoc = 152, - offsetofLoc = 153, - op = 154, - opLoc = 155, - openLoc = 156, - operatorFunctionId = 157, - operatorLoc = 158, - otherVirtualOrAccessLoc = 159, - outputOperandList = 160, - parameterDeclarationClause = 161, - parameterDeclarationList = 162, - privateLoc = 163, - privateModuleFragment = 164, - ptrOpList = 165, - qualifier = 166, - qualifierLoc = 167, - questionLoc = 168, - rangeDeclaration = 169, - rangeInitializer = 170, - rbraceLoc = 171, - rbracket2Loc = 172, - rbracketLoc = 173, - refLoc = 174, - refOp = 175, - refQualifierLoc = 176, - registerLoc = 177, - requirementList = 178, - requiresClause = 179, - requiresLoc = 180, - restrictLoc = 181, - returnLoc = 182, - rightExpression = 183, - rparen2Loc = 184, - rparenLoc = 185, - scopeLoc = 186, - secondColonLoc = 187, - semicolonLoc = 188, - sizeExpression = 189, - sizeofLoc = 190, - specifier = 191, - specifierLoc = 192, - splicer = 193, - starLoc = 194, - statement = 195, - statementList = 196, - staticAssertLoc = 197, - staticLoc = 198, - stringLiteral = 199, - stringliteralLoc = 200, - switchLoc = 201, - symbolicName = 202, - symbolicNameLoc = 203, - templateArgumentList = 204, - templateId = 205, - templateLoc = 206, - templateParameterList = 207, - templateRequiresClause = 208, - thisLoc = 209, - threadLoc = 210, - threadLocalLoc = 211, - throwLoc = 212, - tildeLoc = 213, - trailingReturnType = 214, - tryLoc = 215, - typeConstraint = 216, - typeId = 217, - typeIdList = 218, - typeLoc = 219, - typeQualifierList = 220, - typeSpecifier = 221, - typeSpecifierList = 222, - typeTraitLoc = 223, - typedefLoc = 224, - typeidLoc = 225, - typenameLoc = 226, - underlyingTypeLoc = 227, - unqualifiedId = 228, - usingDeclaratorList = 229, - usingLoc = 230, - vaArgLoc = 231, - virtualLoc = 232, - virtualOrAccessLoc = 233, - voidLoc = 234, - volatileLoc = 235, - whileLoc = 236, - yieldLoc = 237, + depth = 62, + designatorList = 63, + doLoc = 64, + dotLoc = 65, + ellipsisLoc = 66, + elseLoc = 67, + elseStatement = 68, + emicolonLoc = 69, + enumLoc = 70, + enumTypeSpecifier = 71, + enumeratorList = 72, + equalLoc = 73, + exceptionDeclaration = 74, + exceptionSpecifier = 75, + exclaimLoc = 76, + explicitLoc = 77, + explicitSpecifier = 78, + exportLoc = 79, + expression = 80, + expressionList = 81, + externLoc = 82, + extraAttributeList = 83, + finalLoc = 84, + foldOp = 85, + foldOpLoc = 86, + forLoc = 87, + friendLoc = 88, + functionBody = 89, + genericAssociationList = 90, + genericLoc = 91, + globalModuleFragment = 92, + gnuAtributeList = 93, + gnuAttributeList = 94, + gotoLabelList = 95, + gotoLoc = 96, + greaterLoc = 97, + handlerList = 98, + headerLoc = 99, + id = 100, + idExpression = 101, + identifier = 102, + identifierLoc = 103, + ifLoc = 104, + iffalseExpression = 105, + iftrueExpression = 106, + importLoc = 107, + importName = 108, + indexExpression = 109, + initDeclaratorList = 110, + initializer = 111, + inlineLoc = 112, + inputOperandList = 113, + isFinal = 114, + isIndirect = 115, + isInline = 116, + isNot = 117, + isOverride = 118, + isPack = 119, + isPure = 120, + isTemplateIntroduced = 121, + isThisIntroduced = 122, + isTrue = 123, + isVariadic = 124, + isVirtual = 125, + lambdaSpecifierList = 126, + lbraceLoc = 127, + lbracket2Loc = 128, + lbracketLoc = 129, + leftExpression = 130, + lessLoc = 131, + literal = 132, + literalLoc = 133, + literalOperatorId = 134, + lparen2Loc = 135, + lparenLoc = 136, + matchedAssocIndex = 137, + memInitializerList = 138, + minusGreaterLoc = 139, + moduleDeclaration = 140, + moduleLoc = 141, + moduleName = 142, + modulePartition = 143, + moduleQualifier = 144, + mutableLoc = 145, + namespaceLoc = 146, + nestedNameSpecifier = 147, + nestedNamespaceSpecifierList = 148, + newInitalizer = 149, + newLoc = 150, + newPlacement = 151, + noexceptLoc = 152, + noreturnLoc = 153, + offsetofLoc = 154, + op = 155, + opLoc = 156, + openLoc = 157, + operatorFunctionId = 158, + operatorLoc = 159, + otherVirtualOrAccessLoc = 160, + outputOperandList = 161, + parameterDeclarationClause = 162, + parameterDeclarationList = 163, + privateLoc = 164, + privateModuleFragment = 165, + ptrOpList = 166, + qualifier = 167, + qualifierLoc = 168, + questionLoc = 169, + rangeDeclaration = 170, + rangeInitializer = 171, + rbraceLoc = 172, + rbracket2Loc = 173, + rbracketLoc = 174, + refLoc = 175, + refOp = 176, + refQualifierLoc = 177, + registerLoc = 178, + requirementList = 179, + requiresClause = 180, + requiresLoc = 181, + restrictLoc = 182, + returnLoc = 183, + rightExpression = 184, + rparen2Loc = 185, + rparenLoc = 186, + scopeLoc = 187, + secondColonLoc = 188, + semicolonLoc = 189, + sizeExpression = 190, + sizeofLoc = 191, + specifier = 192, + specifierLoc = 193, + splicer = 194, + starLoc = 195, + statement = 196, + statementList = 197, + staticAssertLoc = 198, + staticLoc = 199, + stringLiteral = 200, + stringliteralLoc = 201, + switchLoc = 202, + symbolicName = 203, + symbolicNameLoc = 204, + templateArgumentList = 205, + templateId = 206, + templateLoc = 207, + templateParameterList = 208, + templateRequiresClause = 209, + thisLoc = 210, + threadLoc = 211, + threadLocalLoc = 212, + throwLoc = 213, + tildeLoc = 214, + trailingReturnType = 215, + tryLoc = 216, + typeConstraint = 217, + typeId = 218, + typeIdList = 219, + typeLoc = 220, + typeQualifierList = 221, + typeSpecifier = 222, + typeSpecifierList = 223, + typeTraitLoc = 224, + typedefLoc = 225, + typeidLoc = 226, + typenameLoc = 227, + underlyingTypeLoc = 228, + unqualifiedId = 229, + usingDeclaratorList = 230, + usingLoc = 231, + vaArgLoc = 232, + virtualLoc = 233, + virtualOrAccessLoc = 234, + voidLoc = 235, + volatileLoc = 236, + whileLoc = 237, + yieldLoc = 238, } diff --git a/src/frontend/cxx/frontend.cc b/src/frontend/cxx/frontend.cc index ece5608a..4ddad0ad 100644 --- a/src/frontend/cxx/frontend.cc +++ b/src/frontend/cxx/frontend.cc @@ -416,9 +416,9 @@ void Frontend::Private::preparePreprocessor() { void Frontend::Private::parse() { unit_->parse(ParserConfiguration{ - .checkTypes = cli.opt_fcheck || unit_->language() == LanguageKind::kC, + .checkTypes = + cli.opt_fcheck || needsIR() || unit_->language() == LanguageKind::kC, .fuzzyTemplateResolution = true, - .reflect = !cli.opt_fno_reflect, }); if (cli.opt_freport_missing_types) { diff --git a/src/lsp/cxx/lsp/cxx_document.cc b/src/lsp/cxx/lsp/cxx_document.cc index 5c582555..1a5c028d 100644 --- a/src/lsp/cxx/lsp/cxx_document.cc +++ b/src/lsp/cxx/lsp/cxx_document.cc @@ -279,7 +279,6 @@ void CxxDocument::parse(std::string source) { unit.parse(ParserConfiguration{ .checkTypes = cli.opt_fcheck, .fuzzyTemplateResolution = true, - .reflect = !cli.opt_fno_reflect, .stopParsingPredicate = stopParsingPredicate, .complete = complete, }); diff --git a/src/parser/cxx/ast.h b/src/parser/cxx/ast.h index 58752ac0..d8881677 100644 --- a/src/parser/cxx/ast.h +++ b/src/parser/cxx/ast.h @@ -520,6 +520,7 @@ class TemplateDeclarationAST final : public DeclarationAST { RequiresClauseAST* requiresClause = nullptr; DeclarationAST* declaration = nullptr; TemplateParametersSymbol* symbol = nullptr; + int depth = 0; void accept(ASTVisitor* visitor) override { visitor->visit(this); } diff --git a/src/parser/cxx/ast_printer.cc b/src/parser/cxx/ast_printer.cc index 7780dc03..89337e13 100644 --- a/src/parser/cxx/ast_printer.cc +++ b/src/parser/cxx/ast_printer.cc @@ -309,6 +309,10 @@ void ASTPrinter::visit(FunctionDefinitionAST* ast) { void ASTPrinter::visit(TemplateDeclarationAST* ast) { out_ << std::format("{}\n", "template-declaration"); + ++indent_; + out_ << std::format("{:{}}", "", indent_ * 2); + out_ << std::format("depth: {}\n", ast->depth); + --indent_; if (ast->templateParameterList) { ++indent_; out_ << std::format("{:{}}", "", indent_ * 2); diff --git a/src/parser/cxx/ast_rewriter.cc b/src/parser/cxx/ast_rewriter.cc index 8d2b90ff..dc9381ee 100644 --- a/src/parser/cxx/ast_rewriter.cc +++ b/src/parser/cxx/ast_rewriter.cc @@ -131,6 +131,7 @@ auto ASTRewriter::instantiateClassTemplate( auto parentScope = classSymbol->enclosingNonTemplateParametersScope(); auto rewriter = ASTRewriter{unit, parentScope, templateArguments}; + rewriter.depth_ = templateDecl->depth; rewriter.binder().setInstantiatingSymbol(classSymbol); @@ -224,7 +225,11 @@ auto ASTRewriter::make_substitution( // ### need to set scope and location auto templArg = control->newVariableSymbol(nullptr, {}); templArg->setInitializer(expr); - templArg->setType(control->add_const(expr->type)); + auto type = expr->type; + if (!control->is_scalar(expr->type)) { + type = control->add_pointer(expr->type); + } + templArg->setType(expr->type); templArg->setConstValue(value); templateArguments.push_back(templArg); } else if (auto typeArg = ast_cast(arg)) { diff --git a/src/parser/cxx/ast_rewriter.h b/src/parser/cxx/ast_rewriter.h index 5bb03a60..0e8f7a84 100644 --- a/src/parser/cxx/ast_rewriter.h +++ b/src/parser/cxx/ast_rewriter.h @@ -199,6 +199,7 @@ class ASTRewriter { std::optional elementIndex_; TranslationUnit* unit_ = nullptr; Binder binder_; + int depth_ = 0; bool restrictedToDeclarations_ = false; }; diff --git a/src/parser/cxx/ast_rewriter_declarations.cc b/src/parser/cxx/ast_rewriter_declarations.cc index dc697759..6dfa2fed 100644 --- a/src/parser/cxx/ast_rewriter_declarations.cc +++ b/src/parser/cxx/ast_rewriter_declarations.cc @@ -27,6 +27,7 @@ #include #include #include +#include namespace cxx { @@ -560,12 +561,15 @@ auto ASTRewriter::DeclarationVisitor::operator()(TemplateDeclarationAST* ast) auto _ = Binder::ScopeGuard{binder()}; - auto templateParametersSymbol = control()->newTemplateParametersSymbol( + copy->symbol = control()->newTemplateParametersSymbol( binder()->scope(), ast->symbol->location()); - copy->symbol = templateParametersSymbol; + copy->symbol->setExplicitTemplateSpecialization( + ast->symbol->isExplicitTemplateSpecialization()); - binder()->setScope(templateParametersSymbol); + copy->depth = ast->depth; + + binder()->setScope(copy->symbol); for (auto templateParameterList = ©->templateParameterList; auto node : ListView{ast->templateParameterList}) { diff --git a/src/parser/cxx/ast_rewriter_declarators.cc b/src/parser/cxx/ast_rewriter_declarators.cc index b4e28e1e..5daf79a6 100644 --- a/src/parser/cxx/ast_rewriter_declarators.cc +++ b/src/parser/cxx/ast_rewriter_declarators.cc @@ -28,6 +28,8 @@ #include #include +#include + namespace cxx { struct ASTRewriter::CoreDeclaratorVisitor { diff --git a/src/parser/cxx/ast_rewriter_expressions.cc b/src/parser/cxx/ast_rewriter_expressions.cc index d00c007d..375b9ccd 100644 --- a/src/parser/cxx/ast_rewriter_expressions.cc +++ b/src/parser/cxx/ast_rewriter_expressions.cc @@ -25,7 +25,12 @@ #include #include #include +#include +#include #include +#include + +#include namespace cxx { @@ -485,7 +490,7 @@ auto ASTRewriter::ExpressionVisitor::operator()(NestedExpressionAST* ast) auto ASTRewriter::ExpressionVisitor::operator()(IdExpressionAST* ast) -> ExpressionAST* { if (auto param = symbol_cast(ast->symbol); - param && param->depth() == 0 && + param && param->depth() == rewrite.depth_ && param->index() < rewrite.templateArguments_.size()) { auto symbolPtr = std::get_if(&rewrite.templateArguments_[param->index()]); @@ -514,10 +519,10 @@ auto ASTRewriter::ExpressionVisitor::operator()(IdExpressionAST* ast) rewrite.nestedNameSpecifier(ast->nestedNameSpecifier); copy->templateLoc = ast->templateLoc; copy->unqualifiedId = rewrite.unqualifiedId(ast->unqualifiedId); - copy->symbol = ast->symbol; + copy->isTemplateIntroduced = ast->isTemplateIntroduced; - if (auto param = symbol_cast(copy->symbol); - param && param->depth() == 0 && + if (auto param = symbol_cast(ast->symbol); + param && param->depth() == rewrite.depth_ && param->index() < rewrite.templateArguments_.size()) { auto symbolPtr = std::get_if(&rewrite.templateArguments_[param->index()]); @@ -528,8 +533,14 @@ auto ASTRewriter::ExpressionVisitor::operator()(IdExpressionAST* ast) copy->symbol = *symbolPtr; copy->type = copy->symbol->type(); + } else { + // copy->symbol = ast->symbol; + if (copy->nestedNameSpecifier) { + auto id = get_name(control(), copy->unqualifiedId); + auto resolved = Lookup(binder()->scope())(copy->nestedNameSpecifier, id); + copy->symbol = resolved; + } } - copy->isTemplateIntroduced = ast->isTemplateIntroduced; return copy; } diff --git a/src/parser/cxx/ast_rewriter_names.cc b/src/parser/cxx/ast_rewriter_names.cc index afa8d377..c073b7d8 100644 --- a/src/parser/cxx/ast_rewriter_names.cc +++ b/src/parser/cxx/ast_rewriter_names.cc @@ -27,8 +27,10 @@ #include #include #include +#include #include +#include namespace cxx { @@ -301,6 +303,13 @@ auto ASTRewriter::NestedNameSpecifierVisitor::operator()( copy->scopeLoc = ast->scopeLoc; copy->isTemplateIntroduced = ast->isTemplateIntroduced; + auto classSymbol = symbol_cast(copy->symbol); + + auto instance = ASTRewriter::instantiateClassTemplate( + translationUnit(), copy->templateId->templateArgumentList, classSymbol); + + copy->symbol = instance; + return copy; } diff --git a/src/parser/cxx/ast_rewriter_specifiers.cc b/src/parser/cxx/ast_rewriter_specifiers.cc index ae1c15e8..a13c982d 100644 --- a/src/parser/cxx/ast_rewriter_specifiers.cc +++ b/src/parser/cxx/ast_rewriter_specifiers.cc @@ -22,11 +22,13 @@ // cxx #include +#include #include #include #include #include #include +#include #include #include @@ -240,7 +242,13 @@ auto ASTRewriter::enumerator(EnumeratorAST* ast) -> EnumeratorAST* { copy->equalLoc = ast->equalLoc; copy->expression = expression(ast->expression); copy->identifier = ast->identifier; - copy->symbol = ast->symbol; + + auto interp = ASTInterpreter{unit_}; + auto value = interp.evaluate(copy->expression); + + auto type = binder().scope()->type(); + + binder_.bind(copy, type, std::move(value)); return copy; } @@ -558,13 +566,12 @@ auto ASTRewriter::SpecifierVisitor::operator()(NamedTypeSpecifierAST* ast) copy->unqualifiedId = rewrite.unqualifiedId(ast->unqualifiedId); copy->isTemplateIntroduced = ast->isTemplateIntroduced; - copy->symbol = binder()->resolve( - copy->nestedNameSpecifier, copy->unqualifiedId, /*checkTemplates=*/true); + copy->symbol = ast->symbol; if (auto typeParameter = symbol_cast(ast->symbol)) { auto paramType = type_cast(ast->symbol->type()); const auto& args = rewrite.templateArguments_; - if (paramType && paramType->depth() == 0 && + if (paramType && paramType->depth() == rewrite.depth_ && paramType->index() < args.size()) { auto index = paramType->index(); @@ -572,6 +579,13 @@ auto ASTRewriter::SpecifierVisitor::operator()(NamedTypeSpecifierAST* ast) copy->symbol = *sym; } } + } else { + // If the symbol is unresolved, we need to resolve it. + if (auto s = + binder()->resolve(copy->nestedNameSpecifier, copy->unqualifiedId, + /*checkTemplates=*/true)) { + copy->symbol = s; + } } return copy; @@ -740,6 +754,10 @@ auto ASTRewriter::SpecifierVisitor::operator()(EnumSpecifierAST* ast) copy->lbraceLoc = ast->lbraceLoc; + auto _ = Binder::ScopeGuard{binder()}; + + binder()->bind(copy, typeSpecifierListCtx); + for (auto enumeratorList = ©->enumeratorList; auto node : ListView{ast->enumeratorList}) { auto value = rewrite.enumerator(node); @@ -749,7 +767,6 @@ auto ASTRewriter::SpecifierVisitor::operator()(EnumSpecifierAST* ast) copy->commaLoc = ast->commaLoc; copy->rbraceLoc = ast->rbraceLoc; - copy->symbol = ast->symbol; return copy; } diff --git a/src/parser/cxx/ast_slot.cc b/src/parser/cxx/ast_slot.cc index a6308f33..21ecd250 100644 --- a/src/parser/cxx/ast_slot.cc +++ b/src/parser/cxx/ast_slot.cc @@ -112,6 +112,7 @@ std::string_view kMemberSlotNames[] = { "decltypeSpecifier", "defaultLoc", "deleteLoc", + "depth", "designatorList", "doLoc", "dotLoc", @@ -311,12 +312,12 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 0: // globalModuleFragment value_ = reinterpret_cast(ast->globalModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{91}; + slotNameIndex_ = SlotNameIndex{92}; break; case 1: // moduleDeclaration value_ = reinterpret_cast(ast->moduleDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{140}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -326,7 +327,7 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 3: // privateModuleFragment value_ = reinterpret_cast(ast->privateModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{164}; + slotNameIndex_ = SlotNameIndex{165}; break; } // switch @@ -348,17 +349,17 @@ void ASTSlot::visit(SimpleDeclarationAST* ast) { case 2: // initDeclaratorList value_ = reinterpret_cast(ast->initDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -385,22 +386,22 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 5: // outputOperandList value_ = reinterpret_cast(ast->outputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{161}; break; case 6: // inputOperandList value_ = reinterpret_cast(ast->inputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; case 7: // clobberList value_ = reinterpret_cast(ast->clobberList); @@ -410,22 +411,22 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 8: // gotoLabelList value_ = reinterpret_cast(ast->gotoLabelList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{94}; + slotNameIndex_ = SlotNameIndex{95}; break; case 9: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 10: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 11: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -437,37 +438,37 @@ void ASTSlot::visit(NamespaceAliasDefinitionAST* ast) { case 0: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -479,17 +480,17 @@ void ASTSlot::visit(UsingDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // usingDeclaratorList value_ = reinterpret_cast(ast->usingDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -501,17 +502,17 @@ void ASTSlot::visit(UsingEnumDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // enumTypeSpecifier value_ = reinterpret_cast(ast->enumTypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{70}; + slotNameIndex_ = SlotNameIndex{71}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -528,27 +529,27 @@ void ASTSlot::visit(UsingDirectiveAST* ast) { case 1: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 2: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -560,17 +561,17 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 0: // staticAssertLoc value_ = ast->staticAssertLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{197}; + slotNameIndex_ = SlotNameIndex{198}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -580,22 +581,22 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 5: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -607,12 +608,12 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -622,27 +623,27 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 4: // gnuAttributeList value_ = reinterpret_cast(ast->gnuAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{93}; + slotNameIndex_ = SlotNameIndex{94}; break; case 5: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -654,7 +655,7 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{69}; + slotNameIndex_ = SlotNameIndex{70}; break; case 1: // classLoc value_ = ast->classLoc.index(); @@ -669,12 +670,12 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); @@ -684,12 +685,12 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 7: // emicolonLoc value_ = ast->emicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{68}; + slotNameIndex_ = SlotNameIndex{69}; break; } // switch @@ -716,12 +717,12 @@ void ASTSlot::visit(FunctionDefinitionAST* ast) { case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 4: // functionBody value_ = reinterpret_cast(ast->functionBody); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{88}; + slotNameIndex_ = SlotNameIndex{89}; break; } // switch @@ -733,36 +734,41 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{208}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 5: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; slotNameIndex_ = SlotNameIndex{54}; break; + case 6: // depth + value_ = ast->depth; + slotKind_ = ASTSlotKind::kIntAttribute; + slotNameIndex_ = SlotNameIndex{62}; + break; } // switch - slotCount_ = 6; + slotCount_ = 7; } void ASTSlot::visit(ConceptDefinitionAST* ast) { @@ -775,27 +781,27 @@ void ASTSlot::visit(ConceptDefinitionAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -807,27 +813,27 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 0: // explicitSpecifier value_ = reinterpret_cast(ast->explicitSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{77}; + slotNameIndex_ = SlotNameIndex{78}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 3: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{162}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // arrowLoc value_ = ast->arrowLoc.index(); @@ -837,17 +843,17 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 6: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 8: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -859,12 +865,12 @@ void ASTSlot::visit(ExplicitInstantiationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // declaration value_ = reinterpret_cast(ast->declaration); @@ -881,7 +887,7 @@ void ASTSlot::visit(ExportDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // declaration value_ = reinterpret_cast(ast->declaration); @@ -898,12 +904,12 @@ void ASTSlot::visit(ExportCompoundDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -913,7 +919,7 @@ void ASTSlot::visit(ExportCompoundDeclarationAST* ast) { case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -925,17 +931,17 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 1: // stringliteralLoc value_ = ast->stringliteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{200}; + slotNameIndex_ = SlotNameIndex{201}; break; case 2: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 3: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -945,12 +951,12 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 4: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; case 5: // stringLiteral value_ = reinterpret_cast(ast->stringLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{199}; + slotNameIndex_ = SlotNameIndex{200}; break; } // switch @@ -962,12 +968,12 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 1: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -978,22 +984,22 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { value_ = reinterpret_cast(ast->nestedNamespaceSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{148}; break; case 4: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 5: // extraAttributeList value_ = reinterpret_cast(ast->extraAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{82}; + slotNameIndex_ = SlotNameIndex{83}; break; case 6: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 7: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -1003,17 +1009,17 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 8: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; case 9: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 10: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{115}; + slotNameIndex_ = SlotNameIndex{116}; break; } // switch @@ -1025,7 +1031,7 @@ void ASTSlot::visit(EmptyDeclarationAST* ast) { case 0: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1042,7 +1048,7 @@ void ASTSlot::visit(AttributeDeclarationAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1054,12 +1060,12 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 0: // importLoc value_ = ast->importLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{106}; + slotNameIndex_ = SlotNameIndex{107}; break; case 1: // importName value_ = reinterpret_cast(ast->importName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{107}; + slotNameIndex_ = SlotNameIndex{108}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1069,7 +1075,7 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1086,12 +1092,12 @@ void ASTSlot::visit(ParameterDeclarationAST* ast) { case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 3: // declarator value_ = reinterpret_cast(ast->declarator); @@ -1101,27 +1107,27 @@ void ASTSlot::visit(ParameterDeclarationAST* ast) { case 4: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 7: // isThisIntroduced value_ = std::intptr_t(ast->isThisIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; case 8: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -1167,12 +1173,12 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 2: // refQualifierLoc value_ = ast->refQualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{177}; break; case 3: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 4: // bindingList value_ = reinterpret_cast(ast->bindingList); @@ -1182,17 +1188,17 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 6: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1204,17 +1210,17 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // symbolicNameLoc value_ = ast->symbolicNameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{204}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 3: // constraintLiteralLoc value_ = ast->constraintLiteralLoc.index(); @@ -1224,22 +1230,22 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // symbolicName value_ = reinterpret_cast(ast->symbolicName); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{202}; + slotNameIndex_ = SlotNameIndex{203}; break; case 8: // constraintLiteral value_ = reinterpret_cast(ast->constraintLiteral); @@ -1256,12 +1262,12 @@ void ASTSlot::visit(AsmQualifierAST* ast) { case 0: // qualifierLoc value_ = ast->qualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{167}; + slotNameIndex_ = SlotNameIndex{168}; break; case 1: // qualifier value_ = std::intptr_t(ast->qualifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{166}; + slotNameIndex_ = SlotNameIndex{167}; break; } // switch @@ -1273,12 +1279,12 @@ void ASTSlot::visit(AsmClobberAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -1290,12 +1296,12 @@ void ASTSlot::visit(AsmGotoLabelAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1307,7 +1313,7 @@ void ASTSlot::visit(SplicerAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -1317,22 +1323,22 @@ void ASTSlot::visit(SplicerAST* ast) { case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 4: // secondColonLoc value_ = ast->secondColonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -1344,12 +1350,12 @@ void ASTSlot::visit(GlobalModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -1366,7 +1372,7 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -1376,12 +1382,12 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 2: // privateLoc value_ = ast->privateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{163}; + slotNameIndex_ = SlotNameIndex{164}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -1398,22 +1404,22 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{142}; break; case 3: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{143}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1423,7 +1429,7 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1435,17 +1441,17 @@ void ASTSlot::visit(ModuleNameAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{144}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1457,22 +1463,22 @@ void ASTSlot::visit(ModuleQualifierAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{144}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1489,7 +1495,7 @@ void ASTSlot::visit(ModulePartitionAST* ast) { case 1: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{142}; break; } // switch @@ -1501,17 +1507,17 @@ void ASTSlot::visit(ImportNameAST* ast) { case 0: // headerLoc value_ = ast->headerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{98}; + slotNameIndex_ = SlotNameIndex{99}; break; case 1: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{143}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{142}; break; } // switch @@ -1528,12 +1534,12 @@ void ASTSlot::visit(InitDeclaratorAST* ast) { case 1: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; } // switch @@ -1545,7 +1551,7 @@ void ASTSlot::visit(DeclaratorAST* ast) { case 0: // ptrOpList value_ = reinterpret_cast(ast->ptrOpList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{165}; + slotNameIndex_ = SlotNameIndex{166}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); @@ -1567,27 +1573,27 @@ void ASTSlot::visit(UsingDeclaratorAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 4: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -1599,7 +1605,7 @@ void ASTSlot::visit(EnumeratorAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1609,17 +1615,17 @@ void ASTSlot::visit(EnumeratorAST* ast) { case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1631,7 +1637,7 @@ void ASTSlot::visit(TypeIdAST* ast) { case 0: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); @@ -1653,22 +1659,22 @@ void ASTSlot::visit(HandlerAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // exceptionDeclaration value_ = reinterpret_cast(ast->exceptionDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -1685,47 +1691,47 @@ void ASTSlot::visit(BaseSpecifierAST* ast) { case 1: // virtualOrAccessLoc value_ = ast->virtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{233}; + slotNameIndex_ = SlotNameIndex{234}; break; case 2: // otherVirtualOrAccessLoc value_ = ast->otherVirtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{160}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 5: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 7: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; case 8: // isVirtual value_ = std::intptr_t(ast->isVirtual != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{125}; break; case 9: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{123}; + slotNameIndex_ = SlotNameIndex{124}; break; case 10: // accessSpecifier value_ = std::intptr_t(ast->accessSpecifier); @@ -1742,12 +1748,12 @@ void ASTSlot::visit(RequiresClauseAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{181}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -1759,7 +1765,7 @@ void ASTSlot::visit(ParameterDeclarationClauseAST* ast) { case 0: // parameterDeclarationList value_ = reinterpret_cast(ast->parameterDeclarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{163}; break; case 1: // commaLoc value_ = ast->commaLoc.index(); @@ -1769,12 +1775,12 @@ void ASTSlot::visit(ParameterDeclarationClauseAST* ast) { case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 3: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{123}; + slotNameIndex_ = SlotNameIndex{124}; break; } // switch @@ -1786,12 +1792,12 @@ void ASTSlot::visit(TrailingReturnTypeAST* ast) { case 0: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{139}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; } // switch @@ -1803,12 +1809,12 @@ void ASTSlot::visit(LambdaSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1820,32 +1826,32 @@ void ASTSlot::visit(TypeConstraintAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 3: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 4: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1857,12 +1863,12 @@ void ASTSlot::visit(AttributeArgumentClauseAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -1884,7 +1890,7 @@ void ASTSlot::visit(AttributeAST* ast) { case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; } // switch @@ -1896,7 +1902,7 @@ void ASTSlot::visit(AttributeUsingPrefixAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // attributeNamespaceLoc value_ = ast->attributeNamespaceLoc.index(); @@ -1918,17 +1924,17 @@ void ASTSlot::visit(NewPlacementAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -1940,27 +1946,27 @@ void ASTSlot::visit(NestedNamespaceSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 4: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{115}; + slotNameIndex_ = SlotNameIndex{116}; break; } // switch @@ -1972,7 +1978,7 @@ void ASTSlot::visit(LabeledStatementAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -1982,7 +1988,7 @@ void ASTSlot::visit(LabeledStatementAST* ast) { case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -1999,7 +2005,7 @@ void ASTSlot::visit(CaseStatementAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // colonLoc value_ = ast->colonLoc.index(); @@ -2033,12 +2039,12 @@ void ASTSlot::visit(ExpressionStatementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2050,17 +2056,17 @@ void ASTSlot::visit(CompoundStatementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 1: // statementList value_ = reinterpret_cast(ast->statementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{197}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -2072,7 +2078,7 @@ void ASTSlot::visit(IfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // constexprLoc value_ = ast->constexprLoc.index(); @@ -2082,12 +2088,12 @@ void ASTSlot::visit(IfStatementAST* ast) { case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 4: // condition value_ = reinterpret_cast(ast->condition); @@ -2097,22 +2103,22 @@ void ASTSlot::visit(IfStatementAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 6: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 7: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 8: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{67}; + slotNameIndex_ = SlotNameIndex{68}; break; } // switch @@ -2124,12 +2130,12 @@ void ASTSlot::visit(ConstevalIfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // exclaimLoc value_ = ast->exclaimLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{75}; + slotNameIndex_ = SlotNameIndex{76}; break; case 2: // constvalLoc value_ = ast->constvalLoc.index(); @@ -2139,22 +2145,22 @@ void ASTSlot::visit(ConstevalIfStatementAST* ast) { case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 4: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 5: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{67}; + slotNameIndex_ = SlotNameIndex{68}; break; case 6: // isNot value_ = std::intptr_t(ast->isNot != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{117}; break; } // switch @@ -2166,17 +2172,17 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 0: // switchLoc value_ = ast->switchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{202}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); @@ -2186,12 +2192,12 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -2203,12 +2209,12 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 0: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{236}; + slotNameIndex_ = SlotNameIndex{237}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // condition value_ = reinterpret_cast(ast->condition); @@ -2218,12 +2224,12 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -2235,37 +2241,37 @@ void ASTSlot::visit(DoStatementAST* ast) { case 0: // doLoc value_ = ast->doLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{63}; + slotNameIndex_ = SlotNameIndex{64}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 2: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{236}; + slotNameIndex_ = SlotNameIndex{237}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2277,22 +2283,22 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{86}; + slotNameIndex_ = SlotNameIndex{87}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 3: // rangeDeclaration value_ = reinterpret_cast(ast->rangeDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{169}; + slotNameIndex_ = SlotNameIndex{170}; break; case 4: // colonLoc value_ = ast->colonLoc.index(); @@ -2302,17 +2308,17 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 5: // rangeInitializer value_ = reinterpret_cast(ast->rangeInitializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -2324,17 +2330,17 @@ void ASTSlot::visit(ForStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{86}; + slotNameIndex_ = SlotNameIndex{87}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); @@ -2344,22 +2350,22 @@ void ASTSlot::visit(ForStatementAST* ast) { case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -2376,7 +2382,7 @@ void ASTSlot::visit(BreakStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2393,7 +2399,7 @@ void ASTSlot::visit(ContinueStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2405,17 +2411,17 @@ void ASTSlot::visit(ReturnStatementAST* ast) { case 0: // returnLoc value_ = ast->returnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{183}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2432,12 +2438,12 @@ void ASTSlot::visit(CoroutineReturnStatementAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2449,32 +2455,32 @@ void ASTSlot::visit(GotoStatementAST* ast) { case 0: // gotoLoc value_ = ast->gotoLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 5: // isIndirect value_ = std::intptr_t(ast->isIndirect != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{114}; + slotNameIndex_ = SlotNameIndex{115}; break; } // switch @@ -2498,17 +2504,17 @@ void ASTSlot::visit(TryBlockStatementAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 2: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; } // switch @@ -2520,7 +2526,7 @@ void ASTSlot::visit(GeneratedLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; } // switch @@ -2532,12 +2538,12 @@ void ASTSlot::visit(CharLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2549,12 +2555,12 @@ void ASTSlot::visit(BoolLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // isTrue value_ = std::intptr_t(ast->isTrue != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{122}; + slotNameIndex_ = SlotNameIndex{123}; break; } // switch @@ -2566,12 +2572,12 @@ void ASTSlot::visit(IntLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2583,12 +2589,12 @@ void ASTSlot::visit(FloatLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2600,12 +2606,12 @@ void ASTSlot::visit(NullptrLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = std::intptr_t(ast->literal); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2617,12 +2623,12 @@ void ASTSlot::visit(StringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2634,12 +2640,12 @@ void ASTSlot::visit(UserDefinedStringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -2651,17 +2657,17 @@ void ASTSlot::visit(ObjectLiteralExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -2678,7 +2684,7 @@ void ASTSlot::visit(ThisExpressionAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{210}; break; } // switch @@ -2690,17 +2696,17 @@ void ASTSlot::visit(GenericSelectionExpressionAST* ast) { case 0: // genericLoc value_ = ast->genericLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{90}; + slotNameIndex_ = SlotNameIndex{91}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -2710,17 +2716,17 @@ void ASTSlot::visit(GenericSelectionExpressionAST* ast) { case 4: // genericAssociationList value_ = reinterpret_cast(ast->genericAssociationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{89}; + slotNameIndex_ = SlotNameIndex{90}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 6: // matchedAssocIndex value_ = ast->matchedAssocIndex; slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{137}; break; } // switch @@ -2732,17 +2738,17 @@ void ASTSlot::visit(NestedStatementExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -2754,17 +2760,17 @@ void ASTSlot::visit(NestedExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -2776,22 +2782,22 @@ void ASTSlot::visit(IdExpressionAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -2803,7 +2809,7 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // captureDefaultLoc value_ = ast->captureDefaultLoc.index(); @@ -2818,57 +2824,57 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 4: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 5: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{208}; break; case 6: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 7: // templateRequiresClause value_ = reinterpret_cast(ast->templateRequiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{209}; break; case 8: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 9: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{162}; break; case 10: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 11: // gnuAtributeList value_ = reinterpret_cast(ast->gnuAtributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{92}; + slotNameIndex_ = SlotNameIndex{93}; break; case 12: // lambdaSpecifierList value_ = reinterpret_cast(ast->lambdaSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{125}; + slotNameIndex_ = SlotNameIndex{126}; break; case 13: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{74}; + slotNameIndex_ = SlotNameIndex{75}; break; case 14: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -2878,17 +2884,17 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 15: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{215}; break; case 16: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 17: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 18: // captureDefault value_ = std::intptr_t(ast->captureDefault); @@ -2905,47 +2911,47 @@ void ASTSlot::visit(FoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 4: // foldOpLoc value_ = ast->foldOpLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{85}; + slotNameIndex_ = SlotNameIndex{86}; break; case 5: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{184}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 8: // foldOp value_ = std::intptr_t(ast->foldOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{84}; + slotNameIndex_ = SlotNameIndex{85}; break; } // switch @@ -2957,32 +2963,32 @@ void ASTSlot::visit(RightFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -2994,32 +3000,32 @@ void ASTSlot::visit(LeftFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -3031,37 +3037,37 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{181}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{162}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 5: // requirementList value_ = reinterpret_cast(ast->requirementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 6: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -3073,17 +3079,17 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 0: // vaArgLoc value_ = ast->vaArgLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{231}; + slotNameIndex_ = SlotNameIndex{232}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -3093,12 +3099,12 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3115,17 +3121,17 @@ void ASTSlot::visit(SubscriptExpressionAST* ast) { case 1: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 2: // indexExpression value_ = reinterpret_cast(ast->indexExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{108}; + slotNameIndex_ = SlotNameIndex{109}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -3142,17 +3148,17 @@ void ASTSlot::visit(CallExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3164,22 +3170,22 @@ void ASTSlot::visit(TypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3191,7 +3197,7 @@ void ASTSlot::visit(BracedTypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 1: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -3218,12 +3224,12 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 3: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; case 4: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -3233,7 +3239,7 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -3255,17 +3261,17 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -3275,7 +3281,7 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -3292,12 +3298,12 @@ void ASTSlot::visit(PostIncrExpressionAST* ast) { case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -3314,32 +3320,32 @@ void ASTSlot::visit(CppCastExpressionAST* ast) { case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3356,12 +3362,12 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -3371,12 +3377,12 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3388,17 +3394,17 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 0: // offsetofLoc value_ = ast->offsetofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -3408,22 +3414,22 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 4: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 5: // designatorList value_ = reinterpret_cast(ast->designatorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{62}; + slotNameIndex_ = SlotNameIndex{63}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -3435,22 +3441,22 @@ void ASTSlot::visit(TypeidExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3462,22 +3468,22 @@ void ASTSlot::visit(TypeidOfTypeExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3489,7 +3495,7 @@ void ASTSlot::visit(SpliceExpressionAST* ast) { case 0: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -3506,7 +3512,7 @@ void ASTSlot::visit(GlobalScopeReflectExpressionAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -3523,12 +3529,12 @@ void ASTSlot::visit(NamespaceReflectExpressionAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -3545,7 +3551,7 @@ void ASTSlot::visit(TypeIdReflectExpressionAST* ast) { case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; } // switch @@ -3562,7 +3568,7 @@ void ASTSlot::visit(ReflectExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3579,12 +3585,12 @@ void ASTSlot::visit(LabelAddressExpressionAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -3596,17 +3602,17 @@ void ASTSlot::visit(UnaryExpressionAST* ast) { case 0: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -3623,7 +3629,7 @@ void ASTSlot::visit(AwaitExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3635,12 +3641,12 @@ void ASTSlot::visit(SizeofExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3652,22 +3658,22 @@ void ASTSlot::visit(SizeofTypeExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3679,32 +3685,32 @@ void ASTSlot::visit(SizeofPackExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 3: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -3721,17 +3727,17 @@ void ASTSlot::visit(AlignofTypeExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3748,7 +3754,7 @@ void ASTSlot::visit(AlignofExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3760,22 +3766,22 @@ void ASTSlot::visit(NoexceptExpressionAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{152}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -3787,27 +3793,27 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 1: // newLoc value_ = ast->newLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{149}; + slotNameIndex_ = SlotNameIndex{150}; break; case 2: // newPlacement value_ = reinterpret_cast(ast->newPlacement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{151}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 4: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 5: // declarator value_ = reinterpret_cast(ast->declarator); @@ -3817,12 +3823,12 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 7: // newInitalizer value_ = reinterpret_cast(ast->newInitalizer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{149}; break; } // switch @@ -3834,7 +3840,7 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); @@ -3844,17 +3850,17 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 2: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3866,22 +3872,22 @@ void ASTSlot::visit(CastExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3893,7 +3899,7 @@ void ASTSlot::visit(ImplicitCastExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3905,22 +3911,22 @@ void ASTSlot::visit(BinaryExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -3937,12 +3943,12 @@ void ASTSlot::visit(ConditionalExpressionAST* ast) { case 1: // questionLoc value_ = ast->questionLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{169}; break; case 2: // iftrueExpression value_ = reinterpret_cast(ast->iftrueExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{105}; + slotNameIndex_ = SlotNameIndex{106}; break; case 3: // colonLoc value_ = ast->colonLoc.index(); @@ -3952,7 +3958,7 @@ void ASTSlot::visit(ConditionalExpressionAST* ast) { case 4: // iffalseExpression value_ = reinterpret_cast(ast->iffalseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{104}; + slotNameIndex_ = SlotNameIndex{105}; break; } // switch @@ -3964,12 +3970,12 @@ void ASTSlot::visit(YieldExpressionAST* ast) { case 0: // yieldLoc value_ = ast->yieldLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{237}; + slotNameIndex_ = SlotNameIndex{238}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3981,12 +3987,12 @@ void ASTSlot::visit(ThrowExpressionAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{213}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -3998,22 +4004,22 @@ void ASTSlot::visit(AssignmentExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -4025,22 +4031,22 @@ void ASTSlot::visit(CompoundAssignmentExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -4052,12 +4058,12 @@ void ASTSlot::visit(PackExpansionExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; } // switch @@ -4069,12 +4075,12 @@ void ASTSlot::visit(DesignatedInitializerClauseAST* ast) { case 0: // designatorList value_ = reinterpret_cast(ast->designatorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{62}; + slotNameIndex_ = SlotNameIndex{63}; break; case 1: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; } // switch @@ -4086,22 +4092,22 @@ void ASTSlot::visit(TypeTraitExpressionAST* ast) { case 0: // typeTraitLoc value_ = ast->typeTraitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{224}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeIdList value_ = reinterpret_cast(ast->typeIdList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{219}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4128,7 +4134,7 @@ void ASTSlot::visit(ConditionExpressionAST* ast) { case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; } // switch @@ -4140,12 +4146,12 @@ void ASTSlot::visit(EqualInitializerAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -4157,12 +4163,12 @@ void ASTSlot::visit(BracedInitListAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // commaLoc value_ = ast->commaLoc.index(); @@ -4172,7 +4178,7 @@ void ASTSlot::visit(BracedInitListAST* ast) { case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -4184,17 +4190,17 @@ void ASTSlot::visit(ParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4216,7 +4222,7 @@ void ASTSlot::visit(DefaultGenericAssociationAST* ast) { case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -4228,7 +4234,7 @@ void ASTSlot::visit(TypeGenericAssociationAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -4238,7 +4244,7 @@ void ASTSlot::visit(TypeGenericAssociationAST* ast) { case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -4250,17 +4256,17 @@ void ASTSlot::visit(DotDesignatorAST* ast) { case 0: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -4272,17 +4278,17 @@ void ASTSlot::visit(SubscriptDesignatorAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -4294,27 +4300,27 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{208}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 5: // classKeyLoc value_ = ast->classKeyLoc.index(); @@ -4324,32 +4330,32 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 7: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 8: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 9: // idExpression value_ = reinterpret_cast(ast->idExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 10: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 11: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -4378,32 +4384,32 @@ void ASTSlot::visit(TypenameTypeParameterAST* ast) { case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 6: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -4415,32 +4421,32 @@ void ASTSlot::visit(ConstraintTypeParameterAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -4452,7 +4458,7 @@ void ASTSlot::visit(GeneratedTypeSpecifierAST* ast) { case 0: // typeLoc value_ = ast->typeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{220}; break; } // switch @@ -4464,7 +4470,7 @@ void ASTSlot::visit(TypedefSpecifierAST* ast) { case 0: // typedefLoc value_ = ast->typedefLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{224}; + slotNameIndex_ = SlotNameIndex{225}; break; } // switch @@ -4476,7 +4482,7 @@ void ASTSlot::visit(FriendSpecifierAST* ast) { case 0: // friendLoc value_ = ast->friendLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{87}; + slotNameIndex_ = SlotNameIndex{88}; break; } // switch @@ -4524,7 +4530,7 @@ void ASTSlot::visit(InlineSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; } // switch @@ -4536,7 +4542,7 @@ void ASTSlot::visit(NoreturnSpecifierAST* ast) { case 0: // noreturnLoc value_ = ast->noreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -4548,7 +4554,7 @@ void ASTSlot::visit(StaticSpecifierAST* ast) { case 0: // staticLoc value_ = ast->staticLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{198}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -4560,7 +4566,7 @@ void ASTSlot::visit(ExternSpecifierAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; } // switch @@ -4572,7 +4578,7 @@ void ASTSlot::visit(RegisterSpecifierAST* ast) { case 0: // registerLoc value_ = ast->registerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{178}; break; } // switch @@ -4584,7 +4590,7 @@ void ASTSlot::visit(ThreadLocalSpecifierAST* ast) { case 0: // threadLocalLoc value_ = ast->threadLocalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{212}; break; } // switch @@ -4596,7 +4602,7 @@ void ASTSlot::visit(ThreadSpecifierAST* ast) { case 0: // threadLoc value_ = ast->threadLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{211}; break; } // switch @@ -4608,7 +4614,7 @@ void ASTSlot::visit(MutableSpecifierAST* ast) { case 0: // mutableLoc value_ = ast->mutableLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{145}; break; } // switch @@ -4620,7 +4626,7 @@ void ASTSlot::visit(VirtualSpecifierAST* ast) { case 0: // virtualLoc value_ = ast->virtualLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{232}; + slotNameIndex_ = SlotNameIndex{233}; break; } // switch @@ -4632,22 +4638,22 @@ void ASTSlot::visit(ExplicitSpecifierAST* ast) { case 0: // explicitLoc value_ = ast->explicitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{76}; + slotNameIndex_ = SlotNameIndex{77}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4671,7 +4677,7 @@ void ASTSlot::visit(VoidTypeSpecifierAST* ast) { case 0: // voidLoc value_ = ast->voidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{234}; + slotNameIndex_ = SlotNameIndex{235}; break; } // switch @@ -4683,12 +4689,12 @@ void ASTSlot::visit(SizeTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4700,12 +4706,12 @@ void ASTSlot::visit(SignTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4717,12 +4723,12 @@ void ASTSlot::visit(VaListTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4734,12 +4740,12 @@ void ASTSlot::visit(IntegralTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4751,12 +4757,12 @@ void ASTSlot::visit(FloatingPointTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4780,22 +4786,22 @@ void ASTSlot::visit(NamedTypeSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -4812,17 +4818,17 @@ void ASTSlot::visit(AtomicTypeSpecifierAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4834,22 +4840,22 @@ void ASTSlot::visit(UnderlyingTypeSpecifierAST* ast) { case 0: // underlyingTypeLoc value_ = ast->underlyingTypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4871,17 +4877,17 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // classKey value_ = std::intptr_t(ast->classKey); @@ -4891,7 +4897,7 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -4908,7 +4914,7 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // autoLoc value_ = ast->autoLoc.index(); @@ -4918,7 +4924,7 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4935,17 +4941,17 @@ void ASTSlot::visit(DecltypeSpecifierAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -4957,12 +4963,12 @@ void ASTSlot::visit(PlaceholderTypeSpecifierAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 1: // specifier value_ = reinterpret_cast(ast->specifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -4986,7 +4992,7 @@ void ASTSlot::visit(VolatileQualifierAST* ast) { case 0: // volatileLoc value_ = ast->volatileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{235}; + slotNameIndex_ = SlotNameIndex{236}; break; } // switch @@ -5010,7 +5016,7 @@ void ASTSlot::visit(RestrictQualifierAST* ast) { case 0: // restrictLoc value_ = ast->restrictLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{182}; break; } // switch @@ -5022,7 +5028,7 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{69}; + slotNameIndex_ = SlotNameIndex{70}; break; case 1: // classLoc value_ = ast->classLoc.index(); @@ -5037,12 +5043,12 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); @@ -5052,17 +5058,17 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 8: // enumeratorList value_ = reinterpret_cast(ast->enumeratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 9: // commaLoc value_ = ast->commaLoc.index(); @@ -5072,7 +5078,7 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 10: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -5094,17 +5100,17 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 4: // finalLoc value_ = ast->finalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{83}; + slotNameIndex_ = SlotNameIndex{84}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); @@ -5119,7 +5125,7 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 8: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -5129,7 +5135,7 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 9: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; case 10: // classKey value_ = std::intptr_t(ast->classKey); @@ -5139,7 +5145,7 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 11: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{113}; + slotNameIndex_ = SlotNameIndex{114}; break; } // switch @@ -5151,27 +5157,27 @@ void ASTSlot::visit(TypenameSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -5183,12 +5189,12 @@ void ASTSlot::visit(SplicerTypeSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -5200,7 +5206,7 @@ void ASTSlot::visit(PointerOperatorAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5222,7 +5228,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 0: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{175}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5232,7 +5238,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 2: // refOp value_ = std::intptr_t(ast->refOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{175}; + slotNameIndex_ = SlotNameIndex{176}; break; } // switch @@ -5244,12 +5250,12 @@ void ASTSlot::visit(PtrToMemberOperatorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5271,7 +5277,7 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 0: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -5281,7 +5287,7 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 2: // sizeExpression value_ = reinterpret_cast(ast->sizeExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -5293,7 +5299,7 @@ void ASTSlot::visit(ParameterPackAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); @@ -5310,17 +5316,17 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 3: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5330,7 +5336,7 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -5342,7 +5348,7 @@ void ASTSlot::visit(NestedDeclaratorAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); @@ -5352,7 +5358,7 @@ void ASTSlot::visit(NestedDeclaratorAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5364,17 +5370,17 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{162}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); @@ -5384,12 +5390,12 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 4: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{175}; break; case 5: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{74}; + slotNameIndex_ = SlotNameIndex{75}; break; case 6: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5399,22 +5405,22 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 7: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{215}; break; case 8: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{113}; + slotNameIndex_ = SlotNameIndex{114}; break; case 9: // isOverride value_ = std::intptr_t(ast->isOverride != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{117}; + slotNameIndex_ = SlotNameIndex{118}; break; case 10: // isPure value_ = std::intptr_t(ast->isPure != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -5426,22 +5432,22 @@ void ASTSlot::visit(ArrayDeclaratorChunkAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // typeQualifierList value_ = reinterpret_cast(ast->typeQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{220}; + slotNameIndex_ = SlotNameIndex{221}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5458,12 +5464,12 @@ void ASTSlot::visit(NameIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -5475,12 +5481,12 @@ void ASTSlot::visit(DestructorIdAST* ast) { case 0: // tildeLoc value_ = ast->tildeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{214}; break; case 1: // id value_ = reinterpret_cast(ast->id); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{99}; + slotNameIndex_ = SlotNameIndex{100}; break; } // switch @@ -5504,17 +5510,17 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{159}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 2: // openLoc value_ = ast->openLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{157}; break; case 3: // closeLoc value_ = ast->closeLoc.index(); @@ -5524,7 +5530,7 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 4: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -5536,27 +5542,27 @@ void ASTSlot::visit(LiteralOperatorIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{159}; break; case 1: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -5568,12 +5574,12 @@ void ASTSlot::visit(ConversionFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{159}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; } // switch @@ -5585,27 +5591,27 @@ void ASTSlot::visit(SimpleTemplateIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -5617,22 +5623,22 @@ void ASTSlot::visit(LiteralOperatorTemplateIdAST* ast) { case 0: // literalOperatorId value_ = reinterpret_cast(ast->literalOperatorId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{134}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; } // switch @@ -5644,22 +5650,22 @@ void ASTSlot::visit(OperatorFunctionTemplateIdAST* ast) { case 0: // operatorFunctionId value_ = reinterpret_cast(ast->operatorFunctionId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{158}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; } // switch @@ -5671,7 +5677,7 @@ void ASTSlot::visit(GlobalNestedNameSpecifierAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5683,22 +5689,22 @@ void ASTSlot::visit(SimpleNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5715,7 +5721,7 @@ void ASTSlot::visit(DecltypeNestedNameSpecifierAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5727,27 +5733,27 @@ void ASTSlot::visit(TemplateNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -5759,7 +5765,7 @@ void ASTSlot::visit(DefaultFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 1: // defaultLoc value_ = ast->defaultLoc.index(); @@ -5769,7 +5775,7 @@ void ASTSlot::visit(DefaultFunctionBodyAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5786,12 +5792,12 @@ void ASTSlot::visit(CompoundStatementFunctionBodyAST* ast) { case 1: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; } // switch @@ -5803,7 +5809,7 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -5813,17 +5819,17 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 2: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{138}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 4: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; } // switch @@ -5835,7 +5841,7 @@ void ASTSlot::visit(DeleteFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); @@ -5845,7 +5851,7 @@ void ASTSlot::visit(DeleteFunctionBodyAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5857,7 +5863,7 @@ void ASTSlot::visit(TypeTemplateArgumentAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; } // switch @@ -5869,7 +5875,7 @@ void ASTSlot::visit(ExpressionTemplateArgumentAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; } // switch @@ -5881,17 +5887,17 @@ void ASTSlot::visit(ThrowExceptionSpecifierAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{213}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5903,22 +5909,22 @@ void ASTSlot::visit(NoexceptSpecifierAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{152}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5930,12 +5936,12 @@ void ASTSlot::visit(SimpleRequirementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5947,37 +5953,37 @@ void ASTSlot::visit(CompoundRequirementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; case 3: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{152}; break; case 4: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{139}; break; case 5: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5989,32 +5995,32 @@ void ASTSlot::visit(TypeRequirementAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -6026,17 +6032,17 @@ void ASTSlot::visit(NestedRequirementAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{181}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -6048,17 +6054,17 @@ void ASTSlot::visit(NewParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -6082,32 +6088,32 @@ void ASTSlot::visit(ParenMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 3: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; } // switch @@ -6119,12 +6125,12 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 2: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -6134,7 +6140,7 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; } // switch @@ -6146,7 +6152,7 @@ void ASTSlot::visit(ThisLambdaCaptureAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{210}; break; } // switch @@ -6158,12 +6164,12 @@ void ASTSlot::visit(DerefThisLambdaCaptureAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{210}; break; } // switch @@ -6175,17 +6181,17 @@ void ASTSlot::visit(SimpleLambdaCaptureAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -6202,17 +6208,17 @@ void ASTSlot::visit(RefLambdaCaptureAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -6229,22 +6235,22 @@ void ASTSlot::visit(RefInitLambdaCaptureAST* ast) { case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -6256,22 +6262,22 @@ void ASTSlot::visit(InitLambdaCaptureAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -6283,7 +6289,7 @@ void ASTSlot::visit(EllipsisExceptionDeclarationAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; } // switch @@ -6300,7 +6306,7 @@ void ASTSlot::visit(TypeExceptionDeclarationAST* ast) { case 1: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); @@ -6317,12 +6323,12 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // lbracket2Loc value_ = ast->lbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 2: // attributeUsingPrefix value_ = reinterpret_cast(ast->attributeUsingPrefix); @@ -6337,12 +6343,12 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 4: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 5: // rbracket2Loc value_ = ast->rbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; } // switch @@ -6359,22 +6365,22 @@ void ASTSlot::visit(GccAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // lparen2Loc value_ = ast->lparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{134}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // rparen2Loc value_ = ast->rparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -6391,27 +6397,27 @@ void ASTSlot::visit(AlignasAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -6428,27 +6434,27 @@ void ASTSlot::visit(AlignasTypeAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -6465,22 +6471,22 @@ void ASTSlot::visit(AsmAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{133}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -6497,12 +6503,12 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // attributeNamespace value_ = reinterpret_cast(ast->attributeNamespace); @@ -6512,7 +6518,7 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch @@ -6524,12 +6530,12 @@ void ASTSlot::visit(SimpleAttributeTokenAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; } // switch diff --git a/src/parser/cxx/binder.cc b/src/parser/cxx/binder.cc index 5b66c5d1..faca18d3 100644 --- a/src/parser/cxx/binder.cc +++ b/src/parser/cxx/binder.cc @@ -606,6 +606,8 @@ void Binder::bind(TemplateTypeParameterAST* ast, int index, int depth) { scope(), ast->templateLoc, index, depth, ast->isPack, std::move(parameters)); + symbol->setName(ast->identifier); + ast->symbol = symbol; scope()->addSymbol(symbol); diff --git a/src/parser/cxx/const_value.h b/src/parser/cxx/const_value.h index b6ebf6dc..77e69ae6 100644 --- a/src/parser/cxx/const_value.h +++ b/src/parser/cxx/const_value.h @@ -28,7 +28,7 @@ namespace cxx { -using ConstValue = std::variant; +using ConstValue = std::variant; } // namespace cxx \ No newline at end of file diff --git a/src/parser/cxx/parser.cc b/src/parser/cxx/parser.cc index 71e2b2a6..06fd1836 100644 --- a/src/parser/cxx/parser.cc +++ b/src/parser/cxx/parser.cc @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -289,6 +290,11 @@ void Parser::parse_error(SourceLocation loc, std::string message) { unit->error(loc, std::move(message)); } +void Parser::type_error(SourceLocation loc, std::string message) { + if (!config().checkTypes) return; + unit->error(loc, std::move(message)); +} + void Parser::warning(std::string message) { warning(currentLocation(), std::move(message)); } @@ -712,8 +718,6 @@ auto Parser::parse_primary_expression(ExpressionAST*& yyast, } auto Parser::parse_splicer(SplicerAST*& yyast) -> bool { - if (!config().reflect) return false; - if (!lookat(TokenKind::T_LBRACKET, TokenKind::T_COLON)) return false; auto ast = make_node(pool_); @@ -732,8 +736,6 @@ auto Parser::parse_splicer(SplicerAST*& yyast) -> bool { auto Parser::parse_splicer_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool { - if (!config().reflect) return false; - SplicerAST* splicer = nullptr; if (!parse_splicer(splicer)) return false; auto ast = make_node(pool_); @@ -744,8 +746,6 @@ auto Parser::parse_splicer_expression(ExpressionAST*& yyast, auto Parser::parse_reflect_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool { - if (!config().reflect) return false; - SourceLocation caretLoc; if (!match(TokenKind::T_CARET, caretLoc)) return false; @@ -1055,18 +1055,13 @@ auto Parser::parse_template_nested_name_specifier( auto instance = ASTRewriter::instantiateClassTemplate( unit, templateId->templateArgumentList, classSymbol); - templateId->symbol = instance; ast->symbol = instance; } else if (auto typeAliasSymbol = symbol_cast(templateId->symbol)) { auto instance = ASTRewriter::instantiateTypeAliasTemplate( unit, templateId->templateArgumentList, typeAliasSymbol); - templateId->symbol = instance; - - if (auto classType = type_cast(instance->type())) { - ast->symbol = classType->symbol(); - } + ast->symbol = symbol_cast(instance); } } @@ -8821,20 +8816,23 @@ auto Parser::parse_template_declaration(TemplateDeclarationAST*& yyast, auto ast = make_node(pool_); yyast = ast; - if (!templateHead) templateHead = ast; - - auto templateParametersSymbol = - control_->newTemplateParametersSymbol(scope(), {}); - ast->symbol = templateParametersSymbol; + ast->depth = templateParameterDepth_; - setScope(ast->symbol); + if (!templateHead) templateHead = ast; expect(TokenKind::T_TEMPLATE, ast->templateLoc); expect(TokenKind::T_LESS, ast->lessLoc); + ast->symbol = + control_->newTemplateParametersSymbol(scope(), ast->templateLoc); + + setScope(ast->symbol); + if (!match(TokenKind::T_GREATER, ast->greaterLoc)) { parse_template_parameter_list(ast->templateParameterList); expect(TokenKind::T_GREATER, ast->greaterLoc); + } else { + ast->symbol->setExplicitTemplateSpecialization(true); } (void)parse_requires_clause(ast->requiresClause); @@ -9550,7 +9548,6 @@ auto Parser::parse_concept_definition(DeclarationAST*& yyast) -> bool { auto Parser::parse_splicer_specifier(SpecifierAST*& yyast, DeclSpecs& specs) -> bool { - if (!config().reflect) return false; if (specs.hasTypeOrSizeSpecifier()) return false; LookaheadParser lookahead{this}; SourceLocation typenameLoc; @@ -9655,13 +9652,57 @@ auto Parser::parse_explicit_instantiation(DeclarationAST*& yyast) -> bool { auto elabSpec = ast_cast( simpleDecl->declSpecifierList->value); - if (!elabSpec) return; + if (!elabSpec) { + type_error(currentLocation(), "expected an elaborated type specifier"); + return; + } + + if (elabSpec->nestedNameSpecifier) { + auto templateId = ast_cast(elabSpec->unqualifiedId); + if (!templateId) { + type_error(elabSpec->unqualifiedId->firstSourceLocation(), + "expected a template id"); + return; + } + + auto candidate = Lookup{scope()}.qualifiedLookup( + elabSpec->nestedNameSpecifier->symbol, templateId->identifier); + + if (!is_template(candidate)) { + type_error(elabSpec->unqualifiedId->firstSourceLocation(), + std::format("expected a template")); + return; + } + + auto classSymbol = symbol_cast(candidate); + if (!classSymbol) { + type_error( + elabSpec->unqualifiedId->firstSourceLocation(), + std::format("expected a class template, got '{}'", + to_string(candidate->type(), candidate->name()))); + return; + } + + auto instance = ASTRewriter::instantiateClassTemplate( + unit, templateId->templateArgumentList, classSymbol); + + return; + } auto templateId = ast_cast(elabSpec->unqualifiedId); - if (!templateId) return; + if (!templateId) { + type_error(elabSpec->unqualifiedId->firstSourceLocation(), + "expected a template id"); + return; + } auto classSymbol = symbol_cast(templateId->symbol); - if (!classSymbol) return; + if (!classSymbol) { + type_error( + templateId->identifierLoc, + "explicit instantiation of this template is not yet supported"); + return; + } auto instance = ASTRewriter::instantiateClassTemplate( unit, templateId->templateArgumentList, classSymbol); diff --git a/src/parser/cxx/parser.h b/src/parser/cxx/parser.h index 9cfdfbcd..418c16d1 100644 --- a/src/parser/cxx/parser.h +++ b/src/parser/cxx/parser.h @@ -134,6 +134,7 @@ class Parser final { void parse_warn(SourceLocation loc, std::string message); void parse_error(std::string message); void parse_error(SourceLocation loc, std::string message); + void type_error(SourceLocation loc, std::string message); // generate diagnostic messages regardless of the current parsing state void warning(std::string message); diff --git a/src/parser/cxx/parser_fwd.h b/src/parser/cxx/parser_fwd.h index b6d5c877..90a9b597 100644 --- a/src/parser/cxx/parser_fwd.h +++ b/src/parser/cxx/parser_fwd.h @@ -47,8 +47,6 @@ using CodeCompletionContext = struct ParserConfiguration { bool checkTypes = false; bool fuzzyTemplateResolution = false; - bool templateInstantiation = true; - bool reflect = true; std::function stopParsingPredicate; std::function complete; }; diff --git a/src/parser/cxx/symbol_printer.cc b/src/parser/cxx/symbol_printer.cc index e0d69845..1556846e 100644 --- a/src/parser/cxx/symbol_printer.cc +++ b/src/parser/cxx/symbol_printer.cc @@ -102,7 +102,16 @@ struct DumpSymbols { out << '<'; std::string_view sep = ""; for (const auto& param : views::members(symbol->templateParameters())) { - out << std::format("{}{}", sep, to_string(param->type())); + if (auto cstParam = symbol_cast(param)) { + out << std::format("{}{}", sep, to_string(cstParam->objectType())); + } else if (symbol_cast(param)) { + out << std::format("{}{}", sep, to_string(param->type())); + } else if (symbol_cast(param)) { + out << std::format("{}{}", sep, to_string(param->type())); + } else { + out << std::format("{}{}", sep, to_string(param->type())); + } + if (param->isParameterPack()) out << "..."; sep = ", "; } out << '>'; @@ -117,7 +126,15 @@ struct DumpSymbols { for (auto arg : symbol->templateArguments()) { auto symbol = std::get_if(&arg); if (!symbol) continue; - out << std::format("{}{}", sep, to_string((*symbol)->type())); + auto sym = *symbol; + if (sym->isTypeAlias()) { + out << std::format("{}{}", sep, to_string(sym->type())); + } else if (auto var = symbol_cast(sym)) { + auto cst = std::get(var->constValue().value()); + out << std::format("{}{}", sep, cst); + } else { + cxx_runtime_error("todo"); + } sep = ", "; } out << std::format(">\n"); @@ -318,7 +335,7 @@ struct DumpSymbols { void operator()(NonTypeParameterSymbol* symbol) { std::string_view pack = symbol->isParameterPack() ? "..." : ""; indent(); - out << std::format("parameter object<{}, {}, {}>{} {}\n", symbol->index(), + out << std::format("parameter constant<{}, {}, {}>{} {}\n", symbol->index(), symbol->depth(), to_string(symbol->objectType()), pack, to_string(symbol->name())); } diff --git a/src/parser/cxx/symbols.cc b/src/parser/cxx/symbols.cc index 2c9e9e2f..93d0082f 100644 --- a/src/parser/cxx/symbols.cc +++ b/src/parser/cxx/symbols.cc @@ -45,6 +45,14 @@ auto compare_args(const std::vector& args1, // If either is not a symbol, we cannot compare them return false; } + auto var = symbol_cast(*sym); + auto otherVar = symbol_cast(*otherSym); + if (var && otherVar) { + auto cst = std::get(var->constValue().value()); + auto otherCst = std::get(otherVar->constValue().value()); + if (cst != otherCst) return false; + continue; + } auto symType = (*sym)->type(); auto otherSymType = (*otherSym)->type(); if (symType != otherSymType) { @@ -688,6 +696,16 @@ TemplateParametersSymbol::TemplateParametersSymbol(ScopeSymbol* enclosingScope) TemplateParametersSymbol::~TemplateParametersSymbol() {} +auto TemplateParametersSymbol::isExplicitTemplateSpecialization() const + -> bool { + return isExplicitTemplateSpecialization_; +} + +void TemplateParametersSymbol::setExplicitTemplateSpecialization( + bool isExplicit) { + isExplicitTemplateSpecialization_ = isExplicit; +} + BlockSymbol::BlockSymbol(ScopeSymbol* enclosingScope) : ScopeSymbol(Kind, enclosingScope) {} diff --git a/src/parser/cxx/symbols.h b/src/parser/cxx/symbols.h index a09b86c9..703a3efb 100644 --- a/src/parser/cxx/symbols.h +++ b/src/parser/cxx/symbols.h @@ -537,6 +537,12 @@ class TemplateParametersSymbol final : public ScopeSymbol { explicit TemplateParametersSymbol(ScopeSymbol* enclosingScope); ~TemplateParametersSymbol() override; + + [[nodiscard]] auto isExplicitTemplateSpecialization() const -> bool; + void setExplicitTemplateSpecialization(bool isExplicit); + + private: + bool isExplicitTemplateSpecialization_ = false; }; class BlockSymbol final : public ScopeSymbol { diff --git a/src/parser/cxx/type_printer.cc b/src/parser/cxx/type_printer.cc index d57433c3..48a815c7 100644 --- a/src/parser/cxx/type_printer.cc +++ b/src/parser/cxx/type_printer.cc @@ -354,15 +354,15 @@ class TypePrinter { } void operator()(const TypeParameterType* type) { - specifiers_.append(std::format("type-param<{}, {}{}>", type->index(), + specifiers_.append(std::format("type-param<{}, {}>{}", type->index(), type->depth(), - type->isParameterPack() ? ", ..." : "")); + type->isParameterPack() ? "..." : "")); } void operator()(const TemplateTypeParameterType* type) { - specifiers_.append(std::format("template-type-param<{}, {}{}>", + specifiers_.append(std::format("template-type-param<{}, {}>{}", type->index(), type->depth(), - type->isParameterPack() ? ", ..." : "")); + type->isParameterPack() ? "..." : "")); } void operator()(const UnresolvedNameType* type) { diff --git a/tests/unit_tests/ast/constrained_template_parameter_01.cc b/tests/unit_tests/ast/constrained_template_parameter_01.cc index 20d5fafd..03130fd7 100644 --- a/tests/unit_tests/ast/constrained_template_parameter_01.cc +++ b/tests/unit_tests/ast/constrained_template_parameter_01.cc @@ -14,6 +14,7 @@ constexpr auto ident_v = ident::value; // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 @@ -24,6 +25,7 @@ constexpr auto ident_v = ident::value; // CHECK-NEXT: expression: bool-literal-expression [prvalue bool] // CHECK-NEXT: is-true: true // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: non-type-template-parameter // CHECK-NEXT: depth: 0 @@ -62,6 +64,7 @@ constexpr auto ident_v = ident::value; // CHECK-NEXT: unqualified-id: name-id // CHECK-NEXT: identifier: x // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: non-type-template-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/deduce_this_01.cc b/tests/unit_tests/ast/deduce_this_01.cc index 69dbc0fc..d88dc571 100644 --- a/tests/unit_tests/ast/deduce_this_01.cc +++ b/tests/unit_tests/ast/deduce_this_01.cc @@ -11,6 +11,7 @@ struct object { // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/deduction_guide_01.cc b/tests/unit_tests/ast/deduction_guide_01.cc index a24bfffb..ca169755 100644 --- a/tests/unit_tests/ast/deduction_guide_01.cc +++ b/tests/unit_tests/ast/deduction_guide_01.cc @@ -11,6 +11,7 @@ List(int) -> List; // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/deduction_guide_02.cc b/tests/unit_tests/ast/deduction_guide_02.cc index 6ccfcaba..3652dd27 100644 --- a/tests/unit_tests/ast/deduction_guide_02.cc +++ b/tests/unit_tests/ast/deduction_guide_02.cc @@ -19,6 +19,7 @@ struct List { // CHECK-NEXT: identifier: List // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/nested_templates_01.cc b/tests/unit_tests/ast/nested_templates_01.cc index 6f035a06..613447be 100644 --- a/tests/unit_tests/ast/nested_templates_01.cc +++ b/tests/unit_tests/ast/nested_templates_01.cc @@ -12,6 +12,7 @@ class List { // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 @@ -29,6 +30,7 @@ class List { // CHECK-NEXT: identifier: List // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 1 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 1 diff --git a/tests/unit_tests/ast/new_expression_01.cc b/tests/unit_tests/ast/new_expression_01.cc index 2a85c5c2..aa3c28d5 100644 --- a/tests/unit_tests/ast/new_expression_01.cc +++ b/tests/unit_tests/ast/new_expression_01.cc @@ -10,6 +10,7 @@ auto make(void* where, T init) { // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/template_lambda_01.cc b/tests/unit_tests/ast/template_lambda_01.cc index e3ebeadc..c61858f0 100644 --- a/tests/unit_tests/ast/template_lambda_01.cc +++ b/tests/unit_tests/ast/template_lambda_01.cc @@ -11,6 +11,7 @@ struct S { // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/template_member_expression_01.cc b/tests/unit_tests/ast/template_member_expression_01.cc index c0be47ed..01c9fb97 100644 --- a/tests/unit_tests/ast/template_member_expression_01.cc +++ b/tests/unit_tests/ast/template_member_expression_01.cc @@ -20,6 +20,7 @@ auto copy(Allocator &A) -> void * { return A.template Allocate(128); } // CHECK-NEXT: identifier: Allocator // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/template_nested_name_specifier_01.cc b/tests/unit_tests/ast/template_nested_name_specifier_01.cc index 80957564..c583dcae 100644 --- a/tests/unit_tests/ast/template_nested_name_specifier_01.cc +++ b/tests/unit_tests/ast/template_nested_name_specifier_01.cc @@ -21,6 +21,7 @@ void set(typename HelperT::template Lookup::PointerT p); // CHECK-NEXT: identifier: HelperT // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 @@ -44,6 +45,7 @@ void set(typename HelperT::template Lookup::PointerT p); // CHECK-NEXT: ptr-op-list // CHECK-NEXT: pointer-operator // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: non-type-template-parameter // CHECK-NEXT: depth: 0 diff --git a/tests/unit_tests/ast/template_type_parameter_01.cc b/tests/unit_tests/ast/template_type_parameter_01.cc index 5217757a..1086cf45 100644 --- a/tests/unit_tests/ast/template_type_parameter_01.cc +++ b/tests/unit_tests/ast/template_type_parameter_01.cc @@ -10,6 +10,7 @@ struct S { // CHECK:translation-unit // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 0 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 0 @@ -32,6 +33,7 @@ struct S { // CHECK-NEXT: identifier: S // CHECK-NEXT: declaration-list // CHECK-NEXT: template-declaration +// CHECK-NEXT: depth: 1 // CHECK-NEXT: template-parameter-list // CHECK-NEXT: typename-type-parameter // CHECK-NEXT: depth: 1