Skip to content

Resolver floor: resolveYear(1583) throws (reaches back to pre-floor 1582) #415

Description

@manlycucumber

Problem

DayResolver::resolveYear(1583) throws — the resolver reaches back for the trailing Christmas cycle that bleeds into January (ChristmasCycle::forYear($year - 1)), and for 1583 that is forYear(1582), below the engine's Gregorian floor (Computus::GREGORIAN_REFORM_YEAR = 1583). So although 1583 is the advertised first Gregorian year, the whole-year resolver's effective floor is 1584.

Surfaced while building the golden-fixture safety gate (#365), which consequently freezes 1584–2200. Documented in KNOWN-LIMITATIONS.md.

Options

  • Special-case January 1583 so the days belonging to the Advent/Christmas cycle begun in (Gregorian) December 1582 resolve, treating 1582's post-reform December as in scope.
  • Or accept 1584 as the resolver floor and keep 1583 documented as out of range (querying a 1583 date would then raise a clear, intentional error rather than an internal one).

Acceptance criteria

Notes

Low priority, no downstream dependency (no consumer queries 1583). Cheap to keep tracked.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: modelStructured liturgical models (Ordo Missae, Office, diff)type: choreMaintenance / internal

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions