Skip to content

Commit 5657557

Browse files
committed
Vararg class params and operator identifiers
1 parent b82ffcd commit 5657557

File tree

7 files changed

+144
-50
lines changed

7 files changed

+144
-50
lines changed

corpus/definitions.txt

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ object C {
235235
(extends_clause
236236
(type_identifier)
237237
(arguments
238-
(infix_expression (identifier) (operator_identifier) (identifier))))
238+
(infix_expression (identifier) (identifier) (identifier))))
239239
(template_body))
240240
(object_definition
241241
(identifier)
@@ -551,7 +551,7 @@ class A {
551551
(parameters (parameter (identifier) (type_identifier)))
552552
(type_identifier))
553553
(function_declaration
554-
(operator_identifier)
554+
(identifier)
555555
(type_parameters (identifier))
556556
(parameters (parameter (identifier) (generic_type (type_identifier) (type_arguments (type_identifier)))))
557557
(generic_type (type_identifier) (type_arguments (type_identifier)))))))
@@ -619,7 +619,7 @@ class A:
619619
(parameter (identifier) (type_identifier)))
620620
(type_identifier)
621621
(indented_block
622-
(val_definition (identifier) (integer_literal)) (val_definition (identifier) (integer_literal)) (infix_expression (identifier) (operator_identifier) (identifier)))))))
622+
(val_definition (identifier) (integer_literal)) (val_definition (identifier) (integer_literal)) (infix_expression (identifier) (identifier) (identifier)))))))
623623

624624
=======================================
625625
Given instance definitions (Scala 3 syntax)
@@ -728,7 +728,7 @@ class A(val x: Int, val y: Int) {
728728
(class_parameter (identifier) (type_identifier)))
729729
(template_body
730730
(call_expression (identifier)
731-
(arguments (infix_expression (identifier) (operator_identifier) (integer_literal)))))))
731+
(arguments (infix_expression (identifier) (identifier) (integer_literal)))))))
732732

733733
=======================================
734734
Optional parameters
@@ -785,3 +785,63 @@ enum Hello[Y] extends java.Enumeration derives Codec, Eq {
785785
)
786786
)
787787
)
788+
789+
790+
===================================
791+
Operator identifiers
792+
===================================
793+
794+
type ::[+A] = scala.collection.immutable.::[A]
795+
val :: = scala.collection.immutable.::
796+
797+
val +: = scala.collection.+:
798+
val :+ = scala.collection.:+
799+
800+
val test = id.##
801+
802+
---
803+
804+
(compilation_unit
805+
(type_definition
806+
(type_identifier)
807+
(type_parameters
808+
(covariant_type_parameter
809+
(identifier)))
810+
(generic_type
811+
(stable_type_identifier
812+
(stable_identifier
813+
(stable_identifier
814+
(identifier)
815+
(identifier))
816+
(identifier))
817+
(type_identifier))
818+
(type_arguments
819+
(type_identifier))))
820+
(val_definition
821+
(identifier)
822+
(field_expression
823+
(field_expression
824+
(field_expression
825+
(identifier)
826+
(identifier))
827+
(identifier))
828+
(identifier)))
829+
(val_definition
830+
(identifier)
831+
(field_expression
832+
(field_expression
833+
(identifier)
834+
(identifier))
835+
(identifier)))
836+
(val_definition
837+
(identifier)
838+
(field_expression
839+
(field_expression
840+
(identifier)
841+
(identifier))
842+
(identifier)))
843+
(val_definition
844+
(identifier)
845+
(field_expression
846+
(identifier)
847+
(identifier))))

corpus/expressions.txt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ class C {
3030
(call_expression (identifier) (arguments (identifier) (identifier)))
3131
(call_expression (field_expression (identifier) (identifier)) (arguments
3232
(lambda_expression (identifier)
33-
(infix_expression (identifier) (operator_identifier) (integer_literal)))))
33+
(infix_expression (identifier) (identifier) (integer_literal)))))
3434
(call_expression (identifier) (block (integer_literal)))
3535
(call_expression (identifier) (block (identifier)))
3636
(call_expression (field_expression (identifier) (identifier)) (block
3737
(lambda_expression (identifier)
38-
(infix_expression (identifier) (operator_identifier) (integer_literal)))))
38+
(infix_expression (identifier) (identifier) (integer_literal)))))
3939
(call_expression (field_expression (identifier) (identifier)) (case_block (case_clause
4040
(tuple_pattern (tuple_pattern (identifier) (wildcard))) (identifier)))))))))
4141

@@ -230,7 +230,7 @@ def main() {
230230
(block
231231
(try_expression
232232
(call_expression (identifier) (arguments))
233-
(finally_clause (infix_expression (identifier) (operator_identifier) (integer_literal))))
233+
(finally_clause (infix_expression (identifier) (identifier) (integer_literal))))
234234
(try_expression
235235
(block (call_expression (identifier) (arguments)))
236236
(catch_clause
@@ -292,7 +292,7 @@ def main(): Unit =
292292
(indented_block
293293
(try_expression
294294
(call_expression (identifier) (arguments))
295-
(finally_clause (infix_expression (identifier) (operator_identifier) (integer_literal))))
295+
(finally_clause (infix_expression (identifier) (identifier) (integer_literal))))
296296
(try_expression
297297
(indented_block
298298
(call_expression (identifier) (arguments))
@@ -386,7 +386,7 @@ def matchTest(x: Int): String =
386386
(case_clause (integer_literal) (string))
387387
(case_clause
388388
(identifier)
389-
(guard (infix_expression (identifier) (operator_identifier) (integer_literal)))
389+
(guard (infix_expression (identifier) (identifier) (integer_literal)))
390390
(val_definition (identifier) (string))
391391
(identifier))
392392
(case_clause (tuple_pattern (tuple_pattern (identifier) (wildcard))) (identifier))
@@ -469,8 +469,8 @@ class C {
469469
(identifier)
470470
(infix_expression (identifier) (identifier) (identifier)))
471471
(infix_expression
472-
(infix_expression (identifier) (operator_identifier) (identifier))
473-
(operator_identifier)
472+
(infix_expression (identifier) (identifier) (identifier))
473+
(identifier)
474474
(identifier)))))))
475475

476476
===============================
@@ -499,7 +499,7 @@ class C {
499499
(prefix_expression (prefix_expression (identifier)))
500500
(infix_expression
501501
(prefix_expression (identifier))
502-
(operator_identifier)
502+
(identifier)
503503
(identifier)))))))
504504

505505
===============================
@@ -523,7 +523,7 @@ object O {
523523
(val_definition
524524
(identifier)
525525
(postfix_expression
526-
(infix_expression (integer_literal) (operator_identifier) (integer_literal))
526+
(infix_expression (integer_literal) (identifier) (integer_literal))
527527
(identifier)
528528
)
529529
)
@@ -583,13 +583,13 @@ object O {
583583
(val_definition
584584
(identifier) (lambda_expression
585585
(identifier) (infix_expression
586-
(identifier) (operator_identifier) (integer_literal))))
586+
(identifier) (identifier) (integer_literal))))
587587
(val_definition (identifier)
588588
(lambda_expression (bindings
589589
(binding (identifier) (type_identifier))
590590
(binding (identifier) (type_identifier)))
591591
(block (infix_expression
592-
(identifier) (operator_identifier) (identifier)))))
592+
(identifier) (identifier) (identifier)))))
593593
(val_definition (identifier)
594594
(lambda_expression (wildcard) (integer_literal)))
595595
(lambda_expression
@@ -598,13 +598,13 @@ object O {
598598
(binding (identifier))
599599
(binding (identifier)))
600600
(infix_expression (identifier)
601-
(operator_identifier)
601+
(identifier)
602602
(identifier)))
603603
(call_expression
604604
(identifier)
605605
(block (lambda_expression
606606
(identifier)
607-
(val_definition (identifier) (infix_expression (integer_literal) (operator_identifier) (identifier)))))))))
607+
(val_definition (identifier) (infix_expression (integer_literal) (identifier) (identifier)))))))))
608608

609609
===============================
610610
Unit expressions
@@ -667,7 +667,7 @@ def f = {
667667
(parenthesized_expression (identifier))
668668
(call_expression (identifier) (arguments)))
669669
(while_expression
670-
(parenthesized_expression (infix_expression (identifier) (operator_identifier) (identifier)))
670+
(parenthesized_expression (infix_expression (identifier) (identifier) (identifier)))
671671
(block (identifier))))))
672672

673673
===============================
@@ -696,7 +696,7 @@ def f: Unit =
696696
(while_expression
697697
(indented_block
698698
(val_definition (identifier) (integer_literal))
699-
(infix_expression (identifier) (operator_identifier) (identifier)))
699+
(infix_expression (identifier) (identifier) (identifier)))
700700
(indented_block
701701
(unit))))))
702702

@@ -721,12 +721,12 @@ def f() = {
721721
(block
722722
(do_while_expression
723723
(call_expression (identifier) (arguments (identifier) (identifier)))
724-
(parenthesized_expression (infix_expression (identifier) (operator_identifier) (identifier))))
724+
(parenthesized_expression (infix_expression (identifier) (identifier) (identifier))))
725725
(do_while_expression
726726
(block
727727
(call_expression (identifier) (arguments (identifier) (identifier)))
728728
(call_expression (identifier) (arguments (identifier) (identifier))))
729-
(parenthesized_expression (infix_expression (identifier) (operator_identifier) (identifier)))))))
729+
(parenthesized_expression (infix_expression (identifier) (identifier) (identifier)))))))
730730

731731
===============================
732732
For comprehensions
@@ -754,7 +754,7 @@ def f() = {
754754
(block
755755
(for_expression
756756
(enumerators (enumerator (identifier) (identifier)))
757-
(infix_expression (identifier) (operator_identifier) (integer_literal)))
757+
(infix_expression (identifier) (identifier) (integer_literal)))
758758
(for_expression
759759
(enumerators
760760
(enumerator (identifier) (identifier))
@@ -763,7 +763,7 @@ def f() = {
763763
(for_expression
764764
(enumerators
765765
(enumerator (identifier) (identifier))
766-
(enumerator (identifier) (infix_expression (identifier) (operator_identifier) (identifier)))
766+
(enumerator (identifier) (infix_expression (identifier) (identifier) (identifier)))
767767
(enumerator (identifier) (call_expression (identifier) (arguments)) (guard (identifier)))
768768
(enumerator (tuple_pattern (identifier) (identifier)) (identifier)))
769769
(block (call_expression (identifier) (arguments (identifier) (identifier))))))))
@@ -791,7 +791,7 @@ def f(): Unit =
791791
(indented_block
792792
(for_expression
793793
(enumerators (enumerator (identifier) (identifier)))
794-
(infix_expression (identifier) (operator_identifier) (integer_literal)))
794+
(infix_expression (identifier) (identifier) (integer_literal)))
795795
(for_expression
796796
(enumerators
797797
(enumerator (identifier) (identifier))
@@ -828,9 +828,9 @@ def main() {
828828
(call_expression
829829
(field_expression (identifier) (identifier))
830830
(arguments (infix_expression
831-
(wildcard) (operator_identifier) (integer_literal))))
831+
(wildcard) (identifier) (integer_literal))))
832832
(call_expression
833833
(field_expression (identifier) (identifier))
834834
(arguments (infix_expression
835-
(wildcard) (operator_identifier) (integer_literal))))
835+
(wildcard) (identifier) (integer_literal))))
836836
(field_expression (identifier) (identifier)))))

corpus/literals.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def foo(a: Boolean = false) = a && true
119119
(boolean_literal)))
120120
(infix_expression
121121
(identifier)
122-
(operator_identifier)
122+
(identifier)
123123
(boolean_literal))))
124124

125125
==========================
@@ -148,7 +148,7 @@ def foo(a: Char = 'c') = a + 'd'
148148
(character_literal)))
149149
(infix_expression
150150
(identifier)
151-
(operator_identifier)
151+
(identifier)
152152
(character_literal))))
153153

154154
==========================

corpus/patterns.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def first(x: Seq[Int]) = x match {
128128
(parameters (parameter (identifier) (generic_type (type_identifier) (type_arguments (type_identifier)))))
129129
(match_expression (identifier)
130130
(case_block
131-
(case_clause (infix_pattern (identifier) (operator_identifier) (wildcard))
131+
(case_clause (infix_pattern (identifier) (identifier) (wildcard))
132132
(call_expression (identifier) (arguments (identifier))))
133133
(case_clause (wildcard)
134134
(identifier))))))
@@ -167,5 +167,5 @@ val x = y match {
167167
(infix_pattern
168168
(capture_pattern (identifier)
169169
(tuple_pattern (alternative_pattern (identifier) (identifier))))
170-
(operator_identifier) (identifier)) (operator_identifier) (string))
170+
(identifier) (identifier)) (identifier) (string))
171171
(integer_literal))))))

corpus/types.txt

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,14 @@ type A = (B, C) ~ D
132132
(type_definition
133133
(type_identifier)
134134
(infix_type
135-
(infix_type (type_identifier) (operator_identifier) (type_identifier))
135+
(infix_type (type_identifier) (identifier) (type_identifier))
136136
(identifier)
137137
(type_identifier)))
138138
(type_definition
139139
(type_identifier)
140140
(infix_type
141141
(tuple_type (type_identifier) (type_identifier))
142-
(operator_identifier)
142+
(identifier)
143143
(type_identifier))))
144144

145145

@@ -248,7 +248,7 @@ type A = B with B1 with B2 ! C with C1
248248
(type_definition (type_identifier)
249249
(infix_type
250250
(compound_type (type_identifier) (type_identifier) (type_identifier))
251-
(operator_identifier)
251+
(identifier)
252252
(compound_type (type_identifier) (type_identifier)))))
253253

254254
==================================
@@ -316,3 +316,36 @@ opaque type B <: Test >: Help = String
316316
(lower_bound (type_identifier))
317317
(type_identifier))
318318
)
319+
320+
==================================
321+
Higher kinded type aliases
322+
==================================
323+
324+
type F[+H] = List[H]
325+
type S[-H, +A] = Function1[H, A]
326+
327+
---
328+
329+
(compilation_unit
330+
(type_definition
331+
(type_identifier)
332+
(type_parameters
333+
(covariant_type_parameter
334+
(identifier)))
335+
(generic_type
336+
(type_identifier)
337+
(type_arguments
338+
(type_identifier))))
339+
(type_definition
340+
(type_identifier)
341+
(type_parameters
342+
(contravariant_type_parameter
343+
(identifier))
344+
(covariant_type_parameter
345+
(identifier)))
346+
(generic_type
347+
(type_identifier)
348+
(type_arguments
349+
(type_identifier)
350+
(type_identifier)))))
351+

0 commit comments

Comments
 (0)