Kagari コンパイラの診断にはすべて番号付きのコードがあります。この部の各ページでは、コードごとに意味、それを発生させる最小のプログラム、直し方を示します。
コード
コードは 1 文字の英字と 4 桁の数字からなります(例: E2001)。
Eはエラー、Wは警告です。警告は同じ検査のエラーと同じ番号帯を使うため、W2039は型エラーの間にあります。- 先頭の数字は、それを報告する検査を表します。
| コード | 検査 | ページ |
|---|---|---|
E0xxx | 構文 | 構文 |
E1xxx | モジュール、アイテム、名前解決、アセット | モジュール、アイテム、名前 |
E2xxx, W2xxx | 型、パターン、match の網羅性 | 型 |
E3xxx, W3xxx | 種別: fn、pushdown fn、const fn、シーンの規則 | 種別 |
E4xxx | 定数評価 | 定数評価 |
E5xxx, W5xxx | 物語の解析 | 物語の解析 |
E6xxx, W6xxx | ゲームシステムの検査 | ゲームシステム |
E7xxx | バイトコード生成 | 生成 |
重大度
- エラーはビルドを止めます。エラーが残っている間、
kagari buildは.kagariファイルを書き出さず、kagari checkは 0 以外の終了ステータスで終了します。 - 警告は、おそらく誤りであるもの(到達しない
matchアーム、捨てられた#[must_use]の値、到達しないシーンなど)を報告します。ビルドは成功します。
出力形式
kagari check と kagari build は、各診断を 1 行で表示します。
path:line:col: error[E2001]: message警告の場合は warning[W2039] になります。行と列は 1 始まりで、列はバイトではなく文字単位で数えます。パスはプロジェクトディレクトリからの相対パスです。診断が別の場所にも言及する場合は、字下げした注記行が続きます。
src/main.kis:2:4: error[E1014]: message note: src/main.kis:1:4: message報告するものがなければ、kagari check は no diagnostics と表示します。言語サーバーもエディター上で同じコードとメッセージの診断を表示します。
コードの調べ方
各コードには、小文字のコードをアンカーとする見出しがあります。E2001 を調べるには types.md#e2001 を開きます。一般に、ページはコードの先頭の数字に対応するもの(上の表を参照)で、アンカーは # に小文字のコードを続けたもの(例: #w5009)です。
最終更新日 2026年10月29日