From: "matz (Yukihiro Matsumoto) via ruby-core" Date: 2025-12-16T02:52:47+00:00 Subject: [ruby-core:124222] [Ruby Bug#21784] Proc#source_location start column seems strange for -> {} Issue #21784 has been updated by matz (Yukihiro Matsumoto). The column information from `source_location` will be canceled in 4.0. Let us discuss for the future. I think it's a matter of taste. I don't really care much. Matz. ---------------------------------------- Bug #21784: Proc#source_location start column seems strange for -> {} https://bugs.ruby-lang.org/issues/21784#change-115705 * Author: Eregon (Benoit Daloze) * Status: Open * ruby -v: ruby 4.0.0dev (2025-12-14T07:11:02Z master 711d14992e) +PRISM [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` $ ruby -e 'p -> { a }.source_location' ["-e", 1, 4, 1, 10] ``` So it considers the stabby lambda to be at: ```ruby p -> { a }.source_location ^^^^^^ ``` Note it starts at a whitespace after the `->`. I think it should just include the `->`, i.e. return `["-e", 1, 2, 1, 10]`. Or possibly start at the `{`, i.e. return `["-e", 1, 3, 1, 10]`. But starting on a whitespace like here seems really strange, it looks like a bug. It's the same result with `--parser=parse.y`, so I don't show it. --- For context: For Procs/block it looks like this: ``` $ ruby -e 'p proc { a }.source_location' ["-e", 1, 7, 1, 12] ``` ```ruby p proc { a }.source_location ^^^^^ ``` This looks fine. The block could of course be given to any other method so it won't always be `proc` in front. Maybe it could include the method too (so it would return start column 2 here), I think either is fine. For `for` blocks it looks like this: ``` $ ruby -e ' def self.each(&b); yield b; end; for b in self 42 end p b.source_location' ["-e", 3, 0, 5, 3] ``` That is, it covers the entire `for` expression from `for` until `end`. I think that's good and fine as-is. For `def` methods it covers everything from `def` to `end` (or end of line for `def m = 42`), as expected. -- 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/lists/ruby-core.ml.ruby-lang.org/