Skip to content

refactor(std): 同梱の core と std を x.f(a) のメソッド呼び出しで書き直す - #477

Merged
Allianaab2m merged 1 commit into
mainfrom
refactor/std-method-calls
Nov 4, 2026
Merged

Allianaab2m merged 1 commit into
mainfrom
refactor/std-method-calls

Conversation

@Allianaab2m

Copy link
Copy Markdown
Member

同梱の core と std(crates/emela-core/lib)を,#467 の x.f(a) で書き直す.挙動は変えない.

方針

  • 同じ型の上で重ねる段はメソッドの連鎖にする.reverse(fold(xs, ...)) は xs.fold(...).reverse() に,Option.is_some(file_text(..)) は file_text(..).is_some() にした
  • 別モジュールの関数や helper に渡す段は |> のまま残す
  • 値を作る関数はそのまま

変更

  • Ord.compare(a, b) と Eq.eq は a.compare(b) の形で呼ぶ
  • 連鎖の最後の String.concat は .join("") にした
  • ## の doc コメントの例も同じ書き方にした
  • 使わなくなった import Std.Cause(std/http.emel)を消した

変えなかったもの

  • Float.max / Float.min の compare(a, b).a.compare(b) だと Float.compare と Ord.compare の両方に当たって E0335 になる
  • std/http.emel の @deprecated の転送関数.移った先を示すので修飾のまま
  • http.emel の normal_headers の |>.fmt が行頭ドットの連鎖を 1 行にまとめて読みにくくなる

確認

  • cargo nextest run --workspace: 1612 passed,1 skipped
  • lower のスナップショット 4 件を撮り直した.std の行が変わって local 番号(%78 が %77 になるなど)がずれただけ
  • tests/laws: js,c とも 10 passed.wasm は手元で回していない
  • examples/* の 10 個で check と test が通る
  • 触った .emel で emela fmt --check が通る

同じ型の上で重ねる段は M.f(x, ...) と |> をやめてメソッドの連鎖にする.
別モジュールの関数や helper に渡す段は |> のまま残す.

- Ord.compare(a, b) と Eq.eq は a.compare(b) の形で呼ぶ.Float の compare
  は Float.compare と Ord.compare が両方当たる(E0335)ので変えない
- 連鎖の最後の String.concat は .join("") にする
- doc コメントの例も同じ書き方にする
- std/http.emel の @deprecated の転送関数は,移った先を示すので修飾のまま
- 使わなくなった import Std.Cause を消す

lower のスナップショット 4 件は std の変化で local 番号がずれたので撮り直す.
@Allianaab2m
Allianaab2m added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit 6db0b9c Nov 4, 2026
11 checks passed
@Allianaab2m
Allianaab2m deleted the refactor/std-method-calls branch November 4, 2026 14:22
@emela-bot emela-bot Bot mentioned this pull request Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant