Ruby 2.7 の変更点 - コメント行を挟んだメソッド呼び出し / ヒアドキュメント

Ruby 2.7 アドベントカレンダーの10日目の記事です。

qiita.com

コメント行を挟んだメソッド呼び出し

メソッド呼び出し時には . の前後に改行することができます。

"hoge".
  upcase

"hoge"
  .upcase

ですが、その間にコメント行を挟むとエラーになっていました。

"hoge".
  # こっちはOK
  upcase

"hoge"
  # こっちはNG
  .upcase
#=> syntax error, unexpected '.', expecting end-of-input

2.7 ではこれがエラーにならなくなりました。

ヒアドキュメント

ヒアドキュメントの識別子が複数行にまたがっていた場合に Ruby 2.4 から warning が出力されていましたが、2.7 ではエラーになります。

p <<"EOS
"
hoge
EOS

Ruby 2.6

% ruby test.rb
test.rb:2: warning: here document identifier ends with a newline
"hoge\n"

Ruby 2.7

% ruby test.rb
test.rb:1: unterminated here document identifier
p <<"EOS

なぜ今まで放っておいたのかって感じですが、Ruby 3 に向けていろいろ潰してるみたいですね。