日本語 · English(未訳)

ADR-43: リテラルと値束縛の締め——日付値域・固定オフセット正準形・点の値束縛

判断: 字句と値束縛に残っていた未規定 3 点(F66 (a)(b)・F97)を確定する(設計者裁定 3 件・ 2026-07-09。いずれも推奨案どおり)。

  1. 日付リテラルの値域は字句エラー(F66 (a))。日付部の暦は proleptic Gregorian 固定 (premise 非依存——リテラルの暦は言語の字句が定める・ADR-28)なので、値域(月 01–12・日は 月と閏年規則の実在日)は字句層で閉じて検査できる。時刻部の検査(23:59:60 拒否=ADR-33)と 同じ層に置き、日付部だけ検査が無い非対称(F66 で顕在化)を解消する。裁定の直接の動機は実測—— リファレンス実装は 2026-02-30 を黙って 2026-03-02 にロールオーバーしていた(黙って違う 結果=ADR-16 の危険基準そのもの)。
  2. 固定オフセット TZ の正準形=厳格一意形(F66 (b))"±HH:MM"(ゼロ埋め必須・HH は 00–14・ MM は 00–59)のみ合法。"+9:00""+0900""Z""UTC+9" 級は明示エラー(正準形か IANA 名 への誘導つき)。UTC は IANA 名 "UTC" で書く。動機は ADR-36 判断 6——tz 名の等値はリテラル 字面の等値(リンク解決前)なので、正準形が一意でないと別綴りの混在が整列検査の安全側エラーを 量産する。字句が一意なら「字面の等値」がそのまま意味の等値になる。値域は裁定の字面どおり HH 00–14・MM 00–59 で、"+14:30" 級(実在の最大は +14:00)は字句上合法——実在オフセットへの 締めが要る需要が出たら改訂で対応(字句は形式・実在性はデータの領分、の役割分担)。 なお実測(Node 24/ICU)では Intl が "+0900"(コロンなし)と "+15:00"(域外)を受理して いた——Intl 前段の字句検査が実際に必要だったことの確認。
  3. 日付リテラルの裸の値束縛を正式に認める(F97)d0 = 2026-05-15 は合法で、時点は値型の 一員(数値・論理・列挙・リスト・文字列に時点を加える——型は増えない・値型の内訳の明文化。 ADR-25 の三型体系は不変)。ADR-42 の dispatch 表は「点→射影・点以外の値→インスタンス参照」 に精密化される(year(d0)=射影。dispatch は展開後・実引数束縛後の実引数型なので変数経由でも 正しく分岐する——F97 が指摘した「どこにも書かれていない前提」が要らなくなる)。同じ日付を anchor:/from: とテーブルで二度書く重複も消える。ラベル値の型域(ADR-34 判断 3)に時点は 含まれないため、インスタンス参照との衝突面は生じない。

却下した案:

帰結: