Commit 484f8a4cc2
Changed files (1)
std
zig
std/zig/ast.zig
@@ -160,103 +160,101 @@ pub const Error = union(enum) {
pub fn render(self: *const Error, tokens: *Tree.TokenList, stream: var) !void {
switch (self.*) {
- // TODO https://github.com/ziglang/zig/issues/683
- @TagType(Error).InvalidToken => |*x| return x.render(tokens, stream),
- @TagType(Error).InvalidAmpersandAmpersand => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedContainerMembers => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedStringLiteral => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedIntegerLiteral => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedPubItem => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedIdentifier => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedStatement => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedVarDeclOrFn => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedVarDecl => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedReturnType => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedAggregateKw => |*x| return x.render(tokens, stream),
- @TagType(Error).UnattachedDocComment => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedEqOrSemi => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedSemiOrLBrace => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedSemiOrElse => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedLabelOrLBrace => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedLBrace => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedColonOrRParen => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedLabelable => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedInlinable => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedAsmOutputReturnOrType => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedCall => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedCallOrFnProto => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedSliceOrRBracket => |*x| return x.render(tokens, stream),
- @TagType(Error).ExtraAlignQualifier => |*x| return x.render(tokens, stream),
- @TagType(Error).ExtraConstQualifier => |*x| return x.render(tokens, stream),
- @TagType(Error).ExtraVolatileQualifier => |*x| return x.render(tokens, stream),
- @TagType(Error).ExtraAllowZeroQualifier => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedTypeExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedPrimaryTypeExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedParamType => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedPrimaryExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedToken => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedCommaOrEnd => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedParamList => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedPayload => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedBlockOrAssignment => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedBlockOrExpression => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedExprOrAssignment => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedPrefixExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedLoopExpr => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedDerefOrUnwrap => |*x| return x.render(tokens, stream),
- @TagType(Error).ExpectedSuffixOp => |*x| return x.render(tokens, stream),
+ .InvalidToken => |*x| return x.render(tokens, stream),
+ .InvalidAmpersandAmpersand => |*x| return x.render(tokens, stream),
+ .ExpectedContainerMembers => |*x| return x.render(tokens, stream),
+ .ExpectedStringLiteral => |*x| return x.render(tokens, stream),
+ .ExpectedIntegerLiteral => |*x| return x.render(tokens, stream),
+ .ExpectedPubItem => |*x| return x.render(tokens, stream),
+ .ExpectedIdentifier => |*x| return x.render(tokens, stream),
+ .ExpectedStatement => |*x| return x.render(tokens, stream),
+ .ExpectedVarDeclOrFn => |*x| return x.render(tokens, stream),
+ .ExpectedVarDecl => |*x| return x.render(tokens, stream),
+ .ExpectedReturnType => |*x| return x.render(tokens, stream),
+ .ExpectedAggregateKw => |*x| return x.render(tokens, stream),
+ .UnattachedDocComment => |*x| return x.render(tokens, stream),
+ .ExpectedEqOrSemi => |*x| return x.render(tokens, stream),
+ .ExpectedSemiOrLBrace => |*x| return x.render(tokens, stream),
+ .ExpectedSemiOrElse => |*x| return x.render(tokens, stream),
+ .ExpectedLabelOrLBrace => |*x| return x.render(tokens, stream),
+ .ExpectedLBrace => |*x| return x.render(tokens, stream),
+ .ExpectedColonOrRParen => |*x| return x.render(tokens, stream),
+ .ExpectedLabelable => |*x| return x.render(tokens, stream),
+ .ExpectedInlinable => |*x| return x.render(tokens, stream),
+ .ExpectedAsmOutputReturnOrType => |*x| return x.render(tokens, stream),
+ .ExpectedCall => |*x| return x.render(tokens, stream),
+ .ExpectedCallOrFnProto => |*x| return x.render(tokens, stream),
+ .ExpectedSliceOrRBracket => |*x| return x.render(tokens, stream),
+ .ExtraAlignQualifier => |*x| return x.render(tokens, stream),
+ .ExtraConstQualifier => |*x| return x.render(tokens, stream),
+ .ExtraVolatileQualifier => |*x| return x.render(tokens, stream),
+ .ExtraAllowZeroQualifier => |*x| return x.render(tokens, stream),
+ .ExpectedTypeExpr => |*x| return x.render(tokens, stream),
+ .ExpectedPrimaryTypeExpr => |*x| return x.render(tokens, stream),
+ .ExpectedParamType => |*x| return x.render(tokens, stream),
+ .ExpectedExpr => |*x| return x.render(tokens, stream),
+ .ExpectedPrimaryExpr => |*x| return x.render(tokens, stream),
+ .ExpectedToken => |*x| return x.render(tokens, stream),
+ .ExpectedCommaOrEnd => |*x| return x.render(tokens, stream),
+ .ExpectedParamList => |*x| return x.render(tokens, stream),
+ .ExpectedPayload => |*x| return x.render(tokens, stream),
+ .ExpectedBlockOrAssignment => |*x| return x.render(tokens, stream),
+ .ExpectedBlockOrExpression => |*x| return x.render(tokens, stream),
+ .ExpectedExprOrAssignment => |*x| return x.render(tokens, stream),
+ .ExpectedPrefixExpr => |*x| return x.render(tokens, stream),
+ .ExpectedLoopExpr => |*x| return x.render(tokens, stream),
+ .ExpectedDerefOrUnwrap => |*x| return x.render(tokens, stream),
+ .ExpectedSuffixOp => |*x| return x.render(tokens, stream),
}
}
pub fn loc(self: *const Error) TokenIndex {
switch (self.*) {
- // TODO https://github.com/ziglang/zig/issues/683
- @TagType(Error).InvalidToken => |x| return x.token,
- @TagType(Error).InvalidAmpersandAmpersand => |x| return x.token,
- @TagType(Error).ExpectedContainerMembers => |x| return x.token,
- @TagType(Error).ExpectedStringLiteral => |x| return x.token,
- @TagType(Error).ExpectedIntegerLiteral => |x| return x.token,
- @TagType(Error).ExpectedPubItem => |x| return x.token,
- @TagType(Error).ExpectedIdentifier => |x| return x.token,
- @TagType(Error).ExpectedStatement => |x| return x.token,
- @TagType(Error).ExpectedVarDeclOrFn => |x| return x.token,
- @TagType(Error).ExpectedVarDecl => |x| return x.token,
- @TagType(Error).ExpectedReturnType => |x| return x.token,
- @TagType(Error).ExpectedAggregateKw => |x| return x.token,
- @TagType(Error).UnattachedDocComment => |x| return x.token,
- @TagType(Error).ExpectedEqOrSemi => |x| return x.token,
- @TagType(Error).ExpectedSemiOrLBrace => |x| return x.token,
- @TagType(Error).ExpectedSemiOrElse => |x| return x.token,
- @TagType(Error).ExpectedLabelOrLBrace => |x| return x.token,
- @TagType(Error).ExpectedLBrace => |x| return x.token,
- @TagType(Error).ExpectedColonOrRParen => |x| return x.token,
- @TagType(Error).ExpectedLabelable => |x| return x.token,
- @TagType(Error).ExpectedInlinable => |x| return x.token,
- @TagType(Error).ExpectedAsmOutputReturnOrType => |x| return x.token,
- @TagType(Error).ExpectedCall => |x| return x.node.firstToken(),
- @TagType(Error).ExpectedCallOrFnProto => |x| return x.node.firstToken(),
- @TagType(Error).ExpectedSliceOrRBracket => |x| return x.token,
- @TagType(Error).ExtraAlignQualifier => |x| return x.token,
- @TagType(Error).ExtraConstQualifier => |x| return x.token,
- @TagType(Error).ExtraVolatileQualifier => |x| return x.token,
- @TagType(Error).ExtraAllowZeroQualifier => |x| return x.token,
- @TagType(Error).ExpectedTypeExpr => |x| return x.token,
- @TagType(Error).ExpectedPrimaryTypeExpr => |x| return x.token,
- @TagType(Error).ExpectedParamType => |x| return x.token,
- @TagType(Error).ExpectedExpr => |x| return x.token,
- @TagType(Error).ExpectedPrimaryExpr => |x| return x.token,
- @TagType(Error).ExpectedToken => |x| return x.token,
- @TagType(Error).ExpectedCommaOrEnd => |x| return x.token,
- @TagType(Error).ExpectedParamList => |x| return x.token,
- @TagType(Error).ExpectedPayload => |x| return x.token,
- @TagType(Error).ExpectedBlockOrAssignment => |x| return x.token,
- @TagType(Error).ExpectedBlockOrExpression => |x| return x.token,
- @TagType(Error).ExpectedExprOrAssignment => |x| return x.token,
- @TagType(Error).ExpectedPrefixExpr => |x| return x.token,
- @TagType(Error).ExpectedLoopExpr => |x| return x.token,
- @TagType(Error).ExpectedDerefOrUnwrap => |x| return x.token,
- @TagType(Error).ExpectedSuffixOp => |x| return x.token,
+ .InvalidToken => |x| return x.token,
+ .InvalidAmpersandAmpersand => |x| return x.token,
+ .ExpectedContainerMembers => |x| return x.token,
+ .ExpectedStringLiteral => |x| return x.token,
+ .ExpectedIntegerLiteral => |x| return x.token,
+ .ExpectedPubItem => |x| return x.token,
+ .ExpectedIdentifier => |x| return x.token,
+ .ExpectedStatement => |x| return x.token,
+ .ExpectedVarDeclOrFn => |x| return x.token,
+ .ExpectedVarDecl => |x| return x.token,
+ .ExpectedReturnType => |x| return x.token,
+ .ExpectedAggregateKw => |x| return x.token,
+ .UnattachedDocComment => |x| return x.token,
+ .ExpectedEqOrSemi => |x| return x.token,
+ .ExpectedSemiOrLBrace => |x| return x.token,
+ .ExpectedSemiOrElse => |x| return x.token,
+ .ExpectedLabelOrLBrace => |x| return x.token,
+ .ExpectedLBrace => |x| return x.token,
+ .ExpectedColonOrRParen => |x| return x.token,
+ .ExpectedLabelable => |x| return x.token,
+ .ExpectedInlinable => |x| return x.token,
+ .ExpectedAsmOutputReturnOrType => |x| return x.token,
+ .ExpectedCall => |x| return x.node.firstToken(),
+ .ExpectedCallOrFnProto => |x| return x.node.firstToken(),
+ .ExpectedSliceOrRBracket => |x| return x.token,
+ .ExtraAlignQualifier => |x| return x.token,
+ .ExtraConstQualifier => |x| return x.token,
+ .ExtraVolatileQualifier => |x| return x.token,
+ .ExtraAllowZeroQualifier => |x| return x.token,
+ .ExpectedTypeExpr => |x| return x.token,
+ .ExpectedPrimaryTypeExpr => |x| return x.token,
+ .ExpectedParamType => |x| return x.token,
+ .ExpectedExpr => |x| return x.token,
+ .ExpectedPrimaryExpr => |x| return x.token,
+ .ExpectedToken => |x| return x.token,
+ .ExpectedCommaOrEnd => |x| return x.token,
+ .ExpectedParamList => |x| return x.token,
+ .ExpectedPayload => |x| return x.token,
+ .ExpectedBlockOrAssignment => |x| return x.token,
+ .ExpectedBlockOrExpression => |x| return x.token,
+ .ExpectedExprOrAssignment => |x| return x.token,
+ .ExpectedPrefixExpr => |x| return x.token,
+ .ExpectedLoopExpr => |x| return x.token,
+ .ExpectedDerefOrUnwrap => |x| return x.token,
+ .ExpectedSuffixOp => |x| return x.token,
}
}
@@ -1712,15 +1710,15 @@ pub const Node = struct {
i -= 1;
switch (self.op) {
- @TagType(Op).Call => |*call_info| {
+ .Call => |*call_info| {
if (i < call_info.params.len) return call_info.params.at(i).*;
i -= call_info.params.len;
},
- Op.ArrayAccess => |index_expr| {
+ .ArrayAccess => |index_expr| {
if (i < 1) return index_expr;
i -= 1;
},
- @TagType(Op).Slice => |range| {
+ .Slice => |range| {
if (i < 1) return range.start;
i -= 1;
@@ -1729,16 +1727,16 @@ pub const Node = struct {
i -= 1;
}
},
- Op.ArrayInitializer => |*exprs| {
+ .ArrayInitializer => |*exprs| {
if (i < exprs.len) return exprs.at(i).*;
i -= exprs.len;
},
- Op.StructInitializer => |*fields| {
+ .StructInitializer => |*fields| {
if (i < fields.len) return fields.at(i).*;
i -= fields.len;
},
- Op.UnwrapOptional,
- Op.Deref,
+ .UnwrapOptional,
+ .Deref,
=> {},
}
@@ -1747,7 +1745,7 @@ pub const Node = struct {
pub fn firstToken(self: *const SuffixOp) TokenIndex {
switch (self.op) {
- @TagType(Op).Call => |*call_info| if (call_info.async_attr) |async_attr| return async_attr.firstToken(),
+ .Call => |*call_info| if (call_info.async_attr) |async_attr| return async_attr.firstToken(),
else => {},
}
return self.lhs.firstToken();