QA@IT
«回答へ戻る

挙動を間違えてた

493
 リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。
 
-1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。
+1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、TypeError が投げられます。
 
 [vm_eval.c にある関数 eval_string_with_cref ](https://github.com/ruby/ruby/blob/ruby_1_9_3/vm_eval.c#L972)が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。
 

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、TypeError が投げられます。

vm_eval.c にある関数 eval_string_with_cref が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7ではeval.cの関数evalで処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、TypeError が投げられます。

[vm_eval.c にある関数 eval_string_with_cref ](https://github.com/ruby/ruby/blob/ruby_1_9_3/vm_eval.c#L972)が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7では[eval.cの関数eval](https://github.com/ruby/ruby/blob/ruby_1_8_7/eval.c#L6509)で処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。

句点が多かった

493
 リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。
 
-1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。。
+1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。
 
 [vm_eval.c にある関数 eval_string_with_cref ](https://github.com/ruby/ruby/blob/ruby_1_9_3/vm_eval.c#L972)が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。
 

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。

vm_eval.c にある関数 eval_string_with_cref が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7ではeval.cの関数evalで処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。

[vm_eval.c にある関数 eval_string_with_cref ](https://github.com/ruby/ruby/blob/ruby_1_9_3/vm_eval.c#L972)が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7では[eval.cの関数eval](https://github.com/ruby/ruby/blob/ruby_1_8_7/eval.c#L6509)で処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。

回答を投稿

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。。

vm_eval.c にある関数 eval_string_with_cref が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7ではeval.cの関数evalで処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。

リファレンスマニュアルの記述が 1.8 のものになっていると思います。1.9 では Binding 以外とれなくなっているようです。

1.9.3 のコードを見る限り、Binding オブジェクト以外が来たときは、warning をだして無視するように思います。。

[vm_eval.c にある関数 eval_string_with_cref ](https://github.com/ruby/ruby/blob/ruby_1_9_3/vm_eval.c#L972)が eval の行きつく先で、scope に eval 第二引数がわたってきます。997 行目で、rb_obj_is_kind_of(scope, rb_cBinding) して、Binding クラスかどうか確認しています。

一方、1.8.7では[eval.cの関数eval](https://github.com/ruby/ruby/blob/ruby_1_8_7/eval.c#L6509)で処理されます。6529 行目で rb_obj_is_proc(scope) が true のもののみ処理されるようになっています。6520 行目のエラーメッセージより、Proc or Binding が scope として期待されているのがわかります。