警告コード
このドキュメントでは、YaoXiang コンパイラが生成する可能性のある警告コードをリストします。警告はコンパイルを阻止しませんが、コードに潜在的な問題がある可能性を示しています。
設定
yaoxiang.toml で警告動作を設定できます:
toml
[lint]
# デッドコード警告レベル:off | warn | deny
dead-code = "warn"off:警告を無効化warn:警告を表示(デフォルト)deny:警告をエラーとして扱う
警告リスト
W1001: 未使用のエクスポートされた関数
原因:エクスポートされた関数がどのコードからも呼び出されていない。
yaoxiang
pub dead_function: () -> Void = { } // W1001: 未使用のエクスポートされた関数
main = {
// dead_function が呼び出されたことがない
}提案:
- 関数が外部使用を必要としない場合は、
pub修飾子を削除 - 関数を保持する必要があるが今は使用されていない場合は、設定で
dead-code = "off"を設定
W1002: 未使用のエクスポートされた型
原因:エクスポートされた型(type エイリアスまたはカスタム型)が使用されていない。
例:
yaoxiang
DeadType: Type = Int // W1002: 未使用のエクスポートされた型
main = {
x = 42
}提案:
- 型をエクスポートする必要があるが今は使用されていない場合は、この警告を無視
W1003: 未使用のインポート
原因:use 文でインポートされたモジュールまたはシンボルが使用されていない。
yaoxiang
use std.json // W1003: 未使用のインポート
main = {
// json モジュールが使用されたことがない
}提案:
- 未使用のインポートを削除してコードを整潔に保つ
- インポートを保持する必要がある場合(副作用のため)は、
use std.json.*を使用するか、コメントで説明を追加
W1004: 未使用のエクスポートされた変数
原因:pub でエクスポートされた変数が読み取られたことがない。
例:
yaoxiang
pub dead_var = 42 // W1004: 未使用のエクスポートされた変数
main = {
// dead_var が読み取られたことがない
}提案:
- 不要な
pub修飾子を削除 - 変数をエクスポートする必要があるが今は使用されていない場合は、この警告を無視
W1005: 未使用のエクスポートされたメソッド
原因:型でエクスポートされたメソッドが呼び出されたことがない。
例:
yaoxiang
Foo: Type = { value: Int }
pub Foo.dead_method: (self: Foo) -> Void = { } // W1005: 未使用のエクスポートされたメソッド
main = {
foo = Foo(1)
// dead_method が呼び出されたことがない
}提案:
- 不要な
pub修飾子を削除 - メソッドを保持する必要があるが今は使用されていない場合は、この警告を無視
警告レベルの詳細
| レベル | 効果 |
|---|---|
off | この警告を完全に無効化 |
warn | 警告を表示するがコンパイル継続(デフォルト) |
deny | 警告をエラーとして扱い、コンパイルを阻止 |
使用シナリオ
- 開発中:
warnレベルでコードの潜在的な問題を確認 - リリース前:
denyレベルで未使用のコードがないことを確認 - レガシーコード:
offレベルで一時的に警告を無視
エラーコードとの違い
警告コードは W プレフィックス(例:W1001)を使用し、エラーコードは E プレフィックス(例:E1001)を使用します。
- エラー (Error):コンパイルを阻止し、修正が必要
- 警告 (Warning):潜在的な問題を示唆し、修正は任意
