ruby-next-parser 3.1.0.0 → 3.1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: