diff --git a/packages/cxx-frontend/src/ASTSlot.ts b/packages/cxx-frontend/src/ASTSlot.ts index f78b2c09..e119bdea 100644 --- a/packages/cxx-frontend/src/ASTSlot.ts +++ b/packages/cxx-frontend/src/ASTSlot.ts @@ -156,105 +156,106 @@ export enum ASTSlot { literalOperatorId = 133, lparen2Loc = 134, lparenLoc = 135, - memInitializerList = 136, - minusGreaterLoc = 137, - moduleDeclaration = 138, - moduleLoc = 139, - moduleName = 140, - modulePartition = 141, - moduleQualifier = 142, - mutableLoc = 143, - namespaceLoc = 144, - nestedNameSpecifier = 145, - nestedNamespaceSpecifierList = 146, - newInitalizer = 147, - newLoc = 148, - newPlacement = 149, - noexceptLoc = 150, - noreturnLoc = 151, - offsetofLoc = 152, - op = 153, - opLoc = 154, - openLoc = 155, - operatorFunctionId = 156, - operatorLoc = 157, - otherVirtualOrAccessLoc = 158, - outputOperandList = 159, - parameterDeclarationClause = 160, - parameterDeclarationList = 161, - privateLoc = 162, - privateModuleFragment = 163, - ptrOpList = 164, - qualifier = 165, - qualifierLoc = 166, - questionLoc = 167, - rangeDeclaration = 168, - rangeInitializer = 169, - rbraceLoc = 170, - rbracket2Loc = 171, - rbracketLoc = 172, - refLoc = 173, - refOp = 174, - refQualifierLoc = 175, - registerLoc = 176, - requirementList = 177, - requiresClause = 178, - requiresLoc = 179, - restrictLoc = 180, - returnLoc = 181, - rightExpression = 182, - rparen2Loc = 183, - rparenLoc = 184, - scopeLoc = 185, - secondColonLoc = 186, - semicolonLoc = 187, - sizeExpression = 188, - sizeofLoc = 189, - specifier = 190, - specifierLoc = 191, - splicer = 192, - starLoc = 193, - statement = 194, - statementList = 195, - staticAssertLoc = 196, - staticLoc = 197, - stringLiteral = 198, - stringliteralLoc = 199, - switchLoc = 200, - symbolicName = 201, - symbolicNameLoc = 202, - templateArgumentList = 203, - templateId = 204, - templateLoc = 205, - templateParameterList = 206, - templateRequiresClause = 207, - thisLoc = 208, - threadLoc = 209, - threadLocalLoc = 210, - throwLoc = 211, - tildeLoc = 212, - trailingReturnType = 213, - tryLoc = 214, - typeConstraint = 215, - typeId = 216, - typeIdList = 217, - typeLoc = 218, - typeQualifierList = 219, - typeSpecifier = 220, - typeSpecifierList = 221, - typeTraitLoc = 222, - typedefLoc = 223, - typeidLoc = 224, - typenameLoc = 225, - underlyingTypeLoc = 226, - unqualifiedId = 227, - usingDeclaratorList = 228, - usingLoc = 229, - vaArgLoc = 230, - virtualLoc = 231, - virtualOrAccessLoc = 232, - voidLoc = 233, - volatileLoc = 234, - whileLoc = 235, - yieldLoc = 236, + 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, } diff --git a/packages/cxx-gen-ast/src/tokens.ts b/packages/cxx-gen-ast/src/tokens.ts index b026e8a3..3ea2ded7 100644 --- a/packages/cxx-gen-ast/src/tokens.ts +++ b/packages/cxx-gen-ast/src/tokens.ts @@ -197,6 +197,7 @@ export const CXX_KEYWORDS: string[] = [ "__underlying_type", "_Atomic", "_Complex", + "_Generic", ]; export const BUILTIN_TYPE_TRAITS: string[] = [ diff --git a/src/parser/cxx/ast.h b/src/parser/cxx/ast.h index 36cdff79..6b0d10dc 100644 --- a/src/parser/cxx/ast.h +++ b/src/parser/cxx/ast.h @@ -1344,6 +1344,7 @@ class GenericSelectionExpressionAST final : public ExpressionAST { SourceLocation commaLoc; List* genericAssociationList = nullptr; SourceLocation rparenLoc; + int matchedAssocIndex = -1; void accept(ASTVisitor* visitor) override { visitor->visit(this); } diff --git a/src/parser/cxx/ast_interpreter.cc b/src/parser/cxx/ast_interpreter.cc index 95b1edf8..73fee467 100644 --- a/src/parser/cxx/ast_interpreter.cc +++ b/src/parser/cxx/ast_interpreter.cc @@ -1646,6 +1646,26 @@ auto ASTInterpreter::ExpressionVisitor::operator()(ThisExpressionAST* ast) auto ASTInterpreter::ExpressionVisitor::operator()( GenericSelectionExpressionAST* ast) -> ExpressionResult { + if (ast->matchedAssocIndex == -1) return std::nullopt; + + GenericAssociationAST* assoc = nullptr; + int index = 0; + for (auto assocNode : ListView{ast->genericAssociationList}) { + if (index == ast->matchedAssocIndex) { + assoc = assocNode; + break; + } + ++index; + } + + if (auto def = ast_cast(assoc)) { + return accept(def->expression); + } + + if (auto entry = ast_cast(assoc)) { + return accept(entry->expression); + } + return std::nullopt; } diff --git a/src/parser/cxx/ast_printer.cc b/src/parser/cxx/ast_printer.cc index 3c17ade6..952cc210 100644 --- a/src/parser/cxx/ast_printer.cc +++ b/src/parser/cxx/ast_printer.cc @@ -854,6 +854,10 @@ void ASTPrinter::visit(GenericSelectionExpressionAST* ast) { to_string(ast->type)); } out_ << "\n"; + ++indent_; + out_ << std::format("{:{}}", "", indent_ * 2); + out_ << std::format("matched-assoc-index: {}\n", ast->matchedAssocIndex); + --indent_; accept(ast->expression, "expression"); if (ast->genericAssociationList) { ++indent_; diff --git a/src/parser/cxx/ast_rewriter.cc b/src/parser/cxx/ast_rewriter.cc index 2a630ba3..e3a90279 100644 --- a/src/parser/cxx/ast_rewriter.cc +++ b/src/parser/cxx/ast_rewriter.cc @@ -2489,6 +2489,7 @@ auto ASTRewriter::ExpressionVisitor::operator()( } copy->rparenLoc = ast->rparenLoc; + copy->matchedAssocIndex = ast->matchedAssocIndex; return copy; } diff --git a/src/parser/cxx/ast_slot.cc b/src/parser/cxx/ast_slot.cc index b4df2fae..4785bfe2 100644 --- a/src/parser/cxx/ast_slot.cc +++ b/src/parser/cxx/ast_slot.cc @@ -186,6 +186,7 @@ std::string_view kMemberSlotNames[] = { "literalOperatorId", "lparen2Loc", "lparenLoc", + "matchedAssocIndex", "memInitializerList", "minusGreaterLoc", "moduleDeclaration", @@ -315,7 +316,7 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 1: // moduleDeclaration value_ = reinterpret_cast(ast->moduleDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{139}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -325,7 +326,7 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 3: // privateModuleFragment value_ = reinterpret_cast(ast->privateModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{163}; + slotNameIndex_ = SlotNameIndex{164}; break; } // switch @@ -352,12 +353,12 @@ void ASTSlot::visit(SimpleDeclarationAST* ast) { case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -394,7 +395,7 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 5: // outputOperandList value_ = reinterpret_cast(ast->outputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{160}; break; case 6: // inputOperandList value_ = reinterpret_cast(ast->inputOperandList); @@ -414,12 +415,12 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 9: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 10: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 11: // literal value_ = reinterpret_cast(ast->literal); @@ -436,7 +437,7 @@ void ASTSlot::visit(NamespaceAliasDefinitionAST* ast) { case 0: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -451,17 +452,17 @@ void ASTSlot::visit(NamespaceAliasDefinitionAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); @@ -478,17 +479,17 @@ void ASTSlot::visit(UsingDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // usingDeclaratorList value_ = reinterpret_cast(ast->usingDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{229}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -500,7 +501,7 @@ void ASTSlot::visit(UsingEnumDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // enumTypeSpecifier value_ = reinterpret_cast(ast->enumTypeSpecifier); @@ -510,7 +511,7 @@ void ASTSlot::visit(UsingEnumDeclarationAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -527,27 +528,27 @@ void ASTSlot::visit(UsingDirectiveAST* ast) { case 1: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 2: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{145}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -559,7 +560,7 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 0: // staticAssertLoc value_ = ast->staticAssertLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{197}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -589,12 +590,12 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -606,7 +607,7 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -631,12 +632,12 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 5: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); @@ -668,12 +669,12 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); @@ -683,7 +684,7 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 7: // emicolonLoc value_ = ast->emicolonLoc.index(); @@ -715,7 +716,7 @@ void ASTSlot::visit(FunctionDefinitionAST* ast) { case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 4: // functionBody value_ = reinterpret_cast(ast->functionBody); @@ -732,7 +733,7 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); @@ -742,7 +743,7 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -752,7 +753,7 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 5: // declaration value_ = reinterpret_cast(ast->declaration); @@ -789,7 +790,7 @@ void ASTSlot::visit(ConceptDefinitionAST* ast) { case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); @@ -821,12 +822,12 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 3: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{161}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // arrowLoc value_ = ast->arrowLoc.index(); @@ -836,12 +837,12 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 6: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 8: // identifier value_ = reinterpret_cast(ast->identifier); @@ -863,7 +864,7 @@ void ASTSlot::visit(ExplicitInstantiationAST* ast) { case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 2: // declaration value_ = reinterpret_cast(ast->declaration); @@ -912,7 +913,7 @@ void ASTSlot::visit(ExportCompoundDeclarationAST* ast) { case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -929,7 +930,7 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 1: // stringliteralLoc value_ = ast->stringliteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{199}; + slotNameIndex_ = SlotNameIndex{200}; break; case 2: // lbraceLoc value_ = ast->lbraceLoc.index(); @@ -944,12 +945,12 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 4: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; case 5: // stringLiteral value_ = reinterpret_cast(ast->stringLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{198}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -966,7 +967,7 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 1: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{145}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -977,7 +978,7 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { value_ = reinterpret_cast(ast->nestedNamespaceSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{147}; break; case 4: // identifierLoc value_ = ast->identifierLoc.index(); @@ -1002,7 +1003,7 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 8: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; case 9: // identifier value_ = reinterpret_cast(ast->identifier); @@ -1024,7 +1025,7 @@ void ASTSlot::visit(EmptyDeclarationAST* ast) { case 0: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1041,7 +1042,7 @@ void ASTSlot::visit(AttributeDeclarationAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1068,7 +1069,7 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1085,12 +1086,12 @@ void ASTSlot::visit(ParameterDeclarationAST* ast) { case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{209}; break; case 2: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 3: // declarator value_ = reinterpret_cast(ast->declarator); @@ -1166,7 +1167,7 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 2: // refQualifierLoc value_ = ast->refQualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{175}; + slotNameIndex_ = SlotNameIndex{176}; break; case 3: // lbracketLoc value_ = ast->lbracketLoc.index(); @@ -1181,7 +1182,7 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 6: // initializer value_ = reinterpret_cast(ast->initializer); @@ -1191,7 +1192,7 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1208,12 +1209,12 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 1: // symbolicNameLoc value_ = ast->symbolicNameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{202}; + slotNameIndex_ = SlotNameIndex{203}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 3: // constraintLiteralLoc value_ = ast->constraintLiteralLoc.index(); @@ -1233,12 +1234,12 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // symbolicName value_ = reinterpret_cast(ast->symbolicName); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{202}; break; case 8: // constraintLiteral value_ = reinterpret_cast(ast->constraintLiteral); @@ -1255,12 +1256,12 @@ void ASTSlot::visit(AsmQualifierAST* ast) { case 0: // qualifierLoc value_ = ast->qualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{166}; + slotNameIndex_ = SlotNameIndex{167}; break; case 1: // qualifier value_ = std::intptr_t(ast->qualifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{165}; + slotNameIndex_ = SlotNameIndex{166}; break; } // switch @@ -1372,7 +1373,7 @@ void ASTSlot::visit(ExpressionStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1389,12 +1390,12 @@ void ASTSlot::visit(CompoundStatementAST* ast) { case 1: // statementList value_ = reinterpret_cast(ast->statementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{196}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -1431,12 +1432,12 @@ void ASTSlot::visit(IfStatementAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 6: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 7: // elseLoc value_ = ast->elseLoc.index(); @@ -1473,7 +1474,7 @@ void ASTSlot::visit(ConstevalIfStatementAST* ast) { case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 4: // elseLoc value_ = ast->elseLoc.index(); @@ -1500,7 +1501,7 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 0: // switchLoc value_ = ast->switchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{200}; + slotNameIndex_ = SlotNameIndex{201}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -1520,12 +1521,12 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -1537,7 +1538,7 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 0: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{235}; + slotNameIndex_ = SlotNameIndex{236}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -1552,12 +1553,12 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -1574,12 +1575,12 @@ void ASTSlot::visit(DoStatementAST* ast) { case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{235}; + slotNameIndex_ = SlotNameIndex{236}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); @@ -1594,12 +1595,12 @@ void ASTSlot::visit(DoStatementAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1626,7 +1627,7 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 3: // rangeDeclaration value_ = reinterpret_cast(ast->rangeDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{169}; break; case 4: // colonLoc value_ = ast->colonLoc.index(); @@ -1636,17 +1637,17 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 5: // rangeInitializer value_ = reinterpret_cast(ast->rangeInitializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{169}; + slotNameIndex_ = SlotNameIndex{170}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -1678,7 +1679,7 @@ void ASTSlot::visit(ForStatementAST* ast) { case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); @@ -1688,12 +1689,12 @@ void ASTSlot::visit(ForStatementAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -1710,7 +1711,7 @@ void ASTSlot::visit(BreakStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1727,7 +1728,7 @@ void ASTSlot::visit(ContinueStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1739,7 +1740,7 @@ void ASTSlot::visit(ReturnStatementAST* ast) { case 0: // returnLoc value_ = ast->returnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{182}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -1749,7 +1750,7 @@ void ASTSlot::visit(ReturnStatementAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1771,7 +1772,7 @@ void ASTSlot::visit(CoroutineReturnStatementAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -1788,7 +1789,7 @@ void ASTSlot::visit(GotoStatementAST* ast) { case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); @@ -1798,7 +1799,7 @@ void ASTSlot::visit(GotoStatementAST* ast) { case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); @@ -1832,12 +1833,12 @@ void ASTSlot::visit(TryBlockStatementAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{215}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // handlerList value_ = reinterpret_cast(ast->handlerList); @@ -1990,12 +1991,12 @@ void ASTSlot::visit(ObjectLiteralExpressionAST* ast) { case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 3: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -2012,7 +2013,7 @@ void ASTSlot::visit(ThisExpressionAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{209}; break; } // switch @@ -2049,11 +2050,16 @@ void ASTSlot::visit(GenericSelectionExpressionAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; + break; + case 6: // matchedAssocIndex + value_ = ast->matchedAssocIndex; + slotKind_ = ASTSlotKind::kIntAttribute; + slotNameIndex_ = SlotNameIndex{136}; break; } // switch - slotCount_ = 6; + slotCount_ = 7; } void ASTSlot::visit(NestedStatementExpressionAST* ast) { @@ -2066,12 +2072,12 @@ void ASTSlot::visit(NestedStatementExpressionAST* ast) { case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2093,7 +2099,7 @@ void ASTSlot::visit(NestedExpressionAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2105,17 +2111,17 @@ void ASTSlot::visit(IdExpressionAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); @@ -2147,7 +2153,7 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 4: // lessLoc value_ = ast->lessLoc.index(); @@ -2157,7 +2163,7 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 5: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 6: // greaterLoc value_ = ast->greaterLoc.index(); @@ -2167,7 +2173,7 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 7: // templateRequiresClause value_ = reinterpret_cast(ast->templateRequiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{208}; break; case 8: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2177,12 +2183,12 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 9: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{161}; break; case 10: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 11: // gnuAtributeList value_ = reinterpret_cast(ast->gnuAtributeList); @@ -2207,17 +2213,17 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 15: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{214}; break; case 16: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 17: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 18: // captureDefault value_ = std::intptr_t(ast->captureDefault); @@ -2244,7 +2250,7 @@ void ASTSlot::visit(FoldExpressionAST* ast) { case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -2259,17 +2265,17 @@ void ASTSlot::visit(FoldExpressionAST* ast) { case 5: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{183}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; case 8: // foldOp value_ = std::intptr_t(ast->foldOp); @@ -2296,7 +2302,7 @@ void ASTSlot::visit(RightFoldExpressionAST* ast) { case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -2306,12 +2312,12 @@ void ASTSlot::visit(RightFoldExpressionAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -2333,7 +2339,7 @@ void ASTSlot::visit(LeftFoldExpressionAST* ast) { case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); @@ -2343,12 +2349,12 @@ void ASTSlot::visit(LeftFoldExpressionAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -2360,7 +2366,7 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2370,12 +2376,12 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 2: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{161}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // lbraceLoc value_ = ast->lbraceLoc.index(); @@ -2385,12 +2391,12 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 5: // requirementList value_ = reinterpret_cast(ast->requirementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{178}; break; case 6: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -2402,7 +2408,7 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 0: // vaArgLoc value_ = ast->vaArgLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2422,12 +2428,12 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2454,7 +2460,7 @@ void ASTSlot::visit(SubscriptExpressionAST* ast) { case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; } // switch @@ -2481,7 +2487,7 @@ void ASTSlot::visit(CallExpressionAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2493,7 +2499,7 @@ void ASTSlot::visit(TypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{220}; + slotNameIndex_ = SlotNameIndex{221}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2508,7 +2514,7 @@ void ASTSlot::visit(TypeConstructionAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2520,7 +2526,7 @@ void ASTSlot::visit(BracedTypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{220}; + slotNameIndex_ = SlotNameIndex{221}; break; case 1: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -2547,12 +2553,12 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; case 4: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -2584,17 +2590,17 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -2621,12 +2627,12 @@ void ASTSlot::visit(PostIncrExpressionAST* ast) { case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -2648,7 +2654,7 @@ void ASTSlot::visit(CppCastExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -2668,7 +2674,7 @@ void ASTSlot::visit(CppCastExpressionAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2690,7 +2696,7 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -2705,7 +2711,7 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2717,7 +2723,7 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 0: // offsetofLoc value_ = ast->offsetofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{153}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2727,7 +2733,7 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); @@ -2742,7 +2748,7 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2754,7 +2760,7 @@ void ASTSlot::visit(TypeidExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{224}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2769,7 +2775,7 @@ void ASTSlot::visit(TypeidExpressionAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2781,7 +2787,7 @@ void ASTSlot::visit(TypeidOfTypeExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{224}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2791,12 +2797,12 @@ void ASTSlot::visit(TypeidOfTypeExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2808,7 +2814,7 @@ void ASTSlot::visit(SpliceExpressionAST* ast) { case 0: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; } // switch @@ -2825,7 +2831,7 @@ void ASTSlot::visit(GlobalScopeReflectExpressionAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -2864,7 +2870,7 @@ void ASTSlot::visit(TypeIdReflectExpressionAST* ast) { case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; } // switch @@ -2915,7 +2921,7 @@ void ASTSlot::visit(UnaryExpressionAST* ast) { case 0: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -2925,7 +2931,7 @@ void ASTSlot::visit(UnaryExpressionAST* ast) { case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -2954,7 +2960,7 @@ void ASTSlot::visit(SizeofExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{190}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -2971,7 +2977,7 @@ void ASTSlot::visit(SizeofTypeExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{190}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -2981,12 +2987,12 @@ void ASTSlot::visit(SizeofTypeExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2998,7 +3004,7 @@ void ASTSlot::visit(SizeofPackExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{190}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -3018,7 +3024,7 @@ void ASTSlot::visit(SizeofPackExpressionAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); @@ -3045,12 +3051,12 @@ void ASTSlot::visit(AlignofTypeExpressionAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -3079,7 +3085,7 @@ void ASTSlot::visit(NoexceptExpressionAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{151}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -3094,7 +3100,7 @@ void ASTSlot::visit(NoexceptExpressionAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -3106,17 +3112,17 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 1: // newLoc value_ = ast->newLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{149}; break; case 2: // newPlacement value_ = reinterpret_cast(ast->newPlacement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{149}; + slotNameIndex_ = SlotNameIndex{150}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); @@ -3126,7 +3132,7 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 4: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 5: // declarator value_ = reinterpret_cast(ast->declarator); @@ -3136,12 +3142,12 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 7: // newInitalizer value_ = reinterpret_cast(ast->newInitalizer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{148}; break; } // switch @@ -3153,7 +3159,7 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); @@ -3168,7 +3174,7 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); @@ -3190,12 +3196,12 @@ void ASTSlot::visit(CastExpressionAST* ast) { case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); @@ -3229,17 +3235,17 @@ void ASTSlot::visit(BinaryExpressionAST* ast) { case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{183}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -3256,7 +3262,7 @@ void ASTSlot::visit(ConditionalExpressionAST* ast) { case 1: // questionLoc value_ = ast->questionLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{167}; + slotNameIndex_ = SlotNameIndex{168}; break; case 2: // iftrueExpression value_ = reinterpret_cast(ast->iftrueExpression); @@ -3283,7 +3289,7 @@ void ASTSlot::visit(YieldExpressionAST* ast) { case 0: // yieldLoc value_ = ast->yieldLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{236}; + slotNameIndex_ = SlotNameIndex{237}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -3300,7 +3306,7 @@ void ASTSlot::visit(ThrowExpressionAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{212}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -3322,17 +3328,17 @@ void ASTSlot::visit(AssignmentExpressionAST* ast) { case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{183}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -3378,7 +3384,7 @@ void ASTSlot::visit(TypeTraitExpressionAST* ast) { case 0: // typeTraitLoc value_ = ast->typeTraitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{223}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -3388,12 +3394,12 @@ void ASTSlot::visit(TypeTraitExpressionAST* ast) { case 2: // typeIdList value_ = reinterpret_cast(ast->typeIdList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{218}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -3464,7 +3470,7 @@ void ASTSlot::visit(BracedInitListAST* ast) { case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -3486,7 +3492,7 @@ void ASTSlot::visit(ParenInitializerAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -3520,7 +3526,7 @@ void ASTSlot::visit(TypeGenericAssociationAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -3574,7 +3580,7 @@ void ASTSlot::visit(SubscriptDesignatorAST* ast) { case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; } // switch @@ -3606,12 +3612,12 @@ void ASTSlot::visit(SplicerAST* ast) { case 4: // secondColonLoc value_ = ast->secondColonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{187}; break; case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; } // switch @@ -3623,12 +3629,12 @@ void ASTSlot::visit(GlobalModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{140}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -3645,7 +3651,7 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{140}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -3655,12 +3661,12 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 2: // privateLoc value_ = ast->privateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{163}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 4: // declarationList value_ = reinterpret_cast(ast->declarationList); @@ -3682,17 +3688,17 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 1: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{140}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; case 3: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{142}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -3702,7 +3708,7 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -3714,7 +3720,7 @@ void ASTSlot::visit(ModuleNameAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{143}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -3736,7 +3742,7 @@ void ASTSlot::visit(ModuleQualifierAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{143}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -3768,7 +3774,7 @@ void ASTSlot::visit(ModulePartitionAST* ast) { case 1: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; } // switch @@ -3785,12 +3791,12 @@ void ASTSlot::visit(ImportNameAST* ast) { case 1: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{142}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{141}; break; } // switch @@ -3807,7 +3813,7 @@ void ASTSlot::visit(InitDeclaratorAST* ast) { case 1: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); @@ -3824,7 +3830,7 @@ void ASTSlot::visit(DeclaratorAST* ast) { case 0: // ptrOpList value_ = reinterpret_cast(ast->ptrOpList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{164}; + slotNameIndex_ = SlotNameIndex{165}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); @@ -3846,17 +3852,17 @@ void ASTSlot::visit(UsingDeclaratorAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -3910,7 +3916,7 @@ void ASTSlot::visit(TypeIdAST* ast) { case 0: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); @@ -3942,12 +3948,12 @@ void ASTSlot::visit(HandlerAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -3964,27 +3970,27 @@ void ASTSlot::visit(BaseSpecifierAST* ast) { case 1: // virtualOrAccessLoc value_ = ast->virtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{232}; + slotNameIndex_ = SlotNameIndex{233}; break; case 2: // otherVirtualOrAccessLoc value_ = ast->otherVirtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{159}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 5: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -4021,7 +4027,7 @@ void ASTSlot::visit(RequiresClauseAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -4038,7 +4044,7 @@ void ASTSlot::visit(ParameterDeclarationClauseAST* ast) { case 0: // parameterDeclarationList value_ = reinterpret_cast(ast->parameterDeclarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{162}; break; case 1: // commaLoc value_ = ast->commaLoc.index(); @@ -4065,12 +4071,12 @@ void ASTSlot::visit(TrailingReturnTypeAST* ast) { case 0: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; } // switch @@ -4082,12 +4088,12 @@ void ASTSlot::visit(LambdaSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4099,7 +4105,7 @@ void ASTSlot::visit(TypeConstraintAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -4114,7 +4120,7 @@ void ASTSlot::visit(TypeConstraintAST* ast) { case 3: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{204}; break; case 4: // greaterLoc value_ = ast->greaterLoc.index(); @@ -4141,7 +4147,7 @@ void ASTSlot::visit(AttributeArgumentClauseAST* ast) { case 1: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4175,7 +4181,7 @@ void ASTSlot::visit(AttributeUsingPrefixAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // attributeNamespaceLoc value_ = ast->attributeNamespaceLoc.index(); @@ -4207,7 +4213,7 @@ void ASTSlot::visit(NewPlacementAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4229,7 +4235,7 @@ void ASTSlot::visit(NestedNamespaceSpecifierAST* ast) { case 2: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); @@ -4251,7 +4257,7 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); @@ -4261,7 +4267,7 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{207}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -4271,7 +4277,7 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{179}; break; case 5: // classKeyLoc value_ = ast->classKeyLoc.index(); @@ -4350,7 +4356,7 @@ void ASTSlot::visit(TypenameTypeParameterAST* ast) { case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); @@ -4372,7 +4378,7 @@ void ASTSlot::visit(ConstraintTypeParameterAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -4392,7 +4398,7 @@ void ASTSlot::visit(ConstraintTypeParameterAST* ast) { case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); @@ -4409,7 +4415,7 @@ void ASTSlot::visit(GeneratedTypeSpecifierAST* ast) { case 0: // typeLoc value_ = ast->typeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{219}; break; } // switch @@ -4421,7 +4427,7 @@ void ASTSlot::visit(TypedefSpecifierAST* ast) { case 0: // typedefLoc value_ = ast->typedefLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{224}; break; } // switch @@ -4493,7 +4499,7 @@ void ASTSlot::visit(NoreturnSpecifierAST* ast) { case 0: // noreturnLoc value_ = ast->noreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{152}; break; } // switch @@ -4505,7 +4511,7 @@ void ASTSlot::visit(StaticSpecifierAST* ast) { case 0: // staticLoc value_ = ast->staticLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{197}; + slotNameIndex_ = SlotNameIndex{198}; break; } // switch @@ -4529,7 +4535,7 @@ void ASTSlot::visit(RegisterSpecifierAST* ast) { case 0: // registerLoc value_ = ast->registerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{177}; break; } // switch @@ -4541,7 +4547,7 @@ void ASTSlot::visit(ThreadLocalSpecifierAST* ast) { case 0: // threadLocalLoc value_ = ast->threadLocalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{211}; break; } // switch @@ -4553,7 +4559,7 @@ void ASTSlot::visit(ThreadSpecifierAST* ast) { case 0: // threadLoc value_ = ast->threadLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{210}; break; } // switch @@ -4565,7 +4571,7 @@ void ASTSlot::visit(MutableSpecifierAST* ast) { case 0: // mutableLoc value_ = ast->mutableLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{144}; break; } // switch @@ -4577,7 +4583,7 @@ void ASTSlot::visit(VirtualSpecifierAST* ast) { case 0: // virtualLoc value_ = ast->virtualLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{231}; + slotNameIndex_ = SlotNameIndex{232}; break; } // switch @@ -4604,7 +4610,7 @@ void ASTSlot::visit(ExplicitSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4628,7 +4634,7 @@ void ASTSlot::visit(VoidTypeSpecifierAST* ast) { case 0: // voidLoc value_ = ast->voidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{233}; + slotNameIndex_ = SlotNameIndex{234}; break; } // switch @@ -4640,12 +4646,12 @@ void ASTSlot::visit(SizeTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4657,12 +4663,12 @@ void ASTSlot::visit(SignTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4674,12 +4680,12 @@ void ASTSlot::visit(VaListTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4691,12 +4697,12 @@ void ASTSlot::visit(IntegralTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4708,12 +4714,12 @@ void ASTSlot::visit(FloatingPointTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{192}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4737,17 +4743,17 @@ void ASTSlot::visit(NamedTypeSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); @@ -4774,12 +4780,12 @@ void ASTSlot::visit(AtomicTypeSpecifierAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4791,7 +4797,7 @@ void ASTSlot::visit(UnderlyingTypeSpecifierAST* ast) { case 0: // underlyingTypeLoc value_ = ast->underlyingTypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -4801,12 +4807,12 @@ void ASTSlot::visit(UnderlyingTypeSpecifierAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4828,17 +4834,17 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // classKey value_ = std::intptr_t(ast->classKey); @@ -4875,7 +4881,7 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4902,7 +4908,7 @@ void ASTSlot::visit(DecltypeSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -4914,12 +4920,12 @@ void ASTSlot::visit(PlaceholderTypeSpecifierAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // specifier value_ = reinterpret_cast(ast->specifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{191}; break; } // switch @@ -4943,7 +4949,7 @@ void ASTSlot::visit(VolatileQualifierAST* ast) { case 0: // volatileLoc value_ = ast->volatileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{234}; + slotNameIndex_ = SlotNameIndex{235}; break; } // switch @@ -4967,7 +4973,7 @@ void ASTSlot::visit(RestrictQualifierAST* ast) { case 0: // restrictLoc value_ = ast->restrictLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{181}; break; } // switch @@ -4994,12 +5000,12 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); @@ -5009,7 +5015,7 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); @@ -5029,7 +5035,7 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 10: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -5051,12 +5057,12 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 4: // finalLoc value_ = ast->finalLoc.index(); @@ -5086,7 +5092,7 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 9: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; case 10: // classKey value_ = std::intptr_t(ast->classKey); @@ -5108,22 +5114,22 @@ void ASTSlot::visit(TypenameSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); @@ -5140,12 +5146,12 @@ void ASTSlot::visit(SplicerTypeSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{193}; break; } // switch @@ -5157,7 +5163,7 @@ void ASTSlot::visit(PointerOperatorAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5179,7 +5185,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 0: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5189,7 +5195,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 2: // refOp value_ = std::intptr_t(ast->refOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{175}; break; } // switch @@ -5201,12 +5207,12 @@ void ASTSlot::visit(PtrToMemberOperatorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5228,7 +5234,7 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 0: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -5238,7 +5244,7 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 2: // sizeExpression value_ = reinterpret_cast(ast->sizeExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5267,17 +5273,17 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 3: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5309,7 +5315,7 @@ void ASTSlot::visit(NestedDeclaratorAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5326,12 +5332,12 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 1: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{161}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); @@ -5341,7 +5347,7 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 4: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{174}; break; case 5: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); @@ -5356,7 +5362,7 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 7: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{214}; break; case 8: // isFinal value_ = std::intptr_t(ast->isFinal != 0); @@ -5388,7 +5394,7 @@ void ASTSlot::visit(ArrayDeclaratorChunkAST* ast) { case 1: // typeQualifierList value_ = reinterpret_cast(ast->typeQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{220}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); @@ -5398,7 +5404,7 @@ void ASTSlot::visit(ArrayDeclaratorChunkAST* ast) { case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5432,7 +5438,7 @@ void ASTSlot::visit(DestructorIdAST* ast) { case 0: // tildeLoc value_ = ast->tildeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{213}; break; case 1: // id value_ = reinterpret_cast(ast->id); @@ -5461,17 +5467,17 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{158}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{155}; break; case 2: // openLoc value_ = ast->openLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{156}; break; case 3: // closeLoc value_ = ast->closeLoc.index(); @@ -5481,7 +5487,7 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 4: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{154}; break; } // switch @@ -5493,7 +5499,7 @@ void ASTSlot::visit(LiteralOperatorIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{158}; break; case 1: // literalLoc value_ = ast->literalLoc.index(); @@ -5525,12 +5531,12 @@ void ASTSlot::visit(ConversionFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{158}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; } // switch @@ -5552,7 +5558,7 @@ void ASTSlot::visit(SimpleTemplateIdAST* ast) { case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{204}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -5584,7 +5590,7 @@ void ASTSlot::visit(LiteralOperatorTemplateIdAST* ast) { case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{204}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -5601,7 +5607,7 @@ void ASTSlot::visit(OperatorFunctionTemplateIdAST* ast) { case 0: // operatorFunctionId value_ = reinterpret_cast(ast->operatorFunctionId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{157}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); @@ -5611,7 +5617,7 @@ void ASTSlot::visit(OperatorFunctionTemplateIdAST* ast) { case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{204}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); @@ -5628,7 +5634,7 @@ void ASTSlot::visit(GlobalNestedNameSpecifierAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5640,7 +5646,7 @@ void ASTSlot::visit(SimpleNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); @@ -5655,7 +5661,7 @@ void ASTSlot::visit(SimpleNestedNameSpecifierAST* ast) { case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5672,7 +5678,7 @@ void ASTSlot::visit(DecltypeNestedNameSpecifierAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; } // switch @@ -5684,22 +5690,22 @@ void ASTSlot::visit(TemplateNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 2: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); @@ -5726,7 +5732,7 @@ void ASTSlot::visit(DefaultFunctionBodyAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -5743,12 +5749,12 @@ void ASTSlot::visit(CompoundStatementFunctionBodyAST* ast) { case 1: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{137}; break; case 2: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -5760,7 +5766,7 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{215}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); @@ -5770,12 +5776,12 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 2: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{137}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{195}; break; case 4: // handlerList value_ = reinterpret_cast(ast->handlerList); @@ -5802,7 +5808,7 @@ void ASTSlot::visit(DeleteFunctionBodyAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -5814,7 +5820,7 @@ void ASTSlot::visit(TypeTemplateArgumentAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; } // switch @@ -5838,7 +5844,7 @@ void ASTSlot::visit(ThrowExceptionSpecifierAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{212}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -5848,7 +5854,7 @@ void ASTSlot::visit(ThrowExceptionSpecifierAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5860,7 +5866,7 @@ void ASTSlot::visit(NoexceptSpecifierAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{151}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); @@ -5875,7 +5881,7 @@ void ASTSlot::visit(NoexceptSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5892,7 +5898,7 @@ void ASTSlot::visit(SimpleRequirementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -5914,27 +5920,27 @@ void ASTSlot::visit(CompoundRequirementAST* ast) { case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{171}; break; case 3: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{151}; break; case 4: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{138}; break; case 5: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{216}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -5946,27 +5952,27 @@ void ASTSlot::visit(TypeRequirementAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); @@ -5983,7 +5989,7 @@ void ASTSlot::visit(NestedRequirementAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{180}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); @@ -5993,7 +5999,7 @@ void ASTSlot::visit(NestedRequirementAST* ast) { case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -6015,7 +6021,7 @@ void ASTSlot::visit(NewParenInitializerAST* ast) { case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -6039,12 +6045,12 @@ void ASTSlot::visit(ParenMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); @@ -6059,7 +6065,7 @@ void ASTSlot::visit(ParenMemInitializerAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -6076,12 +6082,12 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{228}; break; case 2: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -6103,7 +6109,7 @@ void ASTSlot::visit(ThisLambdaCaptureAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{209}; break; } // switch @@ -6115,12 +6121,12 @@ void ASTSlot::visit(DerefThisLambdaCaptureAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{194}; break; case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{209}; break; } // switch @@ -6257,7 +6263,7 @@ void ASTSlot::visit(TypeExceptionDeclarationAST* ast) { case 1: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{222}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); @@ -6294,12 +6300,12 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 4: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{173}; break; case 5: // rbracket2Loc value_ = ast->rbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -6326,12 +6332,12 @@ void ASTSlot::visit(GccAttributeAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // rparen2Loc value_ = ast->rparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -6363,7 +6369,7 @@ void ASTSlot::visit(AlignasAttributeAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); @@ -6390,7 +6396,7 @@ void ASTSlot::visit(AlignasTypeAttributeAST* ast) { case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); @@ -6400,7 +6406,7 @@ void ASTSlot::visit(AlignasTypeAttributeAST* ast) { case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); @@ -6432,7 +6438,7 @@ void ASTSlot::visit(AsmAttributeAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // literal value_ = reinterpret_cast(ast->literal); @@ -6454,7 +6460,7 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{186}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); diff --git a/src/parser/cxx/control.cc b/src/parser/cxx/control.cc index 98eafd89..a4c3b8d7 100644 --- a/src/parser/cxx/control.cc +++ b/src/parser/cxx/control.cc @@ -872,7 +872,7 @@ auto Control::is_same(const Type* a, const Type* b) -> bool { } auto Control::decay(const Type* type) -> const Type* { - return d->traits.add_pointer(type); + return d->traits.decay(type); } auto Control::instantiate(TranslationUnit* unit, Symbol* symbol, diff --git a/src/parser/cxx/parser.cc b/src/parser/cxx/parser.cc index 4ef58b07..6e346af0 100644 --- a/src/parser/cxx/parser.cc +++ b/src/parser/cxx/parser.cc @@ -1480,6 +1480,8 @@ auto Parser::parse_generic_selection_expression(ExpressionAST*& yyast, expect(TokenKind::T_RPAREN, ast->rparenLoc); + check(ast); + return true; } diff --git a/src/parser/cxx/private/keywords-priv.h b/src/parser/cxx/private/keywords-priv.h index 8c26f5d8..e7001b0c 100644 --- a/src/parser/cxx/private/keywords-priv.h +++ b/src/parser/cxx/private/keywords-priv.h @@ -983,6 +983,20 @@ static inline auto classify8(const char* s) -> cxx::TokenKind { } } } + } else if (s[1] == 'G') { + if (s[2] == 'e') { + if (s[3] == 'n') { + if (s[4] == 'e') { + if (s[5] == 'r') { + if (s[6] == 'i') { + if (s[7] == 'c') { + return cxx::TokenKind::T__GENERIC; + } + } + } + } + } + } } else if (s[1] == 'A') { if (s[2] == 'l') { if (s[3] == 'i') { diff --git a/src/parser/cxx/type_checker.cc b/src/parser/cxx/type_checker.cc index 22a03c74..7e700b10 100644 --- a/src/parser/cxx/type_checker.cc +++ b/src/parser/cxx/type_checker.cc @@ -255,7 +255,83 @@ void TypeChecker::Visitor::operator()(ThisExpressionAST* ast) { } } -void TypeChecker::Visitor::operator()(GenericSelectionExpressionAST* ast) {} +void TypeChecker::Visitor::operator()(GenericSelectionExpressionAST* ast) { + struct { + Visitor& self; + GenericSelectionExpressionAST* ast; + DefaultGenericAssociationAST* defaultAssoc = nullptr; + const Type* selectorType = nullptr; + int index = 0; + int defaultAssocIndex = -1; + + [[nodiscard]] auto control() -> Control* { return self.control(); } + + void operator()(DefaultGenericAssociationAST* assoc) { + if (defaultAssoc) { + self.error(ast->firstSourceLocation(), + "multiple default associations in _Generic selection"); + return; + } + + defaultAssoc = assoc; + defaultAssocIndex = index; + } + + void operator()(TypeGenericAssociationAST* assoc) { + if (!self.control()->is_same(selectorType, assoc->typeId->type)) { + return; + } + + if (ast->matchedAssocIndex != -1) { + self.error(ast->firstSourceLocation(), + std::format("multiple matching types for _Generic selector " + "of type '{}'", + to_string(selectorType))); + return; + } + + ast->type = assoc->expression->type; + ast->valueCategory = assoc->expression->valueCategory; + ast->matchedAssocIndex = index; + } + + void check() { + if (!ast->expression) { + self.error(ast->firstSourceLocation(), + "generic selection expression without selector"); + return; + } + + selectorType = control()->decay(ast->expression->type); + + if (!selectorType) { + self.error(ast->firstSourceLocation(), + "generic selection expression with invalid selector type"); + return; + } + + for (auto assoc : ListView{ast->genericAssociationList}) { + visit(*this, assoc); + ++index; + } + + if (ast->matchedAssocIndex == -1 && defaultAssoc) { + ast->type = defaultAssoc->expression->type; + ast->valueCategory = defaultAssoc->expression->valueCategory; + ast->matchedAssocIndex = defaultAssocIndex; + } + + if (ast->matchedAssocIndex == -1) { + self.error( + ast->firstSourceLocation(), + std::format("no matching type for _Generic selector of type '{}'", + to_string(selectorType))); + } + } + } v{*this, ast}; + + v.check(); +} void TypeChecker::Visitor::operator()(NestedStatementExpressionAST* ast) {} diff --git a/tests/unit_tests/ast/generic_selection_01.c b/tests/unit_tests/ast/generic_selection_01.c index ed29493d..8670fbec 100644 --- a/tests/unit_tests/ast/generic_selection_01.c +++ b/tests/unit_tests/ast/generic_selection_01.c @@ -30,7 +30,8 @@ int main() { // CHECK-NEXT: type-id: type-id // CHECK-NEXT: type-specifier-list // CHECK-NEXT: void-type-specifier -// CHECK-NEXT: expression: generic-selection-expression +// CHECK-NEXT: expression: generic-selection-expression [lvalue const char [8]] +// CHECK-NEXT: matched-assoc-index: 0 // CHECK-NEXT: expression: int-literal-expression [prvalue int] // CHECK-NEXT: literal: 1 // CHECK-NEXT: generic-association-list @@ -42,7 +43,8 @@ int main() { // CHECK-NEXT: type-id: type-id // CHECK-NEXT: type-specifier-list // CHECK-NEXT: void-type-specifier -// CHECK-NEXT: expression: generic-selection-expression +// CHECK-NEXT: expression: generic-selection-expression [lvalue const char [4]] +// CHECK-NEXT: matched-assoc-index: 1 // CHECK-NEXT: expression: int-literal-expression [prvalue int] // CHECK-NEXT: literal: 1 // CHECK-NEXT: generic-association-list @@ -72,7 +74,8 @@ int main() { // CHECK-NEXT: type-id: type-id // CHECK-NEXT: type-specifier-list // CHECK-NEXT: void-type-specifier -// CHECK-NEXT: expression: generic-selection-expression +// CHECK-NEXT: expression: generic-selection-expression [lvalue const char [4]] +// CHECK-NEXT: matched-assoc-index: 0 // CHECK-NEXT: expression: int-literal-expression [prvalue int] // CHECK-NEXT: literal: 1 // CHECK-NEXT: generic-association-list @@ -102,7 +105,8 @@ int main() { // CHECK-NEXT: type-id: type-id // CHECK-NEXT: type-specifier-list // CHECK-NEXT: void-type-specifier -// CHECK-NEXT: expression: generic-selection-expression +// CHECK-NEXT: expression: generic-selection-expression [lvalue const char [4]] +// CHECK-NEXT: matched-assoc-index: 0 // CHECK-NEXT: expression: int-literal-expression [prvalue int] // CHECK-NEXT: literal: 1 // CHECK-NEXT: generic-association-list diff --git a/tests/unit_tests/sema/generic_selection_01.cc b/tests/unit_tests/sema/generic_selection_01.cc new file mode 100644 index 00000000..bf0fa819 --- /dev/null +++ b/tests/unit_tests/sema/generic_selection_01.cc @@ -0,0 +1,22 @@ +// RUN: %cxx -verify -fcheck %s + +// clang-format off + +auto main() -> int { + static_assert(_Generic(0, int: 123, default: 0) == 123); + + static_assert(_Generic(0.0, int: 123, double: 321) == 321); + + static_assert(_Generic("str", char: 123, const char *: 444) == 444); + + // expected-error@1 {{multiple matching types for _Generic selector of type 'int'}} + _Generic(0, int: 0, int: 1); + + // expected-error@1 {{multiple default associations in _Generic selection}} + _Generic(0, default: 0, default: 1); + + // expected-error@1 {{no matching type for _Generic selector of type 'double'}} + _Generic(0.0, char: 0, int: 1); + + return 0; +} \ No newline at end of file