[#100309] How to use backport custom field — Jun Aruga <jaruga@...>
Please allow my ignorance.
9 messages
2020/10/06
[#100310] Re: How to use backport custom field
— "NARUSE, Yui" <naruse@...>
2020/10/06
IkJhY2twb3J0IGN1c3RvbSBmaWVsZCIgaXMgb25seSBhdmFpbGFibGUgZm9yIHRpY2tldHMgd2hv
[#100311] Re: How to use backport custom field
— Jun Aruga <jaruga@...>
2020/10/06
On Tue, Oct 6, 2020 at 4:44 PM NARUSE, Yui <[email protected]> wrote:
[#100314] Re: How to use backport custom field
— "NARUSE, Yui" <naruse@...>
2020/10/06
VGhhbmsgeW91IGZvciBjb25maXJtYXRpb24uCkkgY2hlY2tlZCBhZ2FpbiBhbmQgdG8gZWRpdCBi
[#100322] Re: How to use backport custom field
— Jun Aruga <jaruga@...>
2020/10/07
On Tue, Oct 6, 2020 at 7:25 PM NARUSE, Yui <[email protected]> wrote:
[#100326] Re: How to use backport custom field
— "NARUSE, Yui" <naruse@...>
2020/10/07
SSBhZGRlZCB5b3UgdG8gIlJlcG9ydGVyIiByb2xlIGluIHRoZSBwcm9qZWN0CgoyMDIw5bm0MTDm
[#100327] Re: How to use backport custom field
— Jun Aruga <jaruga@...>
2020/10/07
On Wed, Oct 7, 2020 at 1:42 PM NARUSE, Yui <[email protected]> wrote:
[ruby-core:100491] [Ruby master Bug#14012] NameError is raised when use class variables in Refinements
From:
shugo@...
Date:
2020-10-22 05:00:32 UTC
List:
ruby-core #100491
Issue #14012 has been updated by shugo (Shugo Maeda).
I'm not against the change, if there is no implementation difficulty.
However, class variables are not accessible in class_eval either, and reflection APIs can be used as a workaround as you suggested, so the change may not be necessary.
----------------------------------------
Bug #14012: NameError is raised when use class variables in Refinements
https://bugs.ruby-lang.org/issues/14012#change-88110
* Author: joker1007 (Tomohiro Hashidate)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Sorry in advance if other ticket exists.
In a case, Reference to class variables raises unnatural NameError.
A class variable is defined in a module.
And include the module in "refine" block.
Refined method cannot use the class variable, and raises NameError.
Sample.
~~~ ruby
module FooMod
@@foo_mod1 = 1
def foo_mod1
p self.class.class_variable_get("@@foo_mod1")
end
end
module FooMod2
@@foo_mod2 = 1
def foo_mod2
p self.class.class_variable_get("@@foo_mod2")
end
end
class Foo
@@hoge = 1
include FooMod
def hoge1
p @@hoge
end
end
module Ext
refine Foo do
def hoge2
p self.class.class_variable_get("@@hoge")
end
include FooMod2
end
end
using Ext
Foo.new.hoge1 # => 1 OK
Foo.new.hoge2 # => 1 OK
Foo.new.foo_mod1 # => 1 OK
Foo.new.foo_mod2 # => uninitialized class variable @@foo_mod2 in Foo (NameError)
~~~
Is This behavior Refinements spec? or bug?
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>