Я изучал доходность ключевых слов и их использование в ruby. Хотя вполне возможно передать блок методу неявно и вызвать его через yield, при попытке передать другой блок в полученный блок:
def test
yield { p 'yield2' }
end
test { |&b| p 'in yield1'; b.call }
ruby жалуется на синтаксическую ошибку:
yield.rb:5: syntax error, unexpected '}', expecting keyword_end
yield { p 'yield2' }
^
Почему эта разница обрабатывается с выходом и почему это рассматривается как синтаксическая ошибка?