Actions
Feature #21335
openNamespaces should be present in the backtrace
Status:
Open
Assignee:
-
Target version:
-
Description
Namespaces can call in to other name spaces. I think it might be helpful if namespace information is in the backtrace.
For example:
File.binwrite "foo.rb", <<-eorb
class Foo
def self.test(ns1, ns2, count)
if count == 0
puts caller
else
if count % 2 == 0
ns1::Foo.test(ns1, ns2, count - 1)
else
ns2::Foo.test(ns1, ns2, count - 1)
end
end
end
end
eorb
ns1 = Namespace.new
ns1.load "foo.rb"
ns2 = Namespace.new
ns2.load "foo.rb"
ns1::Foo.test(ns1, ns2, 10)
The output is like this:
See doc/namespace.md for known issues, etc.
/Users/aaron/git/ruby/exe/ruby: warning: Namespace is experimental, and the behavior may change in the future!
See doc/namespace.md for known issues, etc.
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
/Users/aaron/git/ruby/foo.rb:9:in 'test'
/Users/aaron/git/ruby/foo.rb:7:in 'test'
./test.rb:23:in '<main>'
Foo.test
alternates between namespaces when calling a method, but you can't tell from the backtrace. I think we should include namespaces in the backtrace.
Actions
Like2
Like0Like0Like0Like0Like0Like0Like0