[ruby-trunk - Bug #8471][Open] パーセント記法とString #メソッドの組み合わせの戻り値が異常

Issue #8471 has been reported by taka-yoshi (taka-yoshi taka).


Bug #8471: パーセント記法とString #メソッドの組み合わせの戻り値が異常

Author: taka-yoshi (taka-yoshi taka)
Status: Open
Priority: Low
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

***再現手順
下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

上記ではnil?を取り上げましたが、
実際は全メソッドで’'が戻ってきます。

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

下記の環境で確認しています。
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
ruby 2.0.0p0 (2013-02-24) [x64-mingw32]

特に実害はないと思います。

Issue #8471 has been updated by no6v (Nobuhiro IMAI).

下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

これは false が返るんじゃないでしょうか?

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

これは、%%% % %%%.class と解釈されて、%%% は %() などと同じく(空)文字列のリテラルで、
“” % xxx だと、xxx が(多分)何であろうと空文字列が返るので、特におかしなところはないと思います。

$ ruby -rripper -rpp -ve ‘pp Ripper.lex(“%%%%%%%.class”)’
ruby 2.1.0dev (2013-06-01 trunk 41011) [x86_64-linux]
[[[1, 0], :on_tstring_beg, “%%”],
[[1, 2], :on_tstring_end, “%”],
[[1, 3], :on_op, “%”],
[[1, 4], :on_tstring_beg, “%%”],
[[1, 6], :on_tstring_end, “%”],
[[1, 7], :on_period, “.”],
[[1, 8], :on_ident, “class”]]

2番めと3番め、6番めと7番めをいろんな記号に置き換えてみると雰囲気がつかめるんじゃないでしょうか。


Bug #8471: パーセント記法とString #メソッドの組み合わせの戻り値が異常

Author: taka-yoshi (taka-yoshi taka)
Status: Open
Priority: Low
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

***再現手順
下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

上記ではnil?を取り上げましたが、
実際は全メソッドで’'が戻ってきます。

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

下記の環境で確認しています。
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
ruby 2.0.0p0 (2013-02-24) [x64-mingw32]

特に実害はないと思います。

Issue #8471 has been updated by no6v (Nobuhiro IMAI).

2番めと3番め、6番めと7番めをいろんな記号に置き換えてみると雰囲気がつかめるんじゃないでしょうか。

「2番めと3番め、6番めと7番めの % を」という意味でした。

$ ruby -rripper -rpp -ve ‘pp Ripper.lex(“%()%%!!.class”)’
ruby 2.1.0dev (2013-06-01 trunk 41011) [x86_64-linux]
[[[1, 0], :on_tstring_beg, “%(”],
[[1, 2], :on_tstring_end, “)”],
[[1, 3], :on_op, “%”],
[[1, 4], :on_tstring_beg, “%!”],
[[1, 6], :on_tstring_end, “!”],
[[1, 7], :on_period, “.”],
[[1, 8], :on_ident, “class”]]


Bug #8471: パーセント記法とString #メソッドの組み合わせの戻り値が異常

Author: taka-yoshi (taka-yoshi taka)
Status: Open
Priority: Low
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

***再現手順
下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

上記ではnil?を取り上げましたが、
実際は全メソッドで’'が戻ってきます。

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

下記の環境で確認しています。
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
ruby 2.0.0p0 (2013-02-24) [x64-mingw32]

特に実害はないと思います。

Issue #8471 has been updated by okkez (okkez _).

Status changed from Open to Rejected

正常な動作ということなので rejected にしますね。

Bug #8471: パーセント記法とString #メソッドの組み合わせの戻り値が異常

Author: taka-yoshi (taka-yoshi taka)
Status: Rejected
Priority: Low
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

***再現手順
下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

上記ではnil?を取り上げましたが、
実際は全メソッドで’'が戻ってきます。

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

下記の環境で確認しています。
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
ruby 2.0.0p0 (2013-02-24) [x64-mingw32]

特に実害はないと思います。

Issue #8471 has been updated by taka-yoshi (taka-yoshi taka).

no6v (Nobuhiro IMAI) wrote:

[[1, 6], :on_tstring_end, “!”],
[[1, 7], :on_period, “.”],
[[1, 8], :on_ident, “class”]]

ご回答ありがとうございます。
すみませんおっしゃるとおりでした。
正常な動作です。

Bug #8471: パーセント記法とString #メソッドの組み合わせの戻り値が異常

Author: taka-yoshi (taka-yoshi taka)
Status: Open
Priority: Low
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

***再現手順
下記のコードを実行すると。''が戻ってきます。
(%%%%%%%).nil? => ‘’

上記ではnil?を取り上げましたが、
実際は全メソッドで’'が戻ってきます。

この戻ってきたものに対して各種メソッドを呼んでも’'が返ってきます。
%%%%%%%.class.class.class.class => ‘’

下記の環境で確認しています。
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
ruby 2.0.0p0 (2013-02-24) [x64-mingw32]

特に実害はないと思います。