summaryrefslogtreecommitdiff
path: root/test/error_highlight/test_error_highlight.rb
AgeCommit message (Collapse)Author
2024-02-15Do not include a backtick in error messages and backtracesYusuke Endoh
[Feature #16495]
2023-02-19[ruby/error_highlight] Support the new message format of NameError in Ruby 3.3Yusuke Endoh
https://bugs.ruby-lang.org/issues/18285 https://github.com/ruby/ruby/pull/6950 https://github.com/ruby/error_highlight/commit/a7c2da052e
2023-01-13[ruby/error_highlight] Identify which node in `Foo::Bar::Baz` causes a NameErrorYusuke Endoh
In Ruby 3.2 or later, a nested constant access like `Foo::Bar::Baz` is compiled to one instruction by the optimization https://github.com/ruby/ruby/pull/6187 We try to spot which sub-node caues a NameError in question based on the constant name. We will give up if the same constant name is accessed in a nested access (`Foo::Foo`). Fixes https://github.com/ruby/error_highlight/pull/31 https://github.com/ruby/error_highlight/commit/0a4db7da0a
2022-11-14[ruby/error_highlight] Enable tests for TypeError and ArgumentErrorYusuke Endoh
These tests were unintentionally disabled by `if false` https://github.com/ruby/error_highlight/commit/fa6d00d80d
2022-10-31[ruby/error_highlight] Support nodes in `spot`eileencodes
Fixes a bug where `spot` was using the wrong local variable. We want to use error highlight with code that has been eval'd, specifically ERB templates. We can recover the compiled source code of the ERB template but we need an API to pass the node into error highlight's `spot`. Required Ruby PR: https://github.com/ruby/ruby/pull/6593 https://github.com/ruby/error_highlight/commit/0b1b650a59 Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2022-08-10[ruby/error_highlight] Make backtrace_location keyword workYusuke Endoh
We had to keep backtrace_location before opts is overwritten. https://github.com/ruby/error_highlight/commit/2735e4681a
2022-08-10[ruby/error_highlight] Make ErrorHighlight.spot accept Exception ↵Yusuke Endoh
(https://github.com/ruby/error_highlight/pull/25) ... and move things from core_ext.rb to base.rb. This will confine CRuby-dependent things to ErrorHighlight.spot. https://github.com/ruby/error_highlight/commit/22d1dd7824
2022-06-07[ruby/error_highlight] Use Exception#detailed_message instead of overriding ↵Yusuke Endoh
#message (https://github.com/ruby/error_highlight/pull/24) See https://bugs.ruby-lang.org/issues/18564. Ref: https://github.com/ruby/did_you_mean/pull/177 https://github.com/ruby/error_highlight/commit/671b7c61b2
2022-01-04[ruby/error_highlight] Add a test to check if it is robust against a spoofed ↵Yusuke Endoh
filename Previously, RubyVM::AST.of opened a wrong file if the iseq's file path is spoofed. ``` module Dummy binding.irb end ``` ``` $ ruby test.rb From: test.rb @ line 2 : 1: module Dummy => 2: binding.irb 3: end irb(Dummy):001:0> foo /home/mame/work/ruby/local/lib/ruby/3.1.0/error_highlight/base.rb:412:in `spot_colon2': undefined method `last_lineno' for nil:NilClass (NoMethodError) if nd_parent.last_lineno == @node.last_lineno ^^^^^^^^^^^^ ``` Found by @kateinoigakukun This issue is already fixed in the interpreter side. This change just adds a test for the case. https://github.com/ruby/error_highlight/commit/f3626b9032
2022-01-04[ruby/error_highlight] Fix the spurious TypeError.Christian Boos
When we have no backtrace locations, we can't have the highlight, so just return the message. https://github.com/ruby/error_highlight/commit/9f5c639494
2022-01-04[ruby/error_highlight] Reproduce the error seen when calling .to_s in ↵Christian Boos
embedded Ruby The test fails with the following error: Error: test_simulate_funcallv_from_embedded_ruby(ErrorHighlightTest): TypeError: wrong argument type nil (expected method) https://github.com/ruby/error_highlight/commit/52943c9cd2
2021-10-27[ruby/error_highlight] Make the formatter mechanism support RactorYusuke Endoh
Now the formatter configuration is per Ractor. DefaultFormatter is used if not set. DefaultFormatter#message_for is now a class method to allow sub-Ractors to call the method. https://github.com/ruby/error_highlight/commit/9fbaa8ab7c
2021-08-20[ruby/error_highlight] Fixed the argument for DidYouMean.formatter=Yusuke Endoh
Looks like this bug was hidden by did_you_mean's rescuing any exceptions. https://github.com/ruby/error_highlight/commit/7a8f0b4796
2021-07-31[ruby/error_highlight] Keep it work if paren exists after receiverMasataka Pocke Kuwabara
https://github.com/ruby/error_highlight/commit/b79d679bbd
2021-07-29Partly picking ↵Hiroshi SHIBATA
https://github.com/ruby/error_highlight/commit/25ef7dbeda4f2cfcad1675f70319401ef4916f40#diff-1ce41a048bf2c08aa7bf25b741e9d3a4e08ea03f0d80bc6b8ee6d1c3c259704dR1022
2021-07-16[ruby/error_highlight] Fix leaked tempfilesNobuyoshi Nakada
https://github.com/ruby/error_highlight/commit/8b353a10a7
2021-07-13[ruby/error_highlight] Set the binary mode for Tempfile creation in a testYusuke Endoh
https://github.com/ruby/error_highlight/commit/8273d3b6f2
2021-07-13[ruby/error_highlight] Support a file that has no final newlineYusuke Endoh
https://github.com/ruby/error_highlight/commit/9d671284cb
2021-07-13[ruby/error_highlight] Support hard tabsYusuke Endoh
Now, the highlight line is created by replacing non-tab characters with spaces, and keeping all hard tabs as-is. This means the highlight line has the completely same indentation as the code snippet line. Fixes #7 https://github.com/ruby/error_highlight/commit/38f20fa542
2021-07-12[ruby/error_highlight] Update a test for multibyte charactersYusuke Endoh
https://github.com/ruby/error_highlight/commit/2fc70d7f8e
2021-06-30[ruby/error_highlight] Experimentally support a custom formatterYusuke Endoh
https://github.com/ruby/error_highlight/commit/f40a1de20e
2021-06-29Rename error_squiggle to error_highlightYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/4586