fix potential integer underflow in std.zig.Ast.fullCall

This commit is contained in:
Techatrix 2022-12-18 05:59:43 +01:00 committed by GitHub
parent 901c3e9636
commit 4809e0ea7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 3 deletions

View File

@ -2189,9 +2189,9 @@ fn fullCall(tree: Ast, info: full.Call.Components) full.Call {
.ast = info,
.async_token = null,
};
const maybe_async_token = tree.firstToken(info.fn_expr) - 1;
if (token_tags[maybe_async_token] == .keyword_async) {
result.async_token = maybe_async_token;
const first_token = tree.firstToken(info.fn_expr);
if (first_token != 0 and token_tags[first_token - 1] == .keyword_async) {
result.async_token = first_token - 1;
}
return result;
}

View File

@ -214,6 +214,13 @@ test "zig fmt: top-level fields" {
);
}
test "zig fmt: top-level tuple function call type" {
try testCanonical(
\\foo()
\\
);
}
test "zig fmt: C style containers" {
try testError(
\\struct Foo {