From 771b9cf81985732d8b046eb7862283b1a9086873 Mon Sep 17 00:00:00 2001 From: Antonin Delpeuch Date: Thu, 5 Jun 2025 18:31:32 +0200 Subject: [PATCH] =?UTF-8?q?feat:=C2=A0Add=20support=20for=20`impl=20const`?= =?UTF-8?q?=20(#8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://codeberg.org/grammar-orchard/tree-sitter-rust-orchard/pulls/8 Co-authored-by: Antonin Delpeuch Co-committed-by: Antonin Delpeuch --- grammar.js | 5 +++-- test/corpus/declarations.txt | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/grammar.js b/grammar.js index 1907a3a3..3cf16438 100644 --- a/grammar.js +++ b/grammar.js @@ -488,11 +488,12 @@ module.exports = grammar({ field('bounds', $.trait_bounds), ), - impl_item: $ => seq( + impl_item: $ => prec(1, seq( optional('unsafe'), 'impl', field('type_parameters', optional($.type_parameters)), optional(seq( + optional('const'), optional('!'), field('trait', choice( $._type_identifier, @@ -504,7 +505,7 @@ module.exports = grammar({ field('type', $._type), optional($.where_clause), choice(field('body', $.declaration_list), ';'), - ), + )), trait_item: $ => seq( optional($.visibility_modifier), diff --git a/test/corpus/declarations.txt b/test/corpus/declarations.txt index 77195e86..044ecdf3 100644 --- a/test/corpus/declarations.txt +++ b/test/corpus/declarations.txt @@ -1667,6 +1667,21 @@ unsafe impl Foo { (type_identifier) (declaration_list))) +================================================================================ +Const impls +================================================================================ + +impl const Foo for Bar { +} + +-------------------------------------------------------------------------------- + +(source_file + (impl_item + (type_identifier) + (type_identifier) + (declaration_list))) + ================================================================================ Disable automatically derived trait impls ================================================================================