[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:227

From: okkez <okkez000@g...>
Date: Sat, 23 Dec 2006 23:17:55 +0900
Subject: [ruby-reference-manual:227] BigDecimal#!=を書くとbc-methods/bitclustでエラーになる

こんばんは。
okkezです。

BigDecimal#!=をInstanceメソッドのエントリとして追加すると bc-methods --diffと bitclust
でそれぞれ以下のようなエラーがでます。

$ bc-methods -r bigdecimal --diff=src/bigdecimal.rd BigDecimal
/home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:58:in
`parse_error': src/bigdecimal/BigDecimal:551: wrong method signature:
"--- !=(other)\n" (BitClust::ParseError)
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:255:in
`method_signature'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in
`read_chunk'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in `map'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in
`read_chunk'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:211:in
`read_chunks'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:209:in
`while_match'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:209:in
`read_chunks'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:188:in
`read_entries'
         ... 11 levels...
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:88:in
`parse_file'
        from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:70:in
`parse_stdlib_file'
        from /home/okkez/bin/bc-methods:59:in `main'
        from /home/okkez/bin/bc-methods:108

$ bitclust -d db update --stdlibtree=src
src/bigdecimal/BigDecimal:551: wrong method signature: "--- !=(other)\n"

一応、以下のパッチで動くようにはなります。
# もしかしてbc-methods --diff で追加するべきと出るのに追加しなくて良い例なのでしょうか。
# 同様に!~もエラーが出ますが、下のパッチでは対応してません。

Index: lib/bitclust/nameutils.rb
===================================================================
--- lib/bitclust/nameutils.rb   (revision 945)
+++ lib/bitclust/nameutils.rb   (working copy)
@@ -11,7 +11,7 @@
     CONST_PATH_RE  = /#{CONST_RE}(?:::#{CONST_RE})*/
     CLASS_NAME_RE  = /(?:#{CONST_RE}|fatal)/
     CLASS_PATH_RE  = /(?:#{CONST_PATH_RE}|fatal)/
-    METHOD_NAME_RE =
/\w+[?!=]?|===|==|=~|<=>|<=|>=|\[\]=|\[\]|\*\*|>>|<<|\+@|\-@|[~+\-*\/%&|^<>`]/
+    METHOD_NAME_RE =
/\w+[?!=]?|===|==|!=|=~|<=>|<=|>=|\[\]=|\[\]|\*\*|>>|<<|\+@|\-@|[~+\-*\/%&|^<>`]/
     TYPEMARK_RE    = /(?:\.|\#|\.\#|::|\$)/
     METHOD_SPEC_RE = /#{CLASS_PATH_RE}#{TYPEMARK_RE}#{METHOD_NAME_RE}/
     GVAR_RE        = /\$(?:\w+|-.|\S)/


-- 
okkez
okkez000@g...

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->     227 2006-12-23 15:17 [okkez000@g...       ] BigDecimal#!=を書くとbc-methods/bitclustでエラーになる
       228 2006-12-25 10:03 ┗[aamine@l...         ]                                       
       229 2006-12-25 10:06  ┣[aamine@l...         ]                                     
       231 2006-12-25 12:32  ┃┗[okkez000@g...       ]                                   
       230 2006-12-25 12:27  ┗[okkez000@g...       ]