diff --git a/packages/cxx-frontend/src/AST.ts b/packages/cxx-frontend/src/AST.ts index cedd86ed..277c6b97 100644 --- a/packages/cxx-frontend/src/AST.ts +++ b/packages/cxx-frontend/src/AST.ts @@ -9442,6 +9442,121 @@ export class BuiltinTypeSpecifierAST extends SpecifierAST { } } +/** + * UnaryBuiltinTypeSpecifierAST node. + */ +export class UnaryBuiltinTypeSpecifierAST extends SpecifierAST { + /** + * Traverse this node using the given visitor. + * @param visitor the visitor. + * @param context the context. + * @returns the result of the visit. + */ + accept( + visitor: ASTVisitor, + context: Context, + ): Result { + return visitor.visitUnaryBuiltinTypeSpecifier(this, context); + } + + /** + * Returns the location of the builtin token in this node + */ + getBuiltinToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 0), this.parser); + } + + /** + * Returns the location of the lparen token in this node + */ + getLparenToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 1), this.parser); + } + + /** + * Returns the typeId of this node + */ + getTypeId(): TypeIdAST | undefined { + return AST.from( + cxx.getASTSlot(this.getHandle(), 2), + this.parser, + ); + } + + /** + * Returns the location of the rparen token in this node + */ + getRparenToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 3), this.parser); + } +} + +/** + * BinaryBuiltinTypeSpecifierAST node. + */ +export class BinaryBuiltinTypeSpecifierAST extends SpecifierAST { + /** + * Traverse this node using the given visitor. + * @param visitor the visitor. + * @param context the context. + * @returns the result of the visit. + */ + accept( + visitor: ASTVisitor, + context: Context, + ): Result { + return visitor.visitBinaryBuiltinTypeSpecifier(this, context); + } + + /** + * Returns the location of the builtin token in this node + */ + getBuiltinToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 0), this.parser); + } + + /** + * Returns the location of the lparen token in this node + */ + getLparenToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 1), this.parser); + } + + /** + * Returns the leftTypeId of this node + */ + getLeftTypeId(): TypeIdAST | undefined { + return AST.from( + cxx.getASTSlot(this.getHandle(), 2), + this.parser, + ); + } + + /** + * Returns the location of the comma token in this node + */ + getCommaToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 3), this.parser); + } + + /** + * Returns the rightTypeId of this node + */ + getRightTypeId(): TypeIdAST | undefined { + return AST.from( + cxx.getASTSlot(this.getHandle(), 4), + this.parser, + ); + } + + /** + * Returns the location of the rparen token in this node + */ + getRparenToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 5), this.parser); + } +} + /** * IntegralTypeSpecifierAST node. */ @@ -13444,6 +13559,8 @@ const AST_CONSTRUCTORS: Array< SizeTypeSpecifierAST, SignTypeSpecifierAST, BuiltinTypeSpecifierAST, + UnaryBuiltinTypeSpecifierAST, + BinaryBuiltinTypeSpecifierAST, IntegralTypeSpecifierAST, FloatingPointTypeSpecifierAST, ComplexTypeSpecifierAST, diff --git a/packages/cxx-frontend/src/ASTKind.ts b/packages/cxx-frontend/src/ASTKind.ts index 9f56bd4a..285be953 100644 --- a/packages/cxx-frontend/src/ASTKind.ts +++ b/packages/cxx-frontend/src/ASTKind.ts @@ -202,6 +202,8 @@ export enum ASTKind { SizeTypeSpecifier, SignTypeSpecifier, BuiltinTypeSpecifier, + UnaryBuiltinTypeSpecifier, + BinaryBuiltinTypeSpecifier, IntegralTypeSpecifier, FloatingPointTypeSpecifier, ComplexTypeSpecifier, diff --git a/packages/cxx-frontend/src/ASTSlot.ts b/packages/cxx-frontend/src/ASTSlot.ts index 91459735..b025b70e 100644 --- a/packages/cxx-frontend/src/ASTSlot.ts +++ b/packages/cxx-frontend/src/ASTSlot.ts @@ -45,217 +45,220 @@ export enum ASTSlot { bindingList = 22, bracedInitList = 23, breakLoc = 24, - captureDefault = 25, - captureDefaultLoc = 26, - captureList = 27, - caretCaretLoc = 28, - caseLoc = 29, - castLoc = 30, - catchLoc = 31, - classKey = 32, - classKeyLoc = 33, - classLoc = 34, - clobberList = 35, - closeLoc = 36, - colonLoc = 37, - commaLoc = 38, - complexLoc = 39, - conceptLoc = 40, - condition = 41, - constLoc = 42, - constevalLoc = 43, - constexprLoc = 44, - constinitLoc = 45, - constraintLiteral = 46, - constraintLiteralLoc = 47, - constvalLoc = 48, - continueLoc = 49, - coreDeclarator = 50, - coreturnLoc = 51, - cvQualifierList = 52, - declSpecifierList = 53, - declaration = 54, - declarationList = 55, - declarator = 56, - declaratorChunkList = 57, - decltypeLoc = 58, - decltypeSpecifier = 59, - defaultLoc = 60, - deleteLoc = 61, - depth = 62, - designatorList = 63, - doLoc = 64, - dotLoc = 65, - ellipsisLoc = 66, - elseLoc = 67, - elseStatement = 68, - emicolonLoc = 69, - enumLoc = 70, - enumTypeSpecifier = 71, - enumeratorList = 72, - equalLoc = 73, - exceptionDeclaration = 74, - exceptionSpecifier = 75, - exclaimLoc = 76, - explicitLoc = 77, - explicitSpecifier = 78, - exportLoc = 79, - expression = 80, - expressionList = 81, - externLoc = 82, - extraAttributeList = 83, - finalLoc = 84, - foldOp = 85, - foldOpLoc = 86, - forLoc = 87, - friendLoc = 88, - functionBody = 89, - genericAssociationList = 90, - genericLoc = 91, - globalModuleFragment = 92, - gnuAtributeList = 93, - gnuAttributeList = 94, - gotoLabelList = 95, - gotoLoc = 96, - greaterLoc = 97, - handlerList = 98, - headerLoc = 99, - id = 100, - idExpression = 101, - identifier = 102, - identifierLoc = 103, - ifLoc = 104, - iffalseExpression = 105, - iftrueExpression = 106, - importLoc = 107, - importName = 108, - indexExpression = 109, - initDeclaratorList = 110, - initializer = 111, - inlineLoc = 112, - inputOperandList = 113, - isFinal = 114, - isIndirect = 115, - isInline = 116, - isNot = 117, - isOverride = 118, - isPack = 119, - isPure = 120, - isTemplateIntroduced = 121, - isThisIntroduced = 122, - isTrue = 123, - isVariadic = 124, - isVirtual = 125, - lambdaSpecifierList = 126, - lbraceLoc = 127, - lbracket2Loc = 128, - lbracketLoc = 129, - leftExpression = 130, - lessLoc = 131, - literal = 132, - literalLoc = 133, - literalOperatorId = 134, - lparen2Loc = 135, - lparenLoc = 136, - matchedAssocIndex = 137, - memInitializerList = 138, - minusGreaterLoc = 139, - moduleDeclaration = 140, - moduleLoc = 141, - moduleName = 142, - modulePartition = 143, - moduleQualifier = 144, - mutableLoc = 145, - namespaceLoc = 146, - nestedNameSpecifier = 147, - nestedNamespaceSpecifierList = 148, - newInitalizer = 149, - newLoc = 150, - newPlacement = 151, - noexceptLoc = 152, - noreturnLoc = 153, - offsetofLoc = 154, - op = 155, - opLoc = 156, - openLoc = 157, - operatorFunctionId = 158, - operatorLoc = 159, - otherVirtualOrAccessLoc = 160, - outputOperandList = 161, - parameterDeclarationClause = 162, - parameterDeclarationList = 163, - privateLoc = 164, - privateModuleFragment = 165, - ptrOpList = 166, - qualifier = 167, - qualifierLoc = 168, - questionLoc = 169, - rangeDeclaration = 170, - rangeInitializer = 171, - rbraceLoc = 172, - rbracket2Loc = 173, - rbracketLoc = 174, - refLoc = 175, - refOp = 176, - refQualifierLoc = 177, - registerLoc = 178, - requirementList = 179, - requiresClause = 180, - requiresLoc = 181, - restrictLoc = 182, - returnLoc = 183, - rightExpression = 184, - rparen2Loc = 185, - rparenLoc = 186, - scopeLoc = 187, - secondColonLoc = 188, - semicolonLoc = 189, - sizeExpression = 190, - sizeofLoc = 191, - specifier = 192, - specifierLoc = 193, - splicer = 194, - starLoc = 195, - statement = 196, - statementList = 197, - staticAssertLoc = 198, - staticLoc = 199, - stringLiteral = 200, - stringliteralLoc = 201, - switchLoc = 202, - symbolicName = 203, - symbolicNameLoc = 204, - templateArgumentList = 205, - templateId = 206, - templateLoc = 207, - templateParameterList = 208, - templateRequiresClause = 209, - thisLoc = 210, - threadLoc = 211, - threadLocalLoc = 212, - throwLoc = 213, - tildeLoc = 214, - trailingReturnType = 215, - tryLoc = 216, - typeConstraint = 217, - typeId = 218, - typeIdList = 219, - 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, + builtinLoc = 25, + captureDefault = 26, + captureDefaultLoc = 27, + captureList = 28, + caretCaretLoc = 29, + caseLoc = 30, + castLoc = 31, + catchLoc = 32, + classKey = 33, + classKeyLoc = 34, + classLoc = 35, + clobberList = 36, + closeLoc = 37, + colonLoc = 38, + commaLoc = 39, + complexLoc = 40, + conceptLoc = 41, + condition = 42, + constLoc = 43, + constevalLoc = 44, + constexprLoc = 45, + constinitLoc = 46, + constraintLiteral = 47, + constraintLiteralLoc = 48, + constvalLoc = 49, + continueLoc = 50, + coreDeclarator = 51, + coreturnLoc = 52, + cvQualifierList = 53, + declSpecifierList = 54, + declaration = 55, + declarationList = 56, + declarator = 57, + declaratorChunkList = 58, + decltypeLoc = 59, + decltypeSpecifier = 60, + defaultLoc = 61, + deleteLoc = 62, + depth = 63, + designatorList = 64, + doLoc = 65, + dotLoc = 66, + ellipsisLoc = 67, + elseLoc = 68, + elseStatement = 69, + emicolonLoc = 70, + enumLoc = 71, + enumTypeSpecifier = 72, + enumeratorList = 73, + equalLoc = 74, + exceptionDeclaration = 75, + exceptionSpecifier = 76, + exclaimLoc = 77, + explicitLoc = 78, + explicitSpecifier = 79, + exportLoc = 80, + expression = 81, + expressionList = 82, + externLoc = 83, + extraAttributeList = 84, + finalLoc = 85, + foldOp = 86, + foldOpLoc = 87, + forLoc = 88, + friendLoc = 89, + functionBody = 90, + genericAssociationList = 91, + genericLoc = 92, + globalModuleFragment = 93, + gnuAtributeList = 94, + gnuAttributeList = 95, + gotoLabelList = 96, + gotoLoc = 97, + greaterLoc = 98, + handlerList = 99, + headerLoc = 100, + id = 101, + idExpression = 102, + identifier = 103, + identifierLoc = 104, + ifLoc = 105, + iffalseExpression = 106, + iftrueExpression = 107, + importLoc = 108, + importName = 109, + indexExpression = 110, + initDeclaratorList = 111, + initializer = 112, + inlineLoc = 113, + inputOperandList = 114, + isFinal = 115, + isIndirect = 116, + isInline = 117, + isNot = 118, + isOverride = 119, + isPack = 120, + isPure = 121, + isTemplateIntroduced = 122, + isThisIntroduced = 123, + isTrue = 124, + isVariadic = 125, + isVirtual = 126, + lambdaSpecifierList = 127, + lbraceLoc = 128, + lbracket2Loc = 129, + lbracketLoc = 130, + leftExpression = 131, + leftTypeId = 132, + lessLoc = 133, + literal = 134, + literalLoc = 135, + literalOperatorId = 136, + lparen2Loc = 137, + lparenLoc = 138, + matchedAssocIndex = 139, + memInitializerList = 140, + minusGreaterLoc = 141, + moduleDeclaration = 142, + moduleLoc = 143, + moduleName = 144, + modulePartition = 145, + moduleQualifier = 146, + mutableLoc = 147, + namespaceLoc = 148, + nestedNameSpecifier = 149, + nestedNamespaceSpecifierList = 150, + newInitalizer = 151, + newLoc = 152, + newPlacement = 153, + noexceptLoc = 154, + noreturnLoc = 155, + offsetofLoc = 156, + op = 157, + opLoc = 158, + openLoc = 159, + operatorFunctionId = 160, + operatorLoc = 161, + otherVirtualOrAccessLoc = 162, + outputOperandList = 163, + parameterDeclarationClause = 164, + parameterDeclarationList = 165, + privateLoc = 166, + privateModuleFragment = 167, + ptrOpList = 168, + qualifier = 169, + qualifierLoc = 170, + questionLoc = 171, + rangeDeclaration = 172, + rangeInitializer = 173, + rbraceLoc = 174, + rbracket2Loc = 175, + rbracketLoc = 176, + refLoc = 177, + refOp = 178, + refQualifierLoc = 179, + registerLoc = 180, + requirementList = 181, + requiresClause = 182, + requiresLoc = 183, + restrictLoc = 184, + returnLoc = 185, + rightExpression = 186, + rightTypeId = 187, + rparen2Loc = 188, + rparenLoc = 189, + scopeLoc = 190, + secondColonLoc = 191, + semicolonLoc = 192, + sizeExpression = 193, + sizeofLoc = 194, + specifier = 195, + specifierLoc = 196, + splicer = 197, + starLoc = 198, + statement = 199, + statementList = 200, + staticAssertLoc = 201, + staticLoc = 202, + stringLiteral = 203, + stringliteralLoc = 204, + switchLoc = 205, + symbolicName = 206, + symbolicNameLoc = 207, + templateArgumentList = 208, + templateId = 209, + templateLoc = 210, + templateParameterList = 211, + templateRequiresClause = 212, + thisLoc = 213, + threadLoc = 214, + threadLocalLoc = 215, + throwLoc = 216, + tildeLoc = 217, + trailingReturnType = 218, + tryLoc = 219, + typeConstraint = 220, + typeId = 221, + typeIdList = 222, + typeQualifierList = 223, + typeSpecifier = 224, + typeSpecifierList = 225, + typeTraitLoc = 226, + typedefLoc = 227, + typeidLoc = 228, + typenameLoc = 229, + underlyingTypeLoc = 230, + unqualifiedId = 231, + usingDeclaratorList = 232, + usingLoc = 233, + vaArgLoc = 234, + virtualLoc = 235, + virtualOrAccessLoc = 236, + voidLoc = 237, + volatileLoc = 238, + whileLoc = 239, + yieldLoc = 240, } diff --git a/packages/cxx-frontend/src/ASTVisitor.ts b/packages/cxx-frontend/src/ASTVisitor.ts index 35f58440..39b74a11 100644 --- a/packages/cxx-frontend/src/ASTVisitor.ts +++ b/packages/cxx-frontend/src/ASTVisitor.ts @@ -1970,6 +1970,30 @@ export abstract class ASTVisitor { context: Context, ): Result; + /** + * Visit UnaryBuiltinTypeSpecifier node. + * + * @param node The node to visit. + * @param context The context. + * @returns The result of the visit. + */ + abstract visitUnaryBuiltinTypeSpecifier( + node: ast.UnaryBuiltinTypeSpecifierAST, + context: Context, + ): Result; + + /** + * Visit BinaryBuiltinTypeSpecifier node. + * + * @param node The node to visit. + * @param context The context. + * @returns The result of the visit. + */ + abstract visitBinaryBuiltinTypeSpecifier( + node: ast.BinaryBuiltinTypeSpecifierAST, + context: Context, + ): Result; + /** * Visit IntegralTypeSpecifier node. * diff --git a/packages/cxx-frontend/src/RecursiveASTVisitor.ts b/packages/cxx-frontend/src/RecursiveASTVisitor.ts index 5ec9c37f..23d4a717 100644 --- a/packages/cxx-frontend/src/RecursiveASTVisitor.ts +++ b/packages/cxx-frontend/src/RecursiveASTVisitor.ts @@ -2136,6 +2136,33 @@ export class RecursiveASTVisitor extends ASTVisitor { context: Context, ): void {} + /** + * Visit a UnaryBuiltinTypeSpecifier node. + * + * @param node The node to visit. + * @param context The context. + */ + visitUnaryBuiltinTypeSpecifier( + node: ast.UnaryBuiltinTypeSpecifierAST, + context: Context, + ): void { + this.accept(node.getTypeId(), context); + } + + /** + * Visit a BinaryBuiltinTypeSpecifier node. + * + * @param node The node to visit. + * @param context The context. + */ + visitBinaryBuiltinTypeSpecifier( + node: ast.BinaryBuiltinTypeSpecifierAST, + context: Context, + ): void { + this.accept(node.getLeftTypeId(), context); + this.accept(node.getRightTypeId(), context); + } + /** * Visit a IntegralTypeSpecifier node. * diff --git a/packages/cxx-gen-ast/src/gen_token_fwd_h.ts b/packages/cxx-gen-ast/src/gen_token_fwd_h.ts index 2ea50f9a..cf9e4e5b 100644 --- a/packages/cxx-gen-ast/src/gen_token_fwd_h.ts +++ b/packages/cxx-gen-ast/src/gen_token_fwd_h.ts @@ -51,6 +51,18 @@ export function gen_token_fwd_h({ output }: { output: string }) { emit(` V(${tk.toUpperCase()}, "${tk}") \\`), ); + emit(); + emit("#define FOR_EACH_UNARY_BUILTIN_TYPE_TRAIT(V) \\"); + tokens.UNARY_BUILTIN_TYPE_SPECIFIERS.forEach((tk) => + emit(` V(${tk.toUpperCase()}, "${tk}") \\`), + ); + + emit(); + emit("#define FOR_EACH_BINARY_BUILTIN_TYPE_TRAIT(V) \\"); + tokens.BINARY_BUILTIN_TYPE_SPECIFIERS.forEach((tk) => + emit(` V(${tk.toUpperCase()}, "${tk}") \\`), + ); + emit(); emit("#define FOR_EACH_TOKEN_ALIAS(V) \\"); Object.entries(tokens.C_AND_CXX_TOKEN_ALIASES).forEach(([tk, other]) => @@ -90,6 +102,16 @@ enum class BuiltinTypeTraitKind { FOR_EACH_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) }; +enum class UnaryBuiltinTypeKind { + T_NONE, + FOR_EACH_UNARY_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) +}; + +enum class BinaryBuiltinTypeKind { + T_NONE, + FOR_EACH_BINARY_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) +}; + #undef TOKEN_ENUM #undef TOKEN_ALIAS_ENUM // clang-format on diff --git a/packages/cxx-gen-ast/src/tokens.ts b/packages/cxx-gen-ast/src/tokens.ts index 3f34134c..07870b20 100644 --- a/packages/cxx-gen-ast/src/tokens.ts +++ b/packages/cxx-gen-ast/src/tokens.ts @@ -252,6 +252,26 @@ export const BUILTIN_TYPE_TRAITS: string[] = [ "__is_volatile", ]; +export const UNARY_BUILTIN_TYPE_SPECIFIERS: string[] = [ + "__add_lvalue_reference", + "__add_pointer", + "__add_rvalue_reference", + "__decay", + "__make_signed", + "__make_unsigned", + "__remove_all_extents", + "__remove_const", + "__remove_cv", + "__remove_cvref", + "__remove_extent", + "__remove_pointer", + "__remove_reference_t", + "__remove_restrict", + "__remove_volatile", +]; + +export const BINARY_BUILTIN_TYPE_SPECIFIERS: string[] = []; + export const CXX_TOKEN_ALIASES = { and_eq: "AMP_EQUAL", and: "AMP_AMP", diff --git a/src/mlir/cxx/mlir/codegen_specifiers.cc b/src/mlir/cxx/mlir/codegen_specifiers.cc index b693af43..bf49ab86 100644 --- a/src/mlir/cxx/mlir/codegen_specifiers.cc +++ b/src/mlir/cxx/mlir/codegen_specifiers.cc @@ -48,6 +48,8 @@ struct Codegen::SpecifierVisitor { auto operator()(SizeTypeSpecifierAST* ast) -> SpecifierResult; auto operator()(SignTypeSpecifierAST* ast) -> SpecifierResult; auto operator()(BuiltinTypeSpecifierAST* ast) -> SpecifierResult; + auto operator()(UnaryBuiltinTypeSpecifierAST* ast) -> SpecifierResult; + auto operator()(BinaryBuiltinTypeSpecifierAST* ast) -> SpecifierResult; auto operator()(IntegralTypeSpecifierAST* ast) -> SpecifierResult; auto operator()(FloatingPointTypeSpecifierAST* ast) -> SpecifierResult; auto operator()(ComplexTypeSpecifierAST* ast) -> SpecifierResult; @@ -274,6 +276,16 @@ auto Codegen::SpecifierVisitor::operator()(BuiltinTypeSpecifierAST* ast) return {}; } +auto Codegen::SpecifierVisitor::operator()(UnaryBuiltinTypeSpecifierAST* ast) + -> SpecifierResult { + return {}; +} + +auto Codegen::SpecifierVisitor::operator()(BinaryBuiltinTypeSpecifierAST* ast) + -> SpecifierResult { + return {}; +} + auto Codegen::SpecifierVisitor::operator()(IntegralTypeSpecifierAST* ast) -> SpecifierResult { return {}; diff --git a/src/parser/cxx/ast.cc b/src/parser/cxx/ast.cc index 8abb31cc..5fa84826 100644 --- a/src/parser/cxx/ast.cc +++ b/src/parser/cxx/ast.cc @@ -2517,6 +2517,42 @@ auto BuiltinTypeSpecifierAST::lastSourceLocation() -> SourceLocation { return {}; } +auto UnaryBuiltinTypeSpecifierAST::firstSourceLocation() -> SourceLocation { + if (auto loc = cxx::firstSourceLocation(builtinLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(lparenLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(typeId)) return loc; + if (auto loc = cxx::firstSourceLocation(rparenLoc)) return loc; + return {}; +} + +auto UnaryBuiltinTypeSpecifierAST::lastSourceLocation() -> SourceLocation { + if (auto loc = cxx::lastSourceLocation(rparenLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(typeId)) return loc; + if (auto loc = cxx::lastSourceLocation(lparenLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(builtinLoc)) return loc; + return {}; +} + +auto BinaryBuiltinTypeSpecifierAST::firstSourceLocation() -> SourceLocation { + if (auto loc = cxx::firstSourceLocation(builtinLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(lparenLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(leftTypeId)) return loc; + if (auto loc = cxx::firstSourceLocation(commaLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(rightTypeId)) return loc; + if (auto loc = cxx::firstSourceLocation(rparenLoc)) return loc; + return {}; +} + +auto BinaryBuiltinTypeSpecifierAST::lastSourceLocation() -> SourceLocation { + if (auto loc = cxx::lastSourceLocation(rparenLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(rightTypeId)) return loc; + if (auto loc = cxx::lastSourceLocation(commaLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(leftTypeId)) return loc; + if (auto loc = cxx::lastSourceLocation(lparenLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(builtinLoc)) return loc; + return {}; +} + auto IntegralTypeSpecifierAST::firstSourceLocation() -> SourceLocation { if (auto loc = cxx::firstSourceLocation(specifierLoc)) return loc; return {}; @@ -3734,6 +3770,8 @@ std::string_view kASTKindNames[] = { "size-type-specifier", "sign-type-specifier", "builtin-type-specifier", + "unary-builtin-type-specifier", + "binary-builtin-type-specifier", "integral-type-specifier", "floating-point-type-specifier", "complex-type-specifier", diff --git a/src/parser/cxx/ast.fbs b/src/parser/cxx/ast.fbs index a9115643..daf476c6 100644 --- a/src/parser/cxx/ast.fbs +++ b/src/parser/cxx/ast.fbs @@ -263,6 +263,8 @@ union Specifier { SizeTypeSpecifier, SignTypeSpecifier, BuiltinTypeSpecifier, + UnaryBuiltinTypeSpecifier, + BinaryBuiltinTypeSpecifier, IntegralTypeSpecifier, FloatingPointTypeSpecifier, ComplexTypeSpecifier, @@ -1554,6 +1556,22 @@ table BuiltinTypeSpecifier /* SpecifierAST */ { specifier_loc: uint32; } +table UnaryBuiltinTypeSpecifier /* SpecifierAST */ { + type_id: TypeId; + builtin_loc: uint32; + lparen_loc: uint32; + rparen_loc: uint32; +} + +table BinaryBuiltinTypeSpecifier /* SpecifierAST */ { + left_type_id: TypeId; + right_type_id: TypeId; + builtin_loc: uint32; + lparen_loc: uint32; + comma_loc: uint32; + rparen_loc: uint32; +} + table IntegralTypeSpecifier /* SpecifierAST */ { specifier: uint32; specifier_loc: uint32; diff --git a/src/parser/cxx/ast.h b/src/parser/cxx/ast.h index 5b42d6d5..14cfd1ca 100644 --- a/src/parser/cxx/ast.h +++ b/src/parser/cxx/ast.h @@ -3105,6 +3105,44 @@ class BuiltinTypeSpecifierAST final : public SpecifierAST { auto lastSourceLocation() -> SourceLocation override; }; +class UnaryBuiltinTypeSpecifierAST final : public SpecifierAST { + public: + static constexpr ASTKind Kind = ASTKind::UnaryBuiltinTypeSpecifier; + + UnaryBuiltinTypeSpecifierAST() : SpecifierAST(Kind) {} + + SourceLocation builtinLoc; + SourceLocation lparenLoc; + TypeIdAST* typeId = nullptr; + SourceLocation rparenLoc; + UnaryBuiltinTypeKind builtinKind = UnaryBuiltinTypeKind::T_NONE; + + void accept(ASTVisitor* visitor) override { visitor->visit(this); } + + auto firstSourceLocation() -> SourceLocation override; + auto lastSourceLocation() -> SourceLocation override; +}; + +class BinaryBuiltinTypeSpecifierAST final : public SpecifierAST { + public: + static constexpr ASTKind Kind = ASTKind::BinaryBuiltinTypeSpecifier; + + BinaryBuiltinTypeSpecifierAST() : SpecifierAST(Kind) {} + + SourceLocation builtinLoc; + SourceLocation lparenLoc; + TypeIdAST* leftTypeId = nullptr; + SourceLocation commaLoc; + TypeIdAST* rightTypeId = nullptr; + SourceLocation rparenLoc; + BinaryBuiltinTypeKind builtinKind = BinaryBuiltinTypeKind::T_NONE; + + void accept(ASTVisitor* visitor) override { visitor->visit(this); } + + auto firstSourceLocation() -> SourceLocation override; + auto lastSourceLocation() -> SourceLocation override; +}; + class IntegralTypeSpecifierAST final : public SpecifierAST { public: static constexpr ASTKind Kind = ASTKind::IntegralTypeSpecifier; @@ -4958,6 +4996,12 @@ auto visit(Visitor&& visitor, SpecifierAST* ast) { case BuiltinTypeSpecifierAST::Kind: return std::invoke(std::forward(visitor), static_cast(ast)); + case UnaryBuiltinTypeSpecifierAST::Kind: + return std::invoke(std::forward(visitor), + static_cast(ast)); + case BinaryBuiltinTypeSpecifierAST::Kind: + return std::invoke(std::forward(visitor), + static_cast(ast)); case IntegralTypeSpecifierAST::Kind: return std::invoke(std::forward(visitor), static_cast(ast)); @@ -5041,6 +5085,8 @@ template <> case SizeTypeSpecifierAST::Kind: case SignTypeSpecifierAST::Kind: case BuiltinTypeSpecifierAST::Kind: + case UnaryBuiltinTypeSpecifierAST::Kind: + case BinaryBuiltinTypeSpecifierAST::Kind: case IntegralTypeSpecifierAST::Kind: case FloatingPointTypeSpecifierAST::Kind: case ComplexTypeSpecifierAST::Kind: diff --git a/src/parser/cxx/ast_fwd.h b/src/parser/cxx/ast_fwd.h index eddac30b..ebd09557 100644 --- a/src/parser/cxx/ast_fwd.h +++ b/src/parser/cxx/ast_fwd.h @@ -262,6 +262,8 @@ class VoidTypeSpecifierAST; class SizeTypeSpecifierAST; class SignTypeSpecifierAST; class BuiltinTypeSpecifierAST; +class UnaryBuiltinTypeSpecifierAST; +class BinaryBuiltinTypeSpecifierAST; class IntegralTypeSpecifierAST; class FloatingPointTypeSpecifierAST; class ComplexTypeSpecifierAST; diff --git a/src/parser/cxx/ast_interpreter.cc b/src/parser/cxx/ast_interpreter.cc index e7ba4eb6..a0765bdd 100644 --- a/src/parser/cxx/ast_interpreter.cc +++ b/src/parser/cxx/ast_interpreter.cc @@ -892,6 +892,12 @@ struct ASTInterpreter::SpecifierVisitor { [[nodiscard]] auto operator()(BuiltinTypeSpecifierAST* ast) -> SpecifierResult; + [[nodiscard]] auto operator()(UnaryBuiltinTypeSpecifierAST* ast) + -> SpecifierResult; + + [[nodiscard]] auto operator()(BinaryBuiltinTypeSpecifierAST* ast) + -> SpecifierResult; + [[nodiscard]] auto operator()(IntegralTypeSpecifierAST* ast) -> SpecifierResult; @@ -2980,6 +2986,16 @@ auto ASTInterpreter::SpecifierVisitor::operator()(BuiltinTypeSpecifierAST* ast) return {}; } +auto ASTInterpreter::SpecifierVisitor::operator()( + UnaryBuiltinTypeSpecifierAST* ast) -> SpecifierResult { + return {}; +} + +auto ASTInterpreter::SpecifierVisitor::operator()( + BinaryBuiltinTypeSpecifierAST* ast) -> SpecifierResult { + return {}; +} + auto ASTInterpreter::SpecifierVisitor::operator()(IntegralTypeSpecifierAST* ast) -> SpecifierResult { return {}; diff --git a/src/parser/cxx/ast_kind.h b/src/parser/cxx/ast_kind.h index d676dab5..5caccc44 100644 --- a/src/parser/cxx/ast_kind.h +++ b/src/parser/cxx/ast_kind.h @@ -207,6 +207,8 @@ enum class ASTKind { SizeTypeSpecifier, SignTypeSpecifier, BuiltinTypeSpecifier, + UnaryBuiltinTypeSpecifier, + BinaryBuiltinTypeSpecifier, IntegralTypeSpecifier, FloatingPointTypeSpecifier, ComplexTypeSpecifier, diff --git a/src/parser/cxx/ast_pretty_printer.cc b/src/parser/cxx/ast_pretty_printer.cc index e5280f53..090d012a 100644 --- a/src/parser/cxx/ast_pretty_printer.cc +++ b/src/parser/cxx/ast_pretty_printer.cc @@ -411,6 +411,10 @@ struct ASTPrettyPrinter::SpecifierVisitor { void operator()(BuiltinTypeSpecifierAST* ast); + void operator()(UnaryBuiltinTypeSpecifierAST* ast); + + void operator()(BinaryBuiltinTypeSpecifierAST* ast); + void operator()(IntegralTypeSpecifierAST* ast); void operator()(FloatingPointTypeSpecifierAST* ast); @@ -3453,6 +3457,45 @@ void ASTPrettyPrinter::SpecifierVisitor::operator()( } } +void ASTPrettyPrinter::SpecifierVisitor::operator()( + UnaryBuiltinTypeSpecifierAST* ast) { + if (ast->builtinLoc) { + accept.writeToken(ast->builtinLoc); + } + if (ast->lparenLoc) { + nospace(); + accept.writeToken(ast->lparenLoc); + nospace(); + } + accept(ast->typeId); + if (ast->rparenLoc) { + nospace(); + accept.writeToken(ast->rparenLoc); + } +} + +void ASTPrettyPrinter::SpecifierVisitor::operator()( + BinaryBuiltinTypeSpecifierAST* ast) { + if (ast->builtinLoc) { + accept.writeToken(ast->builtinLoc); + } + if (ast->lparenLoc) { + nospace(); + accept.writeToken(ast->lparenLoc); + nospace(); + } + accept(ast->leftTypeId); + if (ast->commaLoc) { + nospace(); + accept.writeToken(ast->commaLoc); + } + accept(ast->rightTypeId); + if (ast->rparenLoc) { + nospace(); + accept.writeToken(ast->rparenLoc); + } +} + void ASTPrettyPrinter::SpecifierVisitor::operator()( IntegralTypeSpecifierAST* ast) { if (ast->specifierLoc) { diff --git a/src/parser/cxx/ast_printer.cc b/src/parser/cxx/ast_printer.cc index d641f9a6..3d201c0b 100644 --- a/src/parser/cxx/ast_printer.cc +++ b/src/parser/cxx/ast_printer.cc @@ -2129,6 +2129,17 @@ void ASTPrinter::visit(BuiltinTypeSpecifierAST* ast) { } } +void ASTPrinter::visit(UnaryBuiltinTypeSpecifierAST* ast) { + out_ << std::format("{}\n", "unary-builtin-type-specifier"); + accept(ast->typeId, "type-id"); +} + +void ASTPrinter::visit(BinaryBuiltinTypeSpecifierAST* ast) { + out_ << std::format("{}\n", "binary-builtin-type-specifier"); + accept(ast->leftTypeId, "left-type-id"); + accept(ast->rightTypeId, "right-type-id"); +} + void ASTPrinter::visit(IntegralTypeSpecifierAST* ast) { out_ << std::format("{}\n", "integral-type-specifier"); if (ast->specifier != TokenKind::T_EOF_SYMBOL) { diff --git a/src/parser/cxx/ast_printer.h b/src/parser/cxx/ast_printer.h index 9d11c66b..ddb60fa4 100644 --- a/src/parser/cxx/ast_printer.h +++ b/src/parser/cxx/ast_printer.h @@ -216,6 +216,8 @@ class ASTPrinter : ASTVisitor { void visit(SizeTypeSpecifierAST* ast) override; void visit(SignTypeSpecifierAST* ast) override; void visit(BuiltinTypeSpecifierAST* ast) override; + void visit(UnaryBuiltinTypeSpecifierAST* ast) override; + void visit(BinaryBuiltinTypeSpecifierAST* ast) override; void visit(IntegralTypeSpecifierAST* ast) override; void visit(FloatingPointTypeSpecifierAST* ast) override; void visit(ComplexTypeSpecifierAST* ast) override; diff --git a/src/parser/cxx/ast_rewriter_specifiers.cc b/src/parser/cxx/ast_rewriter_specifiers.cc index 10f132b0..44a9ec2d 100644 --- a/src/parser/cxx/ast_rewriter_specifiers.cc +++ b/src/parser/cxx/ast_rewriter_specifiers.cc @@ -91,6 +91,12 @@ struct ASTRewriter::SpecifierVisitor { [[nodiscard]] auto operator()(BuiltinTypeSpecifierAST* ast) -> SpecifierAST*; + [[nodiscard]] auto operator()(UnaryBuiltinTypeSpecifierAST* ast) + -> SpecifierAST*; + + [[nodiscard]] auto operator()(BinaryBuiltinTypeSpecifierAST* ast) + -> SpecifierAST*; + [[nodiscard]] auto operator()(IntegralTypeSpecifierAST* ast) -> SpecifierAST*; [[nodiscard]] auto operator()(FloatingPointTypeSpecifierAST* ast) @@ -514,6 +520,34 @@ auto ASTRewriter::SpecifierVisitor::operator()(BuiltinTypeSpecifierAST* ast) return copy; } +auto ASTRewriter::SpecifierVisitor::operator()( + UnaryBuiltinTypeSpecifierAST* ast) -> SpecifierAST* { + auto copy = make_node(arena()); + + copy->builtinLoc = ast->builtinLoc; + copy->builtinKind = ast->builtinKind; + copy->lparenLoc = ast->lparenLoc; + copy->typeId = rewrite.typeId(ast->typeId); + copy->rparenLoc = ast->rparenLoc; + + return copy; +} + +auto ASTRewriter::SpecifierVisitor::operator()( + BinaryBuiltinTypeSpecifierAST* ast) -> SpecifierAST* { + auto copy = make_node(arena()); + + copy->builtinLoc = ast->builtinLoc; + copy->builtinKind = ast->builtinKind; + copy->lparenLoc = ast->lparenLoc; + copy->leftTypeId = rewrite.typeId(ast->leftTypeId); + copy->commaLoc = ast->commaLoc; + copy->rightTypeId = rewrite.typeId(ast->rightTypeId); + copy->rparenLoc = ast->rparenLoc; + + return copy; +} + auto ASTRewriter::SpecifierVisitor::operator()(IntegralTypeSpecifierAST* ast) -> SpecifierAST* { auto copy = make_node(arena()); diff --git a/src/parser/cxx/ast_slot.cc b/src/parser/cxx/ast_slot.cc index d5600c2e..70403f7e 100644 --- a/src/parser/cxx/ast_slot.cc +++ b/src/parser/cxx/ast_slot.cc @@ -75,6 +75,7 @@ std::string_view kMemberSlotNames[] = { "bindingList", "bracedInitList", "breakLoc", + "builtinLoc", "captureDefault", "captureDefaultLoc", "captureList", @@ -181,6 +182,7 @@ std::string_view kMemberSlotNames[] = { "lbracket2Loc", "lbracketLoc", "leftExpression", + "leftTypeId", "lessLoc", "literal", "literalLoc", @@ -235,6 +237,7 @@ std::string_view kMemberSlotNames[] = { "restrictLoc", "returnLoc", "rightExpression", + "rightTypeId", "rparen2Loc", "rparenLoc", "scopeLoc", @@ -299,7 +302,7 @@ void ASTSlot::visit(TranslationUnitAST* ast) { case 0: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; } // switch @@ -311,22 +314,22 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 0: // globalModuleFragment value_ = reinterpret_cast(ast->globalModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{92}; + slotNameIndex_ = SlotNameIndex{93}; break; case 1: // moduleDeclaration value_ = reinterpret_cast(ast->moduleDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{142}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 3: // privateModuleFragment value_ = reinterpret_cast(ast->privateModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{165}; + slotNameIndex_ = SlotNameIndex{167}; break; } // switch @@ -343,22 +346,22 @@ void ASTSlot::visit(SimpleDeclarationAST* ast) { case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; case 2: // initDeclaratorList value_ = reinterpret_cast(ast->initDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -385,47 +388,47 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 5: // outputOperandList value_ = reinterpret_cast(ast->outputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{163}; break; case 6: // inputOperandList value_ = reinterpret_cast(ast->inputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{113}; + slotNameIndex_ = SlotNameIndex{114}; break; case 7: // clobberList value_ = reinterpret_cast(ast->clobberList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{35}; + slotNameIndex_ = SlotNameIndex{36}; break; case 8: // gotoLabelList value_ = reinterpret_cast(ast->gotoLabelList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 9: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 10: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 11: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -437,37 +440,37 @@ void ASTSlot::visit(NamespaceAliasDefinitionAST* ast) { case 0: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{148}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -479,17 +482,17 @@ void ASTSlot::visit(UsingDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{233}; break; case 1: // usingDeclaratorList value_ = reinterpret_cast(ast->usingDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{232}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -501,17 +504,17 @@ void ASTSlot::visit(UsingEnumDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{233}; break; case 1: // enumTypeSpecifier value_ = reinterpret_cast(ast->enumTypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -528,27 +531,27 @@ void ASTSlot::visit(UsingDirectiveAST* ast) { case 1: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{233}; break; case 2: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{148}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -560,42 +563,42 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 0: // staticAssertLoc value_ = ast->staticAssertLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{198}; + slotNameIndex_ = SlotNameIndex{201}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 5: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -607,12 +610,12 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{233}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -622,27 +625,27 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 4: // gnuAttributeList value_ = reinterpret_cast(ast->gnuAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{94}; + slotNameIndex_ = SlotNameIndex{95}; break; case 5: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -654,12 +657,12 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{70}; + slotNameIndex_ = SlotNameIndex{71}; break; case 1: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{34}; + slotNameIndex_ = SlotNameIndex{35}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -669,27 +672,27 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 7: // emicolonLoc value_ = ast->emicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{69}; + slotNameIndex_ = SlotNameIndex{70}; break; } // switch @@ -706,22 +709,22 @@ void ASTSlot::visit(FunctionDefinitionAST* ast) { case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 4: // functionBody value_ = reinterpret_cast(ast->functionBody); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{89}; + slotNameIndex_ = SlotNameIndex{90}; break; } // switch @@ -733,37 +736,37 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{211}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 5: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 6: // depth value_ = ast->depth; slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{62}; + slotNameIndex_ = SlotNameIndex{63}; break; } // switch @@ -775,32 +778,32 @@ void ASTSlot::visit(ConceptDefinitionAST* ast) { case 0: // conceptLoc value_ = ast->conceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -812,27 +815,27 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 0: // explicitSpecifier value_ = reinterpret_cast(ast->explicitSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 3: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{164}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // arrowLoc value_ = ast->arrowLoc.index(); @@ -842,17 +845,17 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 6: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{209}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 8: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -864,17 +867,17 @@ void ASTSlot::visit(ExplicitInstantiationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{82}; + slotNameIndex_ = SlotNameIndex{83}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -886,12 +889,12 @@ void ASTSlot::visit(ExportDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -903,22 +906,22 @@ void ASTSlot::visit(ExportCompoundDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -930,32 +933,32 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{82}; + slotNameIndex_ = SlotNameIndex{83}; break; case 1: // stringliteralLoc value_ = ast->stringliteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{204}; break; case 2: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 3: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 4: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; case 5: // stringLiteral value_ = reinterpret_cast(ast->stringLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{200}; + slotNameIndex_ = SlotNameIndex{203}; break; } // switch @@ -967,12 +970,12 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; case 1: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{148}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -983,42 +986,42 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { value_ = reinterpret_cast(ast->nestedNamespaceSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{150}; break; case 4: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 5: // extraAttributeList value_ = reinterpret_cast(ast->extraAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{83}; + slotNameIndex_ = SlotNameIndex{84}; break; case 6: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 7: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 8: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; case 9: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 10: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{117}; break; } // switch @@ -1030,7 +1033,7 @@ void ASTSlot::visit(EmptyDeclarationAST* ast) { case 0: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1047,7 +1050,7 @@ void ASTSlot::visit(AttributeDeclarationAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1059,12 +1062,12 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 0: // importLoc value_ = ast->importLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{107}; + slotNameIndex_ = SlotNameIndex{108}; break; case 1: // importName value_ = reinterpret_cast(ast->importName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{108}; + slotNameIndex_ = SlotNameIndex{109}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1074,7 +1077,7 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1091,42 +1094,42 @@ void ASTSlot::visit(ParameterDeclarationAST* ast) { case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{213}; break; case 2: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 3: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 4: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 7: // isThisIntroduced value_ = std::intptr_t(ast->isThisIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{122}; + slotNameIndex_ = SlotNameIndex{123}; break; case 8: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -1143,7 +1146,7 @@ void ASTSlot::visit(AccessDeclarationAST* ast) { case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // accessSpecifier value_ = std::intptr_t(ast->accessSpecifier); @@ -1167,17 +1170,17 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; case 2: // refQualifierLoc value_ = ast->refQualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{179}; break; case 3: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 4: // bindingList value_ = reinterpret_cast(ast->bindingList); @@ -1187,17 +1190,17 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 6: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1209,47 +1212,47 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // symbolicNameLoc value_ = ast->symbolicNameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{207}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 3: // constraintLiteralLoc value_ = ast->constraintLiteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{47}; + slotNameIndex_ = SlotNameIndex{48}; break; case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // symbolicName value_ = reinterpret_cast(ast->symbolicName); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{206}; break; case 8: // constraintLiteral value_ = reinterpret_cast(ast->constraintLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{46}; + slotNameIndex_ = SlotNameIndex{47}; break; } // switch @@ -1261,12 +1264,12 @@ void ASTSlot::visit(AsmQualifierAST* ast) { case 0: // qualifierLoc value_ = ast->qualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; case 1: // qualifier value_ = std::intptr_t(ast->qualifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{167}; + slotNameIndex_ = SlotNameIndex{169}; break; } // switch @@ -1278,12 +1281,12 @@ void ASTSlot::visit(AsmClobberAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -1295,12 +1298,12 @@ void ASTSlot::visit(AsmGotoLabelAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1312,32 +1315,32 @@ void ASTSlot::visit(SplicerAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 4: // secondColonLoc value_ = ast->secondColonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{191}; break; case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; } // switch @@ -1349,17 +1352,17 @@ void ASTSlot::visit(GlobalModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{143}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; } // switch @@ -1371,27 +1374,27 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{143}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // privateLoc value_ = ast->privateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{164}; + slotNameIndex_ = SlotNameIndex{166}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 4: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; } // switch @@ -1403,22 +1406,22 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 1: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{143}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; case 3: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1428,7 +1431,7 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -1440,17 +1443,17 @@ void ASTSlot::visit(ModuleNameAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1462,22 +1465,22 @@ void ASTSlot::visit(ModuleQualifierAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{146}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1489,12 +1492,12 @@ void ASTSlot::visit(ModulePartitionAST* ast) { case 0: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 1: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; } // switch @@ -1506,17 +1509,17 @@ void ASTSlot::visit(ImportNameAST* ast) { case 0: // headerLoc value_ = ast->headerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{99}; + slotNameIndex_ = SlotNameIndex{100}; break; case 1: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; } // switch @@ -1528,17 +1531,17 @@ void ASTSlot::visit(InitDeclaratorAST* ast) { case 0: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 1: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; } // switch @@ -1550,17 +1553,17 @@ void ASTSlot::visit(DeclaratorAST* ast) { case 0: // ptrOpList value_ = reinterpret_cast(ast->ptrOpList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{166}; + slotNameIndex_ = SlotNameIndex{168}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{50}; + slotNameIndex_ = SlotNameIndex{51}; break; case 2: // declaratorChunkList value_ = reinterpret_cast(ast->declaratorChunkList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{57}; + slotNameIndex_ = SlotNameIndex{58}; break; } // switch @@ -1572,27 +1575,27 @@ void ASTSlot::visit(UsingDeclaratorAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 4: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -1604,7 +1607,7 @@ void ASTSlot::visit(EnumeratorAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -1614,17 +1617,17 @@ void ASTSlot::visit(EnumeratorAST* ast) { case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1636,12 +1639,12 @@ void ASTSlot::visit(TypeIdAST* ast) { case 0: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; } // switch @@ -1653,27 +1656,27 @@ void ASTSlot::visit(HandlerAST* ast) { case 0: // catchLoc value_ = ast->catchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{31}; + slotNameIndex_ = SlotNameIndex{32}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // exceptionDeclaration value_ = reinterpret_cast(ast->exceptionDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{74}; + slotNameIndex_ = SlotNameIndex{75}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -1690,47 +1693,47 @@ void ASTSlot::visit(BaseSpecifierAST* ast) { case 1: // virtualOrAccessLoc value_ = ast->virtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{233}; + slotNameIndex_ = SlotNameIndex{236}; break; case 2: // otherVirtualOrAccessLoc value_ = ast->otherVirtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{162}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 4: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 5: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 7: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; case 8: // isVirtual value_ = std::intptr_t(ast->isVirtual != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{125}; + slotNameIndex_ = SlotNameIndex{126}; break; case 9: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{125}; break; case 10: // accessSpecifier value_ = std::intptr_t(ast->accessSpecifier); @@ -1747,12 +1750,12 @@ void ASTSlot::visit(RequiresClauseAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{183}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -1764,22 +1767,22 @@ void ASTSlot::visit(ParameterDeclarationClauseAST* ast) { case 0: // parameterDeclarationList value_ = reinterpret_cast(ast->parameterDeclarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{163}; + slotNameIndex_ = SlotNameIndex{165}; break; case 1: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 3: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{125}; break; } // switch @@ -1791,12 +1794,12 @@ void ASTSlot::visit(TrailingReturnTypeAST* ast) { case 0: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{141}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; } // switch @@ -1808,12 +1811,12 @@ void ASTSlot::visit(LambdaSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -1825,32 +1828,32 @@ void ASTSlot::visit(TypeConstraintAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 3: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{208}; break; case 4: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1862,12 +1865,12 @@ void ASTSlot::visit(AttributeArgumentClauseAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1889,7 +1892,7 @@ void ASTSlot::visit(AttributeAST* ast) { case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -1901,7 +1904,7 @@ void ASTSlot::visit(AttributeUsingPrefixAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{233}; break; case 1: // attributeNamespaceLoc value_ = ast->attributeNamespaceLoc.index(); @@ -1911,7 +1914,7 @@ void ASTSlot::visit(AttributeUsingPrefixAST* ast) { case 2: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; } // switch @@ -1923,17 +1926,17 @@ void ASTSlot::visit(NewPlacementAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -1945,27 +1948,27 @@ void ASTSlot::visit(NestedNamespaceSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 4: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{117}; break; } // switch @@ -1977,17 +1980,17 @@ void ASTSlot::visit(LabeledStatementAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -1999,17 +2002,17 @@ void ASTSlot::visit(CaseStatementAST* ast) { case 0: // caseLoc value_ = ast->caseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{29}; + slotNameIndex_ = SlotNameIndex{30}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; } // switch @@ -2021,12 +2024,12 @@ void ASTSlot::visit(DefaultStatementAST* ast) { case 0: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{60}; + slotNameIndex_ = SlotNameIndex{61}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; } // switch @@ -2038,12 +2041,12 @@ void ASTSlot::visit(ExpressionStatementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2055,17 +2058,17 @@ void ASTSlot::visit(CompoundStatementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // statementList value_ = reinterpret_cast(ast->statementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{197}; + slotNameIndex_ = SlotNameIndex{200}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -2077,47 +2080,47 @@ void ASTSlot::visit(IfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{104}; + slotNameIndex_ = SlotNameIndex{105}; break; case 1: // constexprLoc value_ = ast->constexprLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{44}; + slotNameIndex_ = SlotNameIndex{45}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 4: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 6: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 7: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{67}; + slotNameIndex_ = SlotNameIndex{68}; break; case 8: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{68}; + slotNameIndex_ = SlotNameIndex{69}; break; } // switch @@ -2129,37 +2132,37 @@ void ASTSlot::visit(ConstevalIfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{104}; + slotNameIndex_ = SlotNameIndex{105}; break; case 1: // exclaimLoc value_ = ast->exclaimLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{76}; + slotNameIndex_ = SlotNameIndex{77}; break; case 2: // constvalLoc value_ = ast->constvalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{48}; + slotNameIndex_ = SlotNameIndex{49}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 4: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{67}; + slotNameIndex_ = SlotNameIndex{68}; break; case 5: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{68}; + slotNameIndex_ = SlotNameIndex{69}; break; case 6: // isNot value_ = std::intptr_t(ast->isNot != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{117}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -2171,32 +2174,32 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 0: // switchLoc value_ = ast->switchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{202}; + slotNameIndex_ = SlotNameIndex{205}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -2208,27 +2211,27 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 0: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{236}; + slotNameIndex_ = SlotNameIndex{239}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -2240,37 +2243,37 @@ void ASTSlot::visit(DoStatementAST* ast) { case 0: // doLoc value_ = ast->doLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 2: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{236}; + slotNameIndex_ = SlotNameIndex{239}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2282,42 +2285,42 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{87}; + slotNameIndex_ = SlotNameIndex{88}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 3: // rangeDeclaration value_ = reinterpret_cast(ast->rangeDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 4: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 5: // rangeInitializer value_ = reinterpret_cast(ast->rangeInitializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{173}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -2329,42 +2332,42 @@ void ASTSlot::visit(ForStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{87}; + slotNameIndex_ = SlotNameIndex{88}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -2381,7 +2384,7 @@ void ASTSlot::visit(BreakStatementAST* ast) { case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2393,12 +2396,12 @@ void ASTSlot::visit(ContinueStatementAST* ast) { case 0: // continueLoc value_ = ast->continueLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{49}; + slotNameIndex_ = SlotNameIndex{50}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2410,17 +2413,17 @@ void ASTSlot::visit(ReturnStatementAST* ast) { case 0: // returnLoc value_ = ast->returnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2432,17 +2435,17 @@ void ASTSlot::visit(CoroutineReturnStatementAST* ast) { case 0: // coreturnLoc value_ = ast->coreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{51}; + slotNameIndex_ = SlotNameIndex{52}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2454,32 +2457,32 @@ void ASTSlot::visit(GotoStatementAST* ast) { case 0: // gotoLoc value_ = ast->gotoLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{198}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 5: // isIndirect value_ = std::intptr_t(ast->isIndirect != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{115}; + slotNameIndex_ = SlotNameIndex{116}; break; } // switch @@ -2491,7 +2494,7 @@ void ASTSlot::visit(DeclarationStatementAST* ast) { case 0: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -2503,17 +2506,17 @@ void ASTSlot::visit(TryBlockStatementAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{219}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 2: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{98}; + slotNameIndex_ = SlotNameIndex{99}; break; } // switch @@ -2525,12 +2528,12 @@ void ASTSlot::visit(CharLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2542,12 +2545,12 @@ void ASTSlot::visit(BoolLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // isTrue value_ = std::intptr_t(ast->isTrue != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{123}; + slotNameIndex_ = SlotNameIndex{124}; break; } // switch @@ -2559,12 +2562,12 @@ void ASTSlot::visit(IntLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2576,12 +2579,12 @@ void ASTSlot::visit(FloatLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2593,12 +2596,12 @@ void ASTSlot::visit(NullptrLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = std::intptr_t(ast->literal); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2610,12 +2613,12 @@ void ASTSlot::visit(StringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2627,12 +2630,12 @@ void ASTSlot::visit(UserDefinedStringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -2644,17 +2647,17 @@ void ASTSlot::visit(ObjectLiteralExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 3: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -2671,7 +2674,7 @@ void ASTSlot::visit(ThisExpressionAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{213}; break; } // switch @@ -2683,37 +2686,37 @@ void ASTSlot::visit(GenericSelectionExpressionAST* ast) { case 0: // genericLoc value_ = ast->genericLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{91}; + slotNameIndex_ = SlotNameIndex{92}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 4: // genericAssociationList value_ = reinterpret_cast(ast->genericAssociationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{90}; + slotNameIndex_ = SlotNameIndex{91}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 6: // matchedAssocIndex value_ = ast->matchedAssocIndex; slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{139}; break; } // switch @@ -2725,17 +2728,17 @@ void ASTSlot::visit(NestedStatementExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2747,17 +2750,17 @@ void ASTSlot::visit(NestedExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -2769,22 +2772,22 @@ void ASTSlot::visit(IdExpressionAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -2796,72 +2799,72 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // captureDefaultLoc value_ = ast->captureDefaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{26}; + slotNameIndex_ = SlotNameIndex{27}; break; case 2: // captureList value_ = reinterpret_cast(ast->captureList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{27}; + slotNameIndex_ = SlotNameIndex{28}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 4: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 5: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{211}; break; case 6: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 7: // templateRequiresClause value_ = reinterpret_cast(ast->templateRequiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{212}; break; case 8: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 9: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{164}; break; case 10: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 11: // gnuAtributeList value_ = reinterpret_cast(ast->gnuAtributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{93}; + slotNameIndex_ = SlotNameIndex{94}; break; case 12: // lambdaSpecifierList value_ = reinterpret_cast(ast->lambdaSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{127}; break; case 13: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{75}; + slotNameIndex_ = SlotNameIndex{76}; break; case 14: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -2871,22 +2874,22 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 15: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{218}; break; case 16: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 17: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 18: // captureDefault value_ = std::intptr_t(ast->captureDefault); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{25}; + slotNameIndex_ = SlotNameIndex{26}; break; } // switch @@ -2898,47 +2901,47 @@ void ASTSlot::visit(FoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 4: // foldOpLoc value_ = ast->foldOpLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{86}; + slotNameIndex_ = SlotNameIndex{87}; break; case 5: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{186}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; case 8: // foldOp value_ = std::intptr_t(ast->foldOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{85}; + slotNameIndex_ = SlotNameIndex{86}; break; } // switch @@ -2950,32 +2953,32 @@ void ASTSlot::visit(RightFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -2987,32 +2990,32 @@ void ASTSlot::visit(LeftFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -3024,37 +3027,37 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{183}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{164}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 5: // requirementList value_ = reinterpret_cast(ast->requirementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{181}; break; case 6: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -3066,32 +3069,32 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 0: // vaArgLoc value_ = ast->vaArgLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{231}; + slotNameIndex_ = SlotNameIndex{234}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3108,17 +3111,17 @@ void ASTSlot::visit(SubscriptExpressionAST* ast) { case 1: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // indexExpression value_ = reinterpret_cast(ast->indexExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; } // switch @@ -3135,17 +3138,17 @@ void ASTSlot::visit(CallExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3157,22 +3160,22 @@ void ASTSlot::visit(TypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{224}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3184,7 +3187,7 @@ void ASTSlot::visit(BracedTypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{224}; break; case 1: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -3211,12 +3214,12 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 3: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{197}; break; case 4: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -3226,7 +3229,7 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -3248,17 +3251,17 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -3268,7 +3271,7 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -3285,12 +3288,12 @@ void ASTSlot::visit(PostIncrExpressionAST* ast) { case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -3302,37 +3305,37 @@ void ASTSlot::visit(CppCastExpressionAST* ast) { case 0: // castLoc value_ = ast->castLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{30}; + slotNameIndex_ = SlotNameIndex{31}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3344,32 +3347,32 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 0: // castLoc value_ = ast->castLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{30}; + slotNameIndex_ = SlotNameIndex{31}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3381,42 +3384,42 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 0: // offsetofLoc value_ = ast->offsetofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{156}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 4: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 5: // designatorList value_ = reinterpret_cast(ast->designatorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{63}; + slotNameIndex_ = SlotNameIndex{64}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -3428,22 +3431,22 @@ void ASTSlot::visit(TypeidExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{228}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3455,22 +3458,22 @@ void ASTSlot::visit(TypeidOfTypeExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{228}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3482,7 +3485,7 @@ void ASTSlot::visit(SpliceExpressionAST* ast) { case 0: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{197}; break; } // switch @@ -3494,12 +3497,12 @@ void ASTSlot::visit(GlobalScopeReflectExpressionAST* ast) { case 0: // caretCaretLoc value_ = ast->caretCaretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{28}; + slotNameIndex_ = SlotNameIndex{29}; break; case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -3511,17 +3514,17 @@ void ASTSlot::visit(NamespaceReflectExpressionAST* ast) { case 0: // caretCaretLoc value_ = ast->caretCaretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{28}; + slotNameIndex_ = SlotNameIndex{29}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -3533,12 +3536,12 @@ void ASTSlot::visit(TypeIdReflectExpressionAST* ast) { case 0: // caretCaretLoc value_ = ast->caretCaretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{28}; + slotNameIndex_ = SlotNameIndex{29}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; } // switch @@ -3550,12 +3553,12 @@ void ASTSlot::visit(ReflectExpressionAST* ast) { case 0: // caretCaretLoc value_ = ast->caretCaretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{28}; + slotNameIndex_ = SlotNameIndex{29}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3572,12 +3575,12 @@ void ASTSlot::visit(LabelAddressExpressionAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -3589,17 +3592,17 @@ void ASTSlot::visit(UnaryExpressionAST* ast) { case 0: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -3616,7 +3619,7 @@ void ASTSlot::visit(AwaitExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3628,12 +3631,12 @@ void ASTSlot::visit(SizeofExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{194}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3645,22 +3648,22 @@ void ASTSlot::visit(SizeofTypeExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{194}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3672,32 +3675,32 @@ void ASTSlot::visit(SizeofPackExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{194}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 3: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -3714,17 +3717,17 @@ void ASTSlot::visit(AlignofTypeExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3741,7 +3744,7 @@ void ASTSlot::visit(AlignofExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3753,22 +3756,22 @@ void ASTSlot::visit(NoexceptExpressionAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -3780,42 +3783,42 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; case 1: // newLoc value_ = ast->newLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{152}; break; case 2: // newPlacement value_ = reinterpret_cast(ast->newPlacement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 4: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 5: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 7: // newInitalizer value_ = reinterpret_cast(ast->newInitalizer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{149}; + slotNameIndex_ = SlotNameIndex{151}; break; } // switch @@ -3827,27 +3830,27 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{61}; + slotNameIndex_ = SlotNameIndex{62}; break; case 2: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3859,22 +3862,22 @@ void ASTSlot::visit(CastExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3886,7 +3889,7 @@ void ASTSlot::visit(ImplicitCastExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3898,22 +3901,22 @@ void ASTSlot::visit(BinaryExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -3925,27 +3928,27 @@ void ASTSlot::visit(ConditionalExpressionAST* ast) { case 0: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; case 1: // questionLoc value_ = ast->questionLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{169}; + slotNameIndex_ = SlotNameIndex{171}; break; case 2: // iftrueExpression value_ = reinterpret_cast(ast->iftrueExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{106}; + slotNameIndex_ = SlotNameIndex{107}; break; case 3: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // iffalseExpression value_ = reinterpret_cast(ast->iffalseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{105}; + slotNameIndex_ = SlotNameIndex{106}; break; } // switch @@ -3957,12 +3960,12 @@ void ASTSlot::visit(YieldExpressionAST* ast) { case 0: // yieldLoc value_ = ast->yieldLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{237}; + slotNameIndex_ = SlotNameIndex{240}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3974,12 +3977,12 @@ void ASTSlot::visit(ThrowExpressionAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -3991,22 +3994,22 @@ void ASTSlot::visit(AssignmentExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -4018,22 +4021,22 @@ void ASTSlot::visit(CompoundAssignmentExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{131}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{186}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -4045,12 +4048,12 @@ void ASTSlot::visit(PackExpansionExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -4062,12 +4065,12 @@ void ASTSlot::visit(DesignatedInitializerClauseAST* ast) { case 0: // designatorList value_ = reinterpret_cast(ast->designatorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{63}; + slotNameIndex_ = SlotNameIndex{64}; break; case 1: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; } // switch @@ -4079,22 +4082,22 @@ void ASTSlot::visit(TypeTraitExpressionAST* ast) { case 0: // typeTraitLoc value_ = ast->typeTraitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeIdList value_ = reinterpret_cast(ast->typeIdList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{222}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4111,17 +4114,17 @@ void ASTSlot::visit(ConditionExpressionAST* ast) { case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; } // switch @@ -4133,12 +4136,12 @@ void ASTSlot::visit(EqualInitializerAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -4150,22 +4153,22 @@ void ASTSlot::visit(BracedInitListAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 2: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -4177,17 +4180,17 @@ void ASTSlot::visit(ParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4199,17 +4202,17 @@ void ASTSlot::visit(DefaultGenericAssociationAST* ast) { case 0: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{60}; + slotNameIndex_ = SlotNameIndex{61}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -4221,17 +4224,17 @@ void ASTSlot::visit(TypeGenericAssociationAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -4243,17 +4246,17 @@ void ASTSlot::visit(DotDesignatorAST* ast) { case 0: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -4265,17 +4268,17 @@ void ASTSlot::visit(SubscriptDesignatorAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; } // switch @@ -4287,62 +4290,62 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{211}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 5: // classKeyLoc value_ = ast->classKeyLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 7: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 8: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 9: // idExpression value_ = reinterpret_cast(ast->idExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 10: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 11: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -4354,7 +4357,7 @@ void ASTSlot::visit(NonTypeTemplateParameterAST* ast) { case 0: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -4366,37 +4369,37 @@ void ASTSlot::visit(TypenameTypeParameterAST* ast) { case 0: // classKeyLoc value_ = ast->classKeyLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 6: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -4408,32 +4411,32 @@ void ASTSlot::visit(ConstraintTypeParameterAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{220}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -4445,7 +4448,7 @@ void ASTSlot::visit(TypedefSpecifierAST* ast) { case 0: // typedefLoc value_ = ast->typedefLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{224}; + slotNameIndex_ = SlotNameIndex{227}; break; } // switch @@ -4457,7 +4460,7 @@ void ASTSlot::visit(FriendSpecifierAST* ast) { case 0: // friendLoc value_ = ast->friendLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{88}; + slotNameIndex_ = SlotNameIndex{89}; break; } // switch @@ -4469,7 +4472,7 @@ void ASTSlot::visit(ConstevalSpecifierAST* ast) { case 0: // constevalLoc value_ = ast->constevalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{43}; + slotNameIndex_ = SlotNameIndex{44}; break; } // switch @@ -4481,7 +4484,7 @@ void ASTSlot::visit(ConstinitSpecifierAST* ast) { case 0: // constinitLoc value_ = ast->constinitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{45}; + slotNameIndex_ = SlotNameIndex{46}; break; } // switch @@ -4493,7 +4496,7 @@ void ASTSlot::visit(ConstexprSpecifierAST* ast) { case 0: // constexprLoc value_ = ast->constexprLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{44}; + slotNameIndex_ = SlotNameIndex{45}; break; } // switch @@ -4505,7 +4508,7 @@ void ASTSlot::visit(InlineSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; } // switch @@ -4517,7 +4520,7 @@ void ASTSlot::visit(NoreturnSpecifierAST* ast) { case 0: // noreturnLoc value_ = ast->noreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{155}; break; } // switch @@ -4529,7 +4532,7 @@ void ASTSlot::visit(StaticSpecifierAST* ast) { case 0: // staticLoc value_ = ast->staticLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{199}; + slotNameIndex_ = SlotNameIndex{202}; break; } // switch @@ -4541,7 +4544,7 @@ void ASTSlot::visit(ExternSpecifierAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{82}; + slotNameIndex_ = SlotNameIndex{83}; break; } // switch @@ -4553,7 +4556,7 @@ void ASTSlot::visit(RegisterSpecifierAST* ast) { case 0: // registerLoc value_ = ast->registerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{180}; break; } // switch @@ -4565,7 +4568,7 @@ void ASTSlot::visit(ThreadLocalSpecifierAST* ast) { case 0: // threadLocalLoc value_ = ast->threadLocalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{215}; break; } // switch @@ -4577,7 +4580,7 @@ void ASTSlot::visit(ThreadSpecifierAST* ast) { case 0: // threadLoc value_ = ast->threadLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{214}; break; } // switch @@ -4589,7 +4592,7 @@ void ASTSlot::visit(MutableSpecifierAST* ast) { case 0: // mutableLoc value_ = ast->mutableLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{147}; break; } // switch @@ -4601,7 +4604,7 @@ void ASTSlot::visit(VirtualSpecifierAST* ast) { case 0: // virtualLoc value_ = ast->virtualLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{232}; + slotNameIndex_ = SlotNameIndex{235}; break; } // switch @@ -4613,22 +4616,22 @@ void ASTSlot::visit(ExplicitSpecifierAST* ast) { case 0: // explicitLoc value_ = ast->explicitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{77}; + slotNameIndex_ = SlotNameIndex{78}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4652,7 +4655,7 @@ void ASTSlot::visit(VoidTypeSpecifierAST* ast) { case 0: // voidLoc value_ = ast->voidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{234}; + slotNameIndex_ = SlotNameIndex{237}; break; } // switch @@ -4664,12 +4667,12 @@ void ASTSlot::visit(SizeTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -4681,12 +4684,12 @@ void ASTSlot::visit(SignTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -4698,29 +4701,93 @@ void ASTSlot::visit(BuiltinTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch slotCount_ = 2; } +void ASTSlot::visit(UnaryBuiltinTypeSpecifierAST* ast) { + switch (slot_) { + case 0: // builtinLoc + value_ = ast->builtinLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{25}; + break; + case 1: // lparenLoc + value_ = ast->lparenLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{138}; + break; + case 2: // typeId + value_ = reinterpret_cast(ast->typeId); + slotKind_ = ASTSlotKind::kNode; + slotNameIndex_ = SlotNameIndex{221}; + break; + case 3: // rparenLoc + value_ = ast->rparenLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{189}; + break; + } // switch + + slotCount_ = 4; +} + +void ASTSlot::visit(BinaryBuiltinTypeSpecifierAST* ast) { + switch (slot_) { + case 0: // builtinLoc + value_ = ast->builtinLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{25}; + break; + case 1: // lparenLoc + value_ = ast->lparenLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{138}; + break; + case 2: // leftTypeId + value_ = reinterpret_cast(ast->leftTypeId); + slotKind_ = ASTSlotKind::kNode; + slotNameIndex_ = SlotNameIndex{132}; + break; + case 3: // commaLoc + value_ = ast->commaLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{39}; + break; + case 4: // rightTypeId + value_ = reinterpret_cast(ast->rightTypeId); + slotKind_ = ASTSlotKind::kNode; + slotNameIndex_ = SlotNameIndex{187}; + break; + case 5: // rparenLoc + value_ = ast->rparenLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{189}; + break; + } // switch + + slotCount_ = 6; +} + void ASTSlot::visit(IntegralTypeSpecifierAST* ast) { switch (slot_) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -4732,12 +4799,12 @@ void ASTSlot::visit(FloatingPointTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -4749,7 +4816,7 @@ void ASTSlot::visit(ComplexTypeSpecifierAST* ast) { case 0: // complexLoc value_ = ast->complexLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{39}; + slotNameIndex_ = SlotNameIndex{40}; break; } // switch @@ -4761,22 +4828,22 @@ void ASTSlot::visit(NamedTypeSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -4793,17 +4860,17 @@ void ASTSlot::visit(AtomicTypeSpecifierAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4815,22 +4882,22 @@ void ASTSlot::visit(UnderlyingTypeSpecifierAST* ast) { case 0: // underlyingTypeLoc value_ = ast->underlyingTypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4842,7 +4909,7 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 0: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{34}; + slotNameIndex_ = SlotNameIndex{35}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -4852,27 +4919,27 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // classKey value_ = std::intptr_t(ast->classKey); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{32}; + slotNameIndex_ = SlotNameIndex{33}; break; case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -4884,12 +4951,12 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 0: // decltypeLoc value_ = ast->decltypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{58}; + slotNameIndex_ = SlotNameIndex{59}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // autoLoc value_ = ast->autoLoc.index(); @@ -4899,7 +4966,7 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4911,22 +4978,22 @@ void ASTSlot::visit(DecltypeSpecifierAST* ast) { case 0: // decltypeLoc value_ = ast->decltypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{58}; + slotNameIndex_ = SlotNameIndex{59}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -4938,12 +5005,12 @@ void ASTSlot::visit(PlaceholderTypeSpecifierAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{220}; break; case 1: // specifier value_ = reinterpret_cast(ast->specifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{195}; break; } // switch @@ -4955,7 +5022,7 @@ void ASTSlot::visit(ConstQualifierAST* ast) { case 0: // constLoc value_ = ast->constLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{42}; + slotNameIndex_ = SlotNameIndex{43}; break; } // switch @@ -4967,7 +5034,7 @@ void ASTSlot::visit(VolatileQualifierAST* ast) { case 0: // volatileLoc value_ = ast->volatileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{235}; + slotNameIndex_ = SlotNameIndex{238}; break; } // switch @@ -4991,7 +5058,7 @@ void ASTSlot::visit(RestrictQualifierAST* ast) { case 0: // restrictLoc value_ = ast->restrictLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -5003,12 +5070,12 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{70}; + slotNameIndex_ = SlotNameIndex{71}; break; case 1: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{34}; + slotNameIndex_ = SlotNameIndex{35}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5018,42 +5085,42 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 8: // enumeratorList value_ = reinterpret_cast(ast->enumeratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 9: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; case 10: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -5065,7 +5132,7 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 0: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{34}; + slotNameIndex_ = SlotNameIndex{35}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5075,22 +5142,22 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 4: // finalLoc value_ = ast->finalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{84}; + slotNameIndex_ = SlotNameIndex{85}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 6: // baseSpecifierList value_ = reinterpret_cast(ast->baseSpecifierList); @@ -5100,27 +5167,27 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 8: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 9: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; case 10: // classKey value_ = std::intptr_t(ast->classKey); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{32}; + slotNameIndex_ = SlotNameIndex{33}; break; case 11: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{114}; + slotNameIndex_ = SlotNameIndex{115}; break; } // switch @@ -5132,27 +5199,27 @@ void ASTSlot::visit(TypenameSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -5164,12 +5231,12 @@ void ASTSlot::visit(SplicerTypeSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{197}; break; } // switch @@ -5181,7 +5248,7 @@ void ASTSlot::visit(PointerOperatorAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{198}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5191,7 +5258,7 @@ void ASTSlot::visit(PointerOperatorAST* ast) { case 2: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; } // switch @@ -5203,7 +5270,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 0: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{175}; + slotNameIndex_ = SlotNameIndex{177}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5213,7 +5280,7 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 2: // refOp value_ = std::intptr_t(ast->refOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; } // switch @@ -5225,12 +5292,12 @@ void ASTSlot::visit(PtrToMemberOperatorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{198}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5240,7 +5307,7 @@ void ASTSlot::visit(PtrToMemberOperatorAST* ast) { case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; } // switch @@ -5252,17 +5319,17 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 0: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // sizeExpression value_ = reinterpret_cast(ast->sizeExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{193}; break; } // switch @@ -5274,12 +5341,12 @@ void ASTSlot::visit(ParameterPackAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{50}; + slotNameIndex_ = SlotNameIndex{51}; break; } // switch @@ -5291,17 +5358,17 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 3: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5311,7 +5378,7 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -5323,17 +5390,17 @@ void ASTSlot::visit(NestedDeclaratorAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5345,32 +5412,32 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{164}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; case 4: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{175}; + slotNameIndex_ = SlotNameIndex{177}; break; case 5: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{75}; + slotNameIndex_ = SlotNameIndex{76}; break; case 6: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5380,22 +5447,22 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 7: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{218}; break; case 8: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{114}; + slotNameIndex_ = SlotNameIndex{115}; break; case 9: // isOverride value_ = std::intptr_t(ast->isOverride != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{119}; break; case 10: // isPure value_ = std::intptr_t(ast->isPure != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{121}; break; } // switch @@ -5407,22 +5474,22 @@ void ASTSlot::visit(ArrayDeclaratorChunkAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // typeQualifierList value_ = reinterpret_cast(ast->typeQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{220}; + slotNameIndex_ = SlotNameIndex{223}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); @@ -5439,12 +5506,12 @@ void ASTSlot::visit(NameIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -5456,12 +5523,12 @@ void ASTSlot::visit(DestructorIdAST* ast) { case 0: // tildeLoc value_ = ast->tildeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{217}; break; case 1: // id value_ = reinterpret_cast(ast->id); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -5473,7 +5540,7 @@ void ASTSlot::visit(DecltypeIdAST* ast) { case 0: // decltypeSpecifier value_ = reinterpret_cast(ast->decltypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{59}; + slotNameIndex_ = SlotNameIndex{60}; break; } // switch @@ -5485,27 +5552,27 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{161}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 2: // openLoc value_ = ast->openLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{159}; break; case 3: // closeLoc value_ = ast->closeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 4: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; } // switch @@ -5517,27 +5584,27 @@ void ASTSlot::visit(LiteralOperatorIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{161}; break; case 1: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -5549,12 +5616,12 @@ void ASTSlot::visit(ConversionFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{161}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; } // switch @@ -5566,27 +5633,27 @@ void ASTSlot::visit(SimpleTemplateIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{208}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -5598,22 +5665,22 @@ void ASTSlot::visit(LiteralOperatorTemplateIdAST* ast) { case 0: // literalOperatorId value_ = reinterpret_cast(ast->literalOperatorId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{134}; + slotNameIndex_ = SlotNameIndex{136}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{208}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; } // switch @@ -5625,22 +5692,22 @@ void ASTSlot::visit(OperatorFunctionTemplateIdAST* ast) { case 0: // operatorFunctionId value_ = reinterpret_cast(ast->operatorFunctionId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{160}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{208}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; } // switch @@ -5652,7 +5719,7 @@ void ASTSlot::visit(GlobalNestedNameSpecifierAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -5664,22 +5731,22 @@ void ASTSlot::visit(SimpleNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -5691,12 +5758,12 @@ void ASTSlot::visit(DecltypeNestedNameSpecifierAST* ast) { case 0: // decltypeSpecifier value_ = reinterpret_cast(ast->decltypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{59}; + slotNameIndex_ = SlotNameIndex{60}; break; case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -5708,27 +5775,27 @@ void ASTSlot::visit(TemplateNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 2: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{209}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -5740,17 +5807,17 @@ void ASTSlot::visit(DefaultFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 1: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{60}; + slotNameIndex_ = SlotNameIndex{61}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -5762,17 +5829,17 @@ void ASTSlot::visit(CompoundStatementFunctionBodyAST* ast) { case 0: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 1: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{140}; break; case 2: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; } // switch @@ -5784,27 +5851,27 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{219}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{140}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{199}; break; case 4: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{98}; + slotNameIndex_ = SlotNameIndex{99}; break; } // switch @@ -5816,17 +5883,17 @@ void ASTSlot::visit(DeleteFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{61}; + slotNameIndex_ = SlotNameIndex{62}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -5838,7 +5905,7 @@ void ASTSlot::visit(TypeTemplateArgumentAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; } // switch @@ -5850,7 +5917,7 @@ void ASTSlot::visit(ExpressionTemplateArgumentAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -5862,17 +5929,17 @@ void ASTSlot::visit(ThrowExceptionSpecifierAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5884,22 +5951,22 @@ void ASTSlot::visit(NoexceptSpecifierAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -5911,12 +5978,12 @@ void ASTSlot::visit(SimpleRequirementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -5928,37 +5995,37 @@ void ASTSlot::visit(CompoundRequirementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; case 3: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 4: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{141}; break; case 5: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{220}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -5970,32 +6037,32 @@ void ASTSlot::visit(TypeRequirementAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{210}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -6007,17 +6074,17 @@ void ASTSlot::visit(NestedRequirementAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{183}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -6029,17 +6096,17 @@ void ASTSlot::visit(NewParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; } // switch @@ -6063,32 +6130,32 @@ void ASTSlot::visit(ParenMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 3: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -6100,12 +6167,12 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{231}; break; case 2: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); @@ -6115,7 +6182,7 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -6127,7 +6194,7 @@ void ASTSlot::visit(ThisLambdaCaptureAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{213}; break; } // switch @@ -6139,12 +6206,12 @@ void ASTSlot::visit(DerefThisLambdaCaptureAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{198}; break; case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{213}; break; } // switch @@ -6156,17 +6223,17 @@ void ASTSlot::visit(SimpleLambdaCaptureAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -6183,17 +6250,17 @@ void ASTSlot::visit(RefLambdaCaptureAST* ast) { case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -6210,22 +6277,22 @@ void ASTSlot::visit(RefInitLambdaCaptureAST* ast) { case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -6237,22 +6304,22 @@ void ASTSlot::visit(InitLambdaCaptureAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -6264,7 +6331,7 @@ void ASTSlot::visit(EllipsisExceptionDeclarationAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -6281,12 +6348,12 @@ void ASTSlot::visit(TypeExceptionDeclarationAST* ast) { case 1: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{225}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; } // switch @@ -6298,12 +6365,12 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{130}; break; case 1: // lbracket2Loc value_ = ast->lbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{129}; break; case 2: // attributeUsingPrefix value_ = reinterpret_cast(ast->attributeUsingPrefix); @@ -6318,12 +6385,12 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 4: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; case 5: // rbracket2Loc value_ = ast->rbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{175}; break; } // switch @@ -6340,22 +6407,22 @@ void ASTSlot::visit(GccAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // lparen2Loc value_ = ast->lparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{137}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // rparen2Loc value_ = ast->rparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -6372,27 +6439,27 @@ void ASTSlot::visit(AlignasAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -6409,27 +6476,27 @@ void ASTSlot::visit(AlignasTypeAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -6446,22 +6513,22 @@ void ASTSlot::visit(AsmAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{189}; break; case 4: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; } // switch @@ -6478,12 +6545,12 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{190}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 3: // attributeNamespace value_ = reinterpret_cast(ast->attributeNamespace); @@ -6493,7 +6560,7 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch @@ -6505,12 +6572,12 @@ void ASTSlot::visit(SimpleAttributeTokenAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; } // switch diff --git a/src/parser/cxx/ast_slot.h b/src/parser/cxx/ast_slot.h index 2bbf20c0..530a13e1 100644 --- a/src/parser/cxx/ast_slot.h +++ b/src/parser/cxx/ast_slot.h @@ -227,6 +227,8 @@ class ASTSlot final : ASTVisitor { void visit(SizeTypeSpecifierAST* ast) override; void visit(SignTypeSpecifierAST* ast) override; void visit(BuiltinTypeSpecifierAST* ast) override; + void visit(UnaryBuiltinTypeSpecifierAST* ast) override; + void visit(BinaryBuiltinTypeSpecifierAST* ast) override; void visit(IntegralTypeSpecifierAST* ast) override; void visit(FloatingPointTypeSpecifierAST* ast) override; void visit(ComplexTypeSpecifierAST* ast) override; diff --git a/src/parser/cxx/ast_visitor.cc b/src/parser/cxx/ast_visitor.cc index 63a8f48a..ba1b946b 100644 --- a/src/parser/cxx/ast_visitor.cc +++ b/src/parser/cxx/ast_visitor.cc @@ -774,6 +774,15 @@ void ASTVisitor::visit(SignTypeSpecifierAST* ast) {} void ASTVisitor::visit(BuiltinTypeSpecifierAST* ast) {} +void ASTVisitor::visit(UnaryBuiltinTypeSpecifierAST* ast) { + accept(ast->typeId); +} + +void ASTVisitor::visit(BinaryBuiltinTypeSpecifierAST* ast) { + accept(ast->leftTypeId); + accept(ast->rightTypeId); +} + void ASTVisitor::visit(IntegralTypeSpecifierAST* ast) {} void ASTVisitor::visit(FloatingPointTypeSpecifierAST* ast) {} diff --git a/src/parser/cxx/ast_visitor.h b/src/parser/cxx/ast_visitor.h index 3a1440ea..dc278e75 100644 --- a/src/parser/cxx/ast_visitor.h +++ b/src/parser/cxx/ast_visitor.h @@ -216,6 +216,8 @@ class ASTVisitor { virtual void visit(SizeTypeSpecifierAST* ast); virtual void visit(SignTypeSpecifierAST* ast); virtual void visit(BuiltinTypeSpecifierAST* ast); + virtual void visit(UnaryBuiltinTypeSpecifierAST* ast); + virtual void visit(BinaryBuiltinTypeSpecifierAST* ast); virtual void visit(IntegralTypeSpecifierAST* ast); virtual void visit(FloatingPointTypeSpecifierAST* ast); virtual void visit(ComplexTypeSpecifierAST* ast); diff --git a/src/parser/cxx/control.cc b/src/parser/cxx/control.cc index 521935c0..6dc778e9 100644 --- a/src/parser/cxx/control.cc +++ b/src/parser/cxx/control.cc @@ -152,6 +152,7 @@ struct Control::Private { std::forward_list usingDeclarationSymbols; std::forward_list typeTraitIdentifierInfos; + std::forward_list unaryBuiltinTypeInfos; int anonymousIdCount = 0; @@ -168,6 +169,12 @@ struct Control::Private { FOR_EACH_BUILTIN_TYPE_TRAIT(PROCESS_BUILTIN) #undef PROCESS_BUILTIN + +#define PROCESS_UNARY_BUILTIN(id, name) \ + getIdentifier(name)->setInfo( \ + &unaryBuiltinTypeInfos.emplace_front(UnaryBuiltinTypeKind::T_##id)); + FOR_EACH_UNARY_BUILTIN_TYPE_TRAIT(PROCESS_UNARY_BUILTIN) +#undef PROCESS_UNARY_BUILTIN } }; diff --git a/src/parser/cxx/decl_specs.cc b/src/parser/cxx/decl_specs.cc index 51b64594..df335254 100644 --- a/src/parser/cxx/decl_specs.cc +++ b/src/parser/cxx/decl_specs.cc @@ -56,6 +56,8 @@ struct DeclSpecs::Visitor { void operator()(SizeTypeSpecifierAST* ast); void operator()(SignTypeSpecifierAST* ast); void operator()(BuiltinTypeSpecifierAST* ast); + void operator()(UnaryBuiltinTypeSpecifierAST* ast); + void operator()(BinaryBuiltinTypeSpecifierAST* ast); void operator()(IntegralTypeSpecifierAST* ast); void operator()(FloatingPointTypeSpecifierAST* ast); void operator()(ComplexTypeSpecifierAST* ast); @@ -197,6 +199,16 @@ void DeclSpecs::Visitor::operator()(BuiltinTypeSpecifierAST* ast) { } // switch } +void DeclSpecs::Visitor::operator()(UnaryBuiltinTypeSpecifierAST* ast) { + specs.typeSpecifier_ = ast; + // ### todo +} + +void DeclSpecs::Visitor::operator()(BinaryBuiltinTypeSpecifierAST* ast) { + specs.typeSpecifier_ = ast; + // ### todo +} + void DeclSpecs::Visitor::operator()(IntegralTypeSpecifierAST* ast) { specs.typeSpecifier_ = ast; switch (ast->specifier) { diff --git a/src/parser/cxx/flatbuffers/ast_decoder.cc b/src/parser/cxx/flatbuffers/ast_decoder.cc index cce7b031..db2f0aa5 100644 --- a/src/parser/cxx/flatbuffers/ast_decoder.cc +++ b/src/parser/cxx/flatbuffers/ast_decoder.cc @@ -511,6 +511,12 @@ auto ASTDecoder::decodeSpecifier(const void* ptr, io::Specifier type) case io::Specifier_BuiltinTypeSpecifier: return decodeBuiltinTypeSpecifier( reinterpret_cast(ptr)); + case io::Specifier_UnaryBuiltinTypeSpecifier: + return decodeUnaryBuiltinTypeSpecifier( + reinterpret_cast(ptr)); + case io::Specifier_BinaryBuiltinTypeSpecifier: + return decodeBinaryBuiltinTypeSpecifier( + reinterpret_cast(ptr)); case io::Specifier_IntegralTypeSpecifier: return decodeIntegralTypeSpecifier( reinterpret_cast(ptr)); @@ -3495,6 +3501,34 @@ auto ASTDecoder::decodeBuiltinTypeSpecifier( return ast; } +auto ASTDecoder::decodeUnaryBuiltinTypeSpecifier( + const io::UnaryBuiltinTypeSpecifier* node) + -> UnaryBuiltinTypeSpecifierAST* { + if (!node) return nullptr; + + auto ast = new (pool_) UnaryBuiltinTypeSpecifierAST(); + ast->builtinLoc = SourceLocation(node->builtin_loc()); + ast->lparenLoc = SourceLocation(node->lparen_loc()); + ast->typeId = decodeTypeId(node->type_id()); + ast->rparenLoc = SourceLocation(node->rparen_loc()); + return ast; +} + +auto ASTDecoder::decodeBinaryBuiltinTypeSpecifier( + const io::BinaryBuiltinTypeSpecifier* node) + -> BinaryBuiltinTypeSpecifierAST* { + if (!node) return nullptr; + + auto ast = new (pool_) BinaryBuiltinTypeSpecifierAST(); + ast->builtinLoc = SourceLocation(node->builtin_loc()); + ast->lparenLoc = SourceLocation(node->lparen_loc()); + ast->leftTypeId = decodeTypeId(node->left_type_id()); + ast->commaLoc = SourceLocation(node->comma_loc()); + ast->rightTypeId = decodeTypeId(node->right_type_id()); + ast->rparenLoc = SourceLocation(node->rparen_loc()); + return ast; +} + auto ASTDecoder::decodeIntegralTypeSpecifier( const io::IntegralTypeSpecifier* node) -> IntegralTypeSpecifierAST* { if (!node) return nullptr; diff --git a/src/parser/cxx/flatbuffers/ast_encoder.cc b/src/parser/cxx/flatbuffers/ast_encoder.cc index c831b82a..b2ef47ed 100644 --- a/src/parser/cxx/flatbuffers/ast_encoder.cc +++ b/src/parser/cxx/flatbuffers/ast_encoder.cc @@ -3922,6 +3922,36 @@ void ASTEncoder::visit(BuiltinTypeSpecifierAST* ast) { type_ = io::Specifier_BuiltinTypeSpecifier; } +void ASTEncoder::visit(UnaryBuiltinTypeSpecifierAST* ast) { + const auto typeId = accept(ast->typeId); + + io::UnaryBuiltinTypeSpecifier::Builder builder{fbb_}; + builder.add_builtin_loc(ast->builtinLoc.index()); + builder.add_lparen_loc(ast->lparenLoc.index()); + builder.add_type_id(typeId.o); + builder.add_rparen_loc(ast->rparenLoc.index()); + + offset_ = builder.Finish().Union(); + type_ = io::Specifier_UnaryBuiltinTypeSpecifier; +} + +void ASTEncoder::visit(BinaryBuiltinTypeSpecifierAST* ast) { + const auto leftTypeId = accept(ast->leftTypeId); + + const auto rightTypeId = accept(ast->rightTypeId); + + io::BinaryBuiltinTypeSpecifier::Builder builder{fbb_}; + builder.add_builtin_loc(ast->builtinLoc.index()); + builder.add_lparen_loc(ast->lparenLoc.index()); + builder.add_left_type_id(leftTypeId.o); + builder.add_comma_loc(ast->commaLoc.index()); + builder.add_right_type_id(rightTypeId.o); + builder.add_rparen_loc(ast->rparenLoc.index()); + + offset_ = builder.Finish().Union(); + type_ = io::Specifier_BinaryBuiltinTypeSpecifier; +} + void ASTEncoder::visit(IntegralTypeSpecifierAST* ast) { io::IntegralTypeSpecifier::Builder builder{fbb_}; builder.add_specifier_loc(ast->specifierLoc.index()); diff --git a/src/parser/cxx/names.h b/src/parser/cxx/names.h index 98600d2e..e0ee1e22 100644 --- a/src/parser/cxx/names.h +++ b/src/parser/cxx/names.h @@ -55,6 +55,21 @@ class TypeTraitIdentifierInfo final : public IdentifierInfo { BuiltinTypeTraitKind trait_; }; +class UnaryBuiltinTypeInfo final : public IdentifierInfo { + public: + static constexpr auto Kind = IdentifierInfoKind::kUnaryBuiltinType; + + explicit UnaryBuiltinTypeInfo(UnaryBuiltinTypeKind builtinKind) + : IdentifierInfo(Kind), builtinKind_(builtinKind) {} + + [[nodiscard]] auto builtinKind() const -> UnaryBuiltinTypeKind { + return builtinKind_; + } + + private: + UnaryBuiltinTypeKind builtinKind_; +}; + class Name { public: Name(NameKind kind, std::size_t hashValue) diff --git a/src/parser/cxx/names_fwd.h b/src/parser/cxx/names_fwd.h index 08bdcba4..d6450471 100644 --- a/src/parser/cxx/names_fwd.h +++ b/src/parser/cxx/names_fwd.h @@ -55,6 +55,7 @@ using TemplateArgument = enum class IdentifierInfoKind { kTypeTrait, + kUnaryBuiltinType, }; class IdentifierInfo; diff --git a/src/parser/cxx/parser.cc b/src/parser/cxx/parser.cc index a652fa18..f25ea4fb 100644 --- a/src/parser/cxx/parser.cc +++ b/src/parser/cxx/parser.cc @@ -2316,6 +2316,28 @@ auto Parser::parse_typename_expression(ExpressionAST*& yyast, return true; } +auto Parser::parse_unary_builtin_type_op(SourceLocation& loc, + UnaryBuiltinTypeKind& builtinKind) + -> bool { + if (!lookat(TokenKind::T_IDENTIFIER, TokenKind::T_LPAREN)) return false; + + auto identifier = unit->identifier(currentLocation()); + + auto info = identifier->info(); + if (!info) return false; + + if (info->kind() != IdentifierInfoKind::kUnaryBuiltinType) return false; + + auto builtin = static_cast(info); + + if (builtin->builtinKind() == UnaryBuiltinTypeKind::T_NONE) return false; + + builtinKind = builtin->builtinKind(); + loc = consumeToken(); + + return true; +} + auto Parser::parse_type_traits_op(SourceLocation& loc, BuiltinTypeTraitKind& builtinKind) -> bool { const auto builtin = LA().builtinTypeTrait(); @@ -4298,9 +4320,9 @@ auto Parser::parse_simple_declaration( if (auto scope = decl.getScope()) { setScope(scope); - } else if (q && config().checkTypes) { - parse_error(q->firstSourceLocation(), - std::format("unresolved class or namespace")); + } else if (q) { + type_error(q->firstSourceLocation(), + std::format("unresolved class or namespace")); } const Name* functionName = decl.getName(); @@ -4308,10 +4330,10 @@ auto Parser::parse_simple_declaration( binder_.getFunction(scope(), functionName, functionType); if (!functionSymbol) { - if (q && config().checkTypes) { - parse_error(q->firstSourceLocation(), - std::format("class or namespace has no member named '{}'", - to_string(functionName))); + if (q) { + type_error(q->firstSourceLocation(), + std::format("class or namespace has no member named '{}'", + to_string(functionName))); } functionSymbol = binder_.declareFunction(declarator, decl); @@ -4414,10 +4436,8 @@ auto Parser::parse_notypespec_function_definition( if (auto scope = decl.getScope()) { setScope(scope); } else if (auto q = decl.getNestedNameSpecifier()) { - if (config().checkTypes) { - parse_error(q->firstSourceLocation(), - std::format("unresolved class or namespace")); - } + type_error(q->firstSourceLocation(), + std::format("unresolved class or namespace")); } FunctionDeclaratorChunkAST* functionDeclarator = nullptr; @@ -4541,17 +4561,17 @@ auto Parser::parse_static_assert_declaration(DeclarationAST*& yyast) -> bool { bool value = false; if (constValue.has_value()) { - ASTInterpreter interp{unit}; + auto interp = ASTInterpreter{unit}; value = interp.toBool(constValue.value()).value_or(false); } - if (!value && config().checkTypes) { + if (!value) { SourceLocation loc = ast->firstSourceLocation(); if (!ast->expression || !constValue.has_value()) { - parse_error(loc, - "static assertion expression is not an integral constant " - "expression"); + type_error(loc, + "static assertion expression is not an integral constant " + "expression"); } else { if (ast->literalLoc) loc = ast->literalLoc; @@ -4561,7 +4581,7 @@ auto Parser::parse_static_assert_declaration(DeclarationAST*& yyast) -> bool { std::string message = ast->literal ? ast->literal->value() : "static assert failed"; - unit->error(loc, std::move(message)); + type_error(loc, std::move(message)); } } } @@ -5009,6 +5029,7 @@ auto Parser::parse_simple_type_specifier(SpecifierAST*& yyast, DeclSpecs& specs) if (parse_primitive_type_specifier(yyast, specs)) return true; if (parse_placeholder_type_specifier(yyast, specs)) return true; if (parse_underlying_type_specifier(yyast, specs)) return true; + if (parse_unary_builtin_type_specifier(yyast, specs)) return true; if (parse_atomic_type_specifier(yyast, specs)) return true; if (parse_named_type_specifier(yyast, specs)) return true; if (parse_decltype_specifier_type_specifier(yyast, specs)) return true; @@ -5120,13 +5141,11 @@ auto Parser::parse_named_type_specifier(SpecifierAST*& yyast, DeclSpecs& specs) auto symbol = binder_.resolve(nestedNameSpecifier, unqualifiedId, checkTemplates); - if (config().checkTypes) { - if (!is_type(symbol)) { - auto name = get_name(control_, unqualifiedId); - parse_error(unqualifiedId->firstSourceLocation(), - std::format("'{}' is not a type", to_string(name))); - return false; - } + if (!is_type(symbol) && config().checkTypes) { + auto name = get_name(control_, unqualifiedId); + parse_error(unqualifiedId->firstSourceLocation(), + std::format("'{}' is not a type", to_string(name))); + return false; } lookahead.commit(); @@ -5178,6 +5197,30 @@ auto Parser::parse_underlying_type_specifier(SpecifierAST*& yyast, return true; } +auto Parser::parse_unary_builtin_type_specifier(SpecifierAST*& yyast, + DeclSpecs& specs) -> bool { + SourceLocation builtinLoc; + UnaryBuiltinTypeKind builtinKind = UnaryBuiltinTypeKind::T_NONE; + + if (!parse_unary_builtin_type_op(builtinLoc, builtinKind)) return false; + + auto ast = make_node(pool_); + yyast = ast; + + ast->builtinLoc = builtinLoc; + ast->builtinKind = builtinKind; + + expect(TokenKind::T_LPAREN, ast->lparenLoc); + + if (!parse_type_id(ast->typeId)) parse_error("expected type id"); + + expect(TokenKind::T_RPAREN, ast->rparenLoc); + + specs.accept(ast); + + return true; +} + auto Parser::parse_atomic_type_specifier(SpecifierAST*& yyast, DeclSpecs& specs) -> bool { SourceLocation atomicLoc; @@ -5659,9 +5702,9 @@ auto Parser::parse_declarator(DeclaratorAST*& yyast, Decl& decl, if (auto scope = decl.getScope()) { setScope(scope); - } else if (q && config().checkTypes) { - parse_error(q->firstSourceLocation(), - std::format("unresolved class or namespace")); + } else if (q) { + type_error(q->firstSourceLocation(), + std::format("unresolved class or namespace")); } List* declaratorChunkList = nullptr; diff --git a/src/parser/cxx/parser.h b/src/parser/cxx/parser.h index 418c16d1..228099b7 100644 --- a/src/parser/cxx/parser.h +++ b/src/parser/cxx/parser.h @@ -269,6 +269,10 @@ class Parser final { const ExprContext& ctx) -> bool; [[nodiscard]] auto parse_typename_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool; + + [[nodiscard]] auto parse_unary_builtin_type_op( + SourceLocation& loc, UnaryBuiltinTypeKind& builtinKind) -> bool; + [[nodiscard]] auto parse_type_traits_op(SourceLocation& loc, BuiltinTypeTraitKind& builtinKind) -> bool; @@ -454,6 +458,11 @@ class Parser final { SpecifierAST*& yyast, DeclSpecs& specs) -> bool; [[nodiscard]] auto parse_underlying_type_specifier(SpecifierAST*& yyast, DeclSpecs& specs) -> bool; + + [[nodiscard]] auto parse_unary_builtin_type_specifier(SpecifierAST*& yyast, + DeclSpecs& specs) + -> bool; + [[nodiscard]] auto parse_atomic_type_specifier(SpecifierAST*& yyast, DeclSpecs& specs) -> bool; [[nodiscard]] auto parse_primitive_type_specifier(SpecifierAST*& yyast, diff --git a/src/parser/cxx/private/ast_decoder.h b/src/parser/cxx/private/ast_decoder.h index 3a5e4b3a..37874e4a 100644 --- a/src/parser/cxx/private/ast_decoder.h +++ b/src/parser/cxx/private/ast_decoder.h @@ -409,6 +409,12 @@ class ASTDecoder { -> SignTypeSpecifierAST*; auto decodeBuiltinTypeSpecifier(const io::BuiltinTypeSpecifier* node) -> BuiltinTypeSpecifierAST*; + auto decodeUnaryBuiltinTypeSpecifier( + const io::UnaryBuiltinTypeSpecifier* node) + -> UnaryBuiltinTypeSpecifierAST*; + auto decodeBinaryBuiltinTypeSpecifier( + const io::BinaryBuiltinTypeSpecifier* node) + -> BinaryBuiltinTypeSpecifierAST*; auto decodeIntegralTypeSpecifier(const io::IntegralTypeSpecifier* node) -> IntegralTypeSpecifierAST*; auto decodeFloatingPointTypeSpecifier( diff --git a/src/parser/cxx/private/ast_encoder.h b/src/parser/cxx/private/ast_encoder.h index a7e1f2dd..25ab7354 100644 --- a/src/parser/cxx/private/ast_encoder.h +++ b/src/parser/cxx/private/ast_encoder.h @@ -301,6 +301,8 @@ class ASTEncoder : ASTVisitor { void visit(SizeTypeSpecifierAST* ast) override; void visit(SignTypeSpecifierAST* ast) override; void visit(BuiltinTypeSpecifierAST* ast) override; + void visit(UnaryBuiltinTypeSpecifierAST* ast) override; + void visit(BinaryBuiltinTypeSpecifierAST* ast) override; void visit(IntegralTypeSpecifierAST* ast) override; void visit(FloatingPointTypeSpecifierAST* ast) override; void visit(ComplexTypeSpecifierAST* ast) override; diff --git a/src/parser/cxx/token_fwd.h b/src/parser/cxx/token_fwd.h index d0e76969..db38595e 100644 --- a/src/parser/cxx/token_fwd.h +++ b/src/parser/cxx/token_fwd.h @@ -270,6 +270,25 @@ class Token; V(__IS_VOID, "__is_void") \ V(__IS_VOLATILE, "__is_volatile") +#define FOR_EACH_UNARY_BUILTIN_TYPE_TRAIT(V) \ + V(__ADD_LVALUE_REFERENCE, "__add_lvalue_reference") \ + V(__ADD_POINTER, "__add_pointer") \ + V(__ADD_RVALUE_REFERENCE, "__add_rvalue_reference") \ + V(__DECAY, "__decay") \ + V(__MAKE_SIGNED, "__make_signed") \ + V(__MAKE_UNSIGNED, "__make_unsigned") \ + V(__REMOVE_ALL_EXTENTS, "__remove_all_extents") \ + V(__REMOVE_CONST, "__remove_const") \ + V(__REMOVE_CV, "__remove_cv") \ + V(__REMOVE_CVREF, "__remove_cvref") \ + V(__REMOVE_EXTENT, "__remove_extent") \ + V(__REMOVE_POINTER, "__remove_pointer") \ + V(__REMOVE_REFERENCE_T, "__remove_reference_t") \ + V(__REMOVE_RESTRICT, "__remove_restrict") \ + V(__REMOVE_VOLATILE, "__remove_volatile") + +#define FOR_EACH_BINARY_BUILTIN_TYPE_TRAIT(V) + #define FOR_EACH_TOKEN_ALIAS(V) \ V(RESTRICT, __RESTRICT__) \ V(__ALIGNOF__, ALIGNOF) \ @@ -322,6 +341,16 @@ enum class BuiltinTypeTraitKind { FOR_EACH_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) }; +enum class UnaryBuiltinTypeKind { + T_NONE, + FOR_EACH_UNARY_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) +}; + +enum class BinaryBuiltinTypeKind { + T_NONE, + FOR_EACH_BINARY_BUILTIN_TYPE_TRAIT(TOKEN_ENUM) +}; + #undef TOKEN_ENUM #undef TOKEN_ALIAS_ENUM // clang-format on