Skip to content

Commit c9ae7f8

Browse files
committed
fix: repeated "field identifiers" can come before this in a receiver parameter
1 parent 98ca721 commit c9ae7f8

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

grammar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ module.exports = grammar({
11731173
receiver_parameter: $ => seq(
11741174
repeat($._annotation),
11751175
$._unannotated_type,
1176-
optional(seq($.identifier, '.')),
1176+
repeat(seq($.identifier, '.')),
11771177
$.this
11781178
),
11791179

test/corpus/declarations.txt

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,55 @@ class Point {
483483
(decimal_integer_literal)
484484
(decimal_integer_literal))))))))
485485

486+
=============================================
487+
Nested field expression in receiver parameter
488+
=============================================
489+
490+
public class Inner1<T> {
491+
public class Inner2 {
492+
public class Inner3 {
493+
public Inner3(GetAnnotatedReceiverType.Inner1<T>.Inner2 GetAnnotatedReceiverType.Inner1.Inner2.this) {}
494+
}
495+
}
496+
}
497+
498+
---
499+
500+
(program
501+
(class_declaration
502+
(modifiers)
503+
(identifier)
504+
(type_parameters
505+
(type_parameter
506+
(type_identifier)))
507+
(class_body
508+
(class_declaration
509+
(modifiers)
510+
(identifier)
511+
(class_body
512+
(class_declaration
513+
(modifiers)
514+
(identifier)
515+
(class_body
516+
(constructor_declaration
517+
(modifiers)
518+
(identifier)
519+
(formal_parameters
520+
(receiver_parameter
521+
(scoped_type_identifier
522+
(generic_type
523+
(scoped_type_identifier
524+
(type_identifier)
525+
(type_identifier))
526+
(type_arguments
527+
(type_identifier)))
528+
(type_identifier))
529+
(identifier)
530+
(identifier)
531+
(identifier)
532+
(this)))
533+
(constructor_body)))))))))
534+
486535
=======
487536
throws
488537
=======

0 commit comments

Comments
 (0)