Skip to content

Commit 45803f9

Browse files
authored
Merge pull request #439 from eed3si9n/wip/sip-47
2 parents 1405853 + ca827fb commit 45803f9

File tree

2 files changed

+60
-3
lines changed

2 files changed

+60
-3
lines changed

grammar.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -550,10 +550,14 @@ module.exports = grammar({
550550
prec.right(
551551
seq(
552552
field("name", $._identifier),
553-
field("type_parameters", optional($.type_parameters)),
554553
field(
555554
"parameters",
556-
repeat(seq(optional($._automatic_semicolon), $.parameters)),
555+
repeat(seq(optional($._automatic_semicolon),
556+
choice(
557+
$.parameters,
558+
$.type_parameters
559+
)
560+
)),
557561
),
558562
optional($._automatic_semicolon),
559563
),

test/corpus/definitions.txt

+54-1
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,11 @@ class A:
11521152
val y = 2
11531153
x + y
11541154

1155+
// SIP-47 - Clause Interleaving
1156+
def getOrElse(k: Key)[V >: k.Value](default: V): V
1157+
1158+
def aaa[A](using a: A)(b: List[A])[C <: a.type, D](cd: (C, D))[E]: Unit
1159+
11551160
--------------------------------------------------------------------------------
11561161

11571162
(compilation_unit
@@ -1175,7 +1180,55 @@ class A:
11751180
(infix_expression
11761181
(identifier)
11771182
(operator_identifier)
1178-
(identifier)))))))
1183+
(identifier))
1184+
(comment)))
1185+
(function_declaration
1186+
(identifier)
1187+
(parameters
1188+
(parameter
1189+
(identifier)
1190+
(type_identifier)))
1191+
(type_parameters
1192+
(identifier)
1193+
(lower_bound
1194+
(stable_type_identifier
1195+
(identifier)
1196+
(type_identifier))))
1197+
(parameters
1198+
(parameter
1199+
(identifier)
1200+
(type_identifier)))
1201+
(type_identifier))
1202+
(function_declaration
1203+
(identifier)
1204+
(type_parameters
1205+
(identifier))
1206+
(parameters
1207+
(parameter
1208+
(identifier)
1209+
(type_identifier)))
1210+
(parameters
1211+
(parameter
1212+
(identifier)
1213+
(generic_type
1214+
(type_identifier)
1215+
(type_arguments
1216+
(type_identifier)))))
1217+
(type_parameters
1218+
(identifier)
1219+
(upper_bound
1220+
(singleton_type
1221+
(identifier)))
1222+
(identifier))
1223+
(parameters
1224+
(parameter
1225+
(identifier)
1226+
(tuple_type
1227+
(type_identifier)
1228+
(type_identifier))))
1229+
(type_parameters
1230+
(identifier))
1231+
(type_identifier)))))
11791232

11801233
================================================================================
11811234
Extension methods (Scala 3 syntax)

0 commit comments

Comments
 (0)