diff --git a/corpus/definitions.txt b/corpus/definitions.txt index f57109f83..0329b68e1 100644 --- a/corpus/definitions.txt +++ b/corpus/definitions.txt @@ -786,7 +786,7 @@ Trait definitions trait A extends B -trait A extends B with C +trait A extends B with C derives D trait T[U] { } @@ -805,6 +805,8 @@ trait T[U] extends V.W[U] { (identifier) (extends_clause (type_identifier) + (type_identifier)) + (derives_clause (type_identifier))) (trait_definition (identifier) @@ -1330,7 +1332,7 @@ object A: (indented_cases (case_clause (identifier) - (string)))) + (string)))) (given_definition (parameters (parameter diff --git a/grammar.js b/grammar.js index 3b15aed33..fc62031b9 100644 --- a/grammar.js +++ b/grammar.js @@ -301,7 +301,7 @@ module.exports = grammar({ $._class_constructor, field("extend", optional($.extends_clause)), field("derive", optional($.derives_clause)), - optional($._definition_body), + field("body", optional($._definition_body)), ), _definition_body: $ => @@ -329,9 +329,7 @@ module.exports = grammar({ repeat($.annotation), optional($.modifiers), "trait", - $._class_constructor, - field("extend", optional($.extends_clause)), - field("body", optional($._definition_body)), + $._class_definition, ), ),