title: block syntax difference causes "LocalJumpError: no block given (yield)"
body: <p>Saw a strange case come up, trying to figure out what is happening here:</p>
  
  <pre><code>&gt; def test
  &gt;   p yield
  &gt; end
  =&gt; nil
  &gt; test { 1 }
  1
  =&gt; 1
  &gt; p test { 1 }
  1
  1
  =&gt; 1
  &gt; p test do
  &gt;   1
  &gt; end
  LocalJumpError: no block given (yield)
  </code></pre>