Thread overview
[Issue 24342] T[][].until(T[]) breaks if sentinel is longer than 1.
Jan 17, 2024
Dlang Bot
Jan 18, 2024
Dlang Bot
Jan 28, 2024
Dlang Bot
January 17, 2024
https://issues.dlang.org/show_bug.cgi?id=24342

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from Dlang Bot <dlang-bot@dlang.rocks> ---
@FeepingCreature updated dlang/phobos pull request #8894 "Fix issue 24342: Actually check that range and sentinel types match" fixing this issue:

- Fix Bugzilla issue 24342: Actually check that range and sentinel types match
in `until` before using "sentinel as subrange" mode.
  `until` does special magic when `Sentinel` consists of multiple elements of
`Range`. However, because `Range` can be a range of ranges, in which case even
a `Sentinel` that is a range may still only be a single element, we must
confirm that the element type of `Sentinel` is actually the same as `Range`
before enabling this.
  The `immutable ElementEncodingType` idiom is stolen from `startsWith`, which
forms the basis of `until` anyways (see `predSatisfied`).

https://github.com/dlang/phobos/pull/8894

--
January 18, 2024
https://issues.dlang.org/show_bug.cgi?id=24342

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/phobos pull request #8894 "Fix issue 24342: Actually check that range and sentinel types match" was merged into stable:

- 232d4784c017ae94694f1f0edbef45d7494026ec by Mathis Beer:
  Fix Bugzilla issue 24342: Actually check that range and sentinel types match
in `until` before using "sentinel as subrange" mode.
  `until` does special magic when `Sentinel` consists of multiple elements of
`Range`. However, because `Range` can be a range of ranges, in which case even
a `Sentinel` that is a range may still only be a single element, we must
confirm that the element type of `Sentinel` is actually the same as `Range`
before enabling this.
  The `immutable ElementEncodingType` idiom is stolen from `startsWith`, which
forms the basis of `until` anyways (see `predSatisfied`).

https://github.com/dlang/phobos/pull/8894

--
January 28, 2024
https://issues.dlang.org/show_bug.cgi?id=24342

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/phobos pull request #8905 "merge stable" was merged into master:

- 5976fe8c1ac4aeca87642683494b50eed5f3b2c9 by Mathis Beer:
  Fix Bugzilla issue 24342: Actually check that range and sentinel types match
in `until` before using "sentinel as subrange" mode.
  `until` does special magic when `Sentinel` consists of multiple elements of
`Range`. However, because `Range` can be a range of ranges, in which case even
a `Sentinel` that is a range may still only be a single element, we must
confirm that the element type of `Sentinel` is actually the same as `Range`
before enabling this.
  The `immutable ElementEncodingType` idiom is stolen from `startsWith`, which
forms the basis of `until` anyways (see `predSatisfied`).

https://github.com/dlang/phobos/pull/8905

--