errdefer and try/defer fix

This commit is contained in:
2026-07-13 19:20:22 +02:00
parent 9e75549d02
commit 6de4d9f9f3
23 changed files with 113190 additions and 105482 deletions
+11 -1
View File
@@ -278,7 +278,17 @@ module.exports = grammar({
break_statement: $ => seq('break', optional(seq(':', field('label', $.identifier)))),
continue_statement: $ => seq('continue', optional(seq(':', field('label', $.identifier)))),
defer_statement: $ => seq('defer', repeat($._newline), field('body', $.statement)),
defer_statement: $ => choice(
seq('defer', repeat($._newline), field('body', $.statement)),
seq(
'errdefer',
repeat($._newline),
optional(seq(field('capture', $.error_capture), repeat($._newline))),
field('body', $.statement),
),
),
error_capture: $ => seq('|', choice($.identifier, $.sink), '|'),
labeled_block: $ => seq(
field('label', $.identifier),