From abfd30c44d6b0fb814b294b11802a90a1959e23d Mon Sep 17 00:00:00 2001 From: agra Date: Wed, 27 May 2026 22:03:24 +0300 Subject: [PATCH] ffi: drop legacy-variadic-form migration diagnostic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The special-case `return self.fail("legacy variadic syntax ...")` in `parseParams` is gone. `parseTypeExpr` already errors naturally on a leading `..` (now reported as "expected type name"), which is enough — the language-level cutover happened in the previous commit; no need for the parser to keep a migration breadcrumb. --- src/parser.zig | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/parser.zig b/src/parser.zig index 0f341d4..98e1933 100644 --- a/src/parser.zig +++ b/src/parser.zig @@ -1631,16 +1631,6 @@ pub const Parser = struct { continue; } self.advance(); // consume ':' - // The legacy `name: ..T` form is rejected — write `..name: []T`. - // Both forms used to live; the leading-`..` form is the one the - // language settled on (the AST shape downstream assumes the - // declared type IS the slice). Leaving the post-colon form - // accepted lets users land code that bypasses the new-form - // lowering paths (resolveParamType / packVariadicCallArgs) and - // hit cross-module emit crashes (issue-0049). Hard error here. - if (self.current.tag == .dot_dot) { - return self.fail("legacy variadic syntax `name: ..T` is no longer supported — use `..name: []T` instead"); - } const param_type = try self.parseTypeExpr(); var is_comptime_param = false; if (is_ct_param and param_type.data == .type_expr) {