[ruby-core:114574] [Ruby master Bug#19855] Array#bsearch gets wrong result when its block returns a non-integer numeric value.

Issue #19855 has been reported by kyanagi (Kouhei Yanagita). ---------------------------------------- Bug #19855: Array#bsearch gets wrong result when its block returns a non-integer numeric value. https://bugs.ruby-lang.org/issues/19855 * Author: kyanagi (Kouhei Yanagita) * Status: Open * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-29T04:52:18Z master c0e913ae88) [arm64-darwin22] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Array#bsearch gets wrong result when its block returns a non-integer numeric value. ``` % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x) }' 4 % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x).to_r }' nil ``` fix: https://github.com/ruby/ruby/pull/8314 -- https://bugs.ruby-lang.org/

Issue #19855 has been updated by nagachika (Tomoyuki Chikanaga). Status changed from Open to Closed merged at https://github.com/ruby/ruby/commit/a28c5151f567cada0d2f5c0c3ec4df7f97b80784 ---------------------------------------- Bug #19855: Array#bsearch gets wrong result when its block returns a non-integer numeric value. https://bugs.ruby-lang.org/issues/19855#change-104395 * Author: kyanagi (Kouhei Yanagita) * Status: Closed * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-29T04:52:18Z master c0e913ae88) [arm64-darwin22] * Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED ---------------------------------------- Array#bsearch gets wrong result when its block returns a non-integer numeric value. ``` % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x) }' 4 % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x).to_r }' nil ``` fix: https://github.com/ruby/ruby/pull/8314 -- https://bugs.ruby-lang.org/

Issue #19855 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED to 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE ruby_3_2 5d568e18980b2fdec4701b52f2d89833fa20c0a8 merged revision(s) a28c5151f567cada0d2f5c0c3ec4df7f97b80784. ---------------------------------------- Bug #19855: Array#bsearch gets wrong result when its block returns a non-integer numeric value. https://bugs.ruby-lang.org/issues/19855#change-104396 * Author: kyanagi (Kouhei Yanagita) * Status: Closed * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-29T04:52:18Z master c0e913ae88) [arm64-darwin22] * Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE ---------------------------------------- Array#bsearch gets wrong result when its block returns a non-integer numeric value. ``` % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x) }' 4 % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x).to_r }' nil ``` fix: https://github.com/ruby/ruby/pull/8314 -- https://bugs.ruby-lang.org/

Issue #19855 has been updated by usa (Usaku NAKAMURA). Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE to 3.0: REQUIRED, 3.1: DONE, 3.2: DONE ruby_3_1 eb54ed809f61fb25a0de101a7a6a649e8d4a434c merged revision(s) a28c5151f567cada0d2f5c0c3ec4df7f97b80784. ---------------------------------------- Bug #19855: Array#bsearch gets wrong result when its block returns a non-integer numeric value. https://bugs.ruby-lang.org/issues/19855#change-104860 * Author: kyanagi (Kouhei Yanagita) * Status: Closed * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-29T04:52:18Z master c0e913ae88) [arm64-darwin22] * Backport: 3.0: REQUIRED, 3.1: DONE, 3.2: DONE ---------------------------------------- Array#bsearch gets wrong result when its block returns a non-integer numeric value. ``` % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x) }' 4 % ruby -e 'p [0, 4, 7, 10, 12].bsearch { |x| (4 - x).to_r }' nil ``` fix: https://github.com/ruby/ruby/pull/8314 -- https://bugs.ruby-lang.org/
participants (3)
-
kyanagi (Kouhei Yanagita)
-
nagachika (Tomoyuki Chikanaga)
-
usa (Usaku NAKAMURA)