From 46e08442cd40fb33742594278a5554104cebcb31 Mon Sep 17 00:00:00 2001 From: Vasil Markoukin Date: Tue, 8 Aug 2023 18:38:19 +0300 Subject: [PATCH] Allow `$.stable_type_identifier` in `derives_clause` (#331) Resolves #323 Summary ---- Support for dot-separated type references in derives clause ```scala case class A() derives B.C ``` --- corpus/definitions.txt | 6 ++++-- grammar.js | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/corpus/definitions.txt b/corpus/definitions.txt index d741390e8..b8e1e54e1 100644 --- a/corpus/definitions.txt +++ b/corpus/definitions.txt @@ -502,7 +502,7 @@ class A ================================================================================ Class definitions (Scala 3) ================================================================================ -final case class C() extends A derives B, C +final case class C() extends A derives B, C.D -------------------------------------------------------------------------------- (compilation_unit @@ -514,7 +514,9 @@ final case class C() extends A derives B, C (type_identifier)) (derives_clause (type_identifier) - (type_identifier)))) + (stable_type_identifier + (identifier) + (type_identifier))))) ================================================================================ Subclass definitions diff --git a/grammar.js b/grammar.js index dd6fb1d48..cd9416fb2 100644 --- a/grammar.js +++ b/grammar.js @@ -681,7 +681,7 @@ module.exports = grammar({ ), derives_clause: $ => - prec.left(seq("derives", commaSep1(field("type", $._type_identifier)))), + prec.left(seq("derives", commaSep1(field("type", choice($._type_identifier, $.stable_type_identifier))))), class_parameters: $ => prec(