[ruby-core:112720] [Ruby master Feature#19452] `Thread::Backtrace::Location` should have column information if possible.
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2023-03-07 14:40:03 UTC
List:
ruby-core #112720
Issue #19452 has been updated by mame (Yusuke Endoh).
mame (Yusuke Endoh) wrote in #note-6:
> This is somewhat a matter of taste, but since this is a user interface, I believe it is important to provide pinpoint information at a glance. So I think it is worthwhile to elaborate it, even if it is somewhat tedious.
Sorry, I'm getting off topic. I think it is possible to use four values of first_lineno, etc. as information to connect `Thread::Backtrace::Location` and AST node. (@ko1 is not so keen on it, though.)
However, we would need to clearly agree that this is a use case of `Thread::Backtrace::Location#first_column`. If we change the return value arbitrarily, it would not be able to match it up with the AST node. Anyway, I think this should be discussed after YARP is completed and incorporated into CRuby.
----------------------------------------
Feature #19452: `Thread::Backtrace::Location` should have column information if possible.
https://bugs.ruby-lang.org/issues/19452#change-102176
* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
I discussed this with @mame and it would be pretty useful if we could also get the column information from exception backtrace location, even if it was slow.
A POC:
```ruby
class Thread::Backtrace::Location
if defined?(RubyVM::AbstractSyntaxTree)
def first_column
RubyVM::AbstractSyntaxTree.of(self, keep_script_lines: true).first_column
end
else
def first_column
raise NotImplementedError
end
end
end
```
It would be good to have a standard interface, so we follow the same interface as https://bugs.ruby-lang.org/issues/19451 and vice versa where it makes sense. I'll investigate it.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/