[#67346] Future of test suites for Ruby — Charles Oliver Nutter <headius@...>
I'll try to be brief so we can discuss all this. tl;dr: RubySpec is
19 messages
2015/01/05
[#67353] Re: Future of test suites for Ruby
— Tanaka Akira <akr@...>
2015/01/05
2015-01-06 7:18 GMT+09:00 Charles Oliver Nutter <[email protected]>:
[#67444] [ruby-trunk - Feature #10718] [Open] IO#close should not raise IOError on closed IO objects. — akr@...
Issue #10718 has been reported by Akira Tanaka.
3 messages
2015/01/09
[#67689] Keyword Arguments — Anthony Crumley <anthony.crumley@...>
Please forgive my ignorance as I am new to MRI development and am still
5 messages
2015/01/20
[#67733] [ruby-trunk - Bug #10761] Marshal.dump 100% slower in 2.2.0 vs 2.1.5 — normalperson@...
Issue #10761 has been updated by Eric Wong.
4 messages
2015/01/21
[#67736] Re: [ruby-trunk - Bug #10761] Marshal.dump 100% slower in 2.2.0 vs 2.1.5
— Eric Wong <normalperson@...>
2015/01/22
[email protected] wrote:
[#67772] Preventing Redundant Email Messages — Jeremy Evans <code@...>
For a long time, I've wondered why I sometimes receive redundant email
5 messages
2015/01/23
[ruby-core:67391] [ruby-trunk - Bug #10702] Constant look up inconsistency with constants defined in included modules
From:
kwstannard@...
Date:
2015-01-07 14:28:52 UTC
List:
ruby-core #67391
Issue #10702 has been updated by Kelly Stannard.
Jack Nagel wrote:
> `D` does not inherit from `C` or `A`, so it does not have access to `B`.
>
> After assigning `B = B`, `E` can "see" `B` lexically.
>
> However, if you reopen `E` as `C::E`, it will "lose" `B`:
>
> ```ruby
> class C::E
> B # => uninitialized constant C::E::B (NameError)
> end
> ```
>
> This is described in http://cirw.in/blog/constant-lookup.html, among other good articles on constant resolution in Ruby.
I looked at that blog before I posted and if constant lookup worked like it says then what I am doing would work because D is nested in C at the point where I am trying to access B. The nested opening of D should have access to all constants that C has access to but it doesn't. If this was consistent then either I should not be able to access B on line 9 or I should be able to access it on line 12.
----------------------------------------
Bug #10702: Constant look up inconsistency with constants defined in included modules
https://bugs.ruby-lang.org/issues/10702#change-50831
* Author: Kelly Stannard
* Status: Rejected
* Priority: Normal
* Assignee:
* Category: core
* Target version:
* ruby -v: 2.2-head
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
https://gist.github.com/kwstannard/c0f722976ba023cc5755
```ruby
module A
module B
end
end
module C
include A
puts B.inspect # => A::B
class D
puts B.inspect rescue puts 'failed' # => failed
end
B = B
class E
puts B.inspect # => A::B
end
end
```
When you include a module you gain access to that module's constants as seen in line 9. Line 19 shows that you can get constants defined in the nested module when the constant is defined within the module itself.
Line 12 is the bug. Shouldn't class `D` be able to access module `B` since the previous line shows that module `C` has access to Module `B`?
--
https://bugs.ruby-lang.org/