Inside `| |` style block parameter, binary operators (example: `1+2`, `1|2`) are rejected because we need to reject ambiguous `|`. On the right hand side of assignment and endless def, binary operators are allowed, unless we introduce a...tompng (tomoya ishida)
These are syntax error in parse.y but not in Prism. ~~~ruby p do |a = def f = 1; b| end p do |a = def f = 1| 2; b|c end # `|` inside block parameter ~~~ Normal assignment as a default value `p do |a = b = 1| end` is already syntax e...tompng (tomoya ishida)
These are syntax error in parse.y but accepted in Prism ~~~ruby def f x: = 1 def f ... = 1 def f * = 1 def f ** = 1 def f & = 1 def f *a = 1 def f **a = 1 def f &a = 1 ~~~ tompng (tomoya ishida)
These are syntax error in parse.y but accepted in Prism ~~~ruby p(p a, x: b => value) p(p a, x: => value) p(p a, &block => value) p(p a, *args => value) p(p a, **kwargs => value) ~~~ Maybe as a result, Prism accepts command cal...tompng (tomoya ishida)