ruby-next-parser 3.1.0.0 → 3.1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1160,6 +1160,14 @@ rule
1160
1160
  {
1161
1161
  result = @builder.block_pass(val[0], val[1])
1162
1162
  }
1163
+ | tAMPER
1164
+ {
1165
+ if !@static_env.declared_anonymous_blockarg?
1166
+ diagnostic :error, :no_anonymous_blockarg, nil, val[0]
1167
+ end
1168
+
1169
+ result = @builder.block_pass(val[0], nil)
1170
+ }
1163
1171
 
1164
1172
  opt_block_arg: tCOMMA block_arg
1165
1173
  {
@@ -2703,20 +2711,6 @@ f_opt_paren_args: f_paren_args
2703
2711
  {
2704
2712
  result = @builder.args(val[0], val[1], val[2])
2705
2713
 
2706
- @lexer.state = :expr_value
2707
- }
2708
- | tLPAREN2 f_arg tCOMMA args_forward rparen
2709
- {
2710
- args = [ *val[1], @builder.forward_arg(val[3]) ]
2711
- result = @builder.args(val[0], args, val[4])
2712
-
2713
- @static_env.declare_forward_args
2714
- }
2715
- | tLPAREN2 args_forward rparen
2716
- {
2717
- result = @builder.forward_only_args(val[0], val[1], val[2])
2718
- @static_env.declare_forward_args
2719
-
2720
2714
  @lexer.state = :expr_value
2721
2715
  }
2722
2716
 
@@ -2724,9 +2718,11 @@ f_opt_paren_args: f_paren_args
2724
2718
  | {
2725
2719
  result = @lexer.in_kwarg
2726
2720
  @lexer.in_kwarg = true
2721
+ @context.push(:def_open_args)
2727
2722
  }
2728
2723
  f_args term
2729
2724
  {
2725
+ @context.pop
2730
2726
  @lexer.in_kwarg = val[0]
2731
2727
  result = @builder.args(nil, val[1], nil)
2732
2728
  }
@@ -2747,6 +2743,11 @@ f_opt_paren_args: f_paren_args
2747
2743
  {
2748
2744
  result = [ val[0] ]
2749
2745
  }
2746
+ | args_forward
2747
+ {
2748
+ @static_env.declare_forward_args
2749
+ result = [ @builder.forward_arg(val[0]) ]
2750
+ }
2750
2751
 
2751
2752
  opt_args_tail: tCOMMA args_tail
2752
2753
  {
@@ -3024,6 +3025,12 @@ f_opt_paren_args: f_paren_args
3024
3025
 
3025
3026
  result = @builder.blockarg(val[0], val[1])
3026
3027
  }
3028
+ | blkarg_mark
3029
+ {
3030
+ @static_env.declare_anonymous_blockarg
3031
+
3032
+ result = @builder.blockarg(val[0], nil)
3033
+ }
3027
3034
 
3028
3035
  opt_f_block_arg: tCOMMA f_block_arg
3029
3036
  {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-next-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.0
4
+ version: 3.1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-28 00:00:00.000000000 Z
11
+ date: 2021-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.3.0
19
+ version: 3.0.3.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.0.3.0
26
+ version: 3.0.3.1
27
27
  description: "\n Parser extension to support edge and experimental Ruby syntax\n
28
28
  \ "
29
29
  email: