チェック・実行・テスト
💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照するか、翻訳にご協力ください。
プロジェクトに取り組んでいる間、主に使うコマンドは 3 つです。コード生成なしでプロジェクトをコンパイルしてエラーを報告する check、プロジェクトをコンパイルして main 関数を実行する run、そして @Test が付いたすべての関数を実行する test です。
エラーのチェック
check コマンドを使うと、プロジェクトにコンパイルエラーがないかチェックできます:
Found 'flix.toml'. Checking dependencies...
Resolving Flix dependencies...
Downloading Flix dependencies...
Resolving Maven dependencies...
Running Maven dependency resolver.
Downloading external jar dependencies...
Dependency resolution completed.
Flix はすべてのコマンドを、プロジェクトの依存関係の解決から開始します。これがこの出力内容です。私たちのプロジェクトにはまだ依存関係がないため、ダウンロードするものはありません。以降の例では、これらの行は省略します。
プロジェクトがコンパイルできない場合、Flix は代わりにエラーを報告します。例えば、整数に対して and を使う関数を追加すると:
def isPositive(x: Int32): Bool = x and true
check は次のように報告します:
-- Type Error [E7796] -------------------------------------------- src/Main.flix
>> Unexpected type: expected 'Bool', found 'Int32'.
5 | def isPositive(x: Int32): Bool = x and true
^
unexpected type
開発中は、build コマンドよりも check コマンドの方が望ましいです。check はコード生成を省略するため、大幅に高速だからです。
プログラムの実行
run コマンドを使うと、プロジェクトをコンパイルして実行できます。事前に何かをビルドしておく必要はありません:
Hello World!
run コマンドは、プロジェクトの main 関数を実行します。main がどのようなものかについては、main 関数 を参照してください。
テストの実行
test コマンドを使うと、テストを実行できます。Flix は @Test が付いたすべての関数を収集して実行し、結果のサマリーを表示します:
Running 1 tests...
PASS test01 1.3ms
Passed: 1, Failed: 0. Skipped: 0. Elapsed: 3.8ms.
テストの書き方については、テストフレームワーク を参照してください。
ドキュメントの生成
doc コマンドを使うと、プロジェクトの API ドキュメントを生成できます。Flix はドキュメントを build/doc ディレクトリに書き出します:
build
└── doc
├── favicon.png
├── index.html
├── index.js
└── styles.css
このドキュメントは、build/doc/index.html をブラウザで開くことで読めます。
ソースコードの整形
format コマンドを使うと、プロジェクトのソースコードを整形できます。このコマンドは、src と test 内のすべてのファイルをその場で書き換えます。src/Main.flix が次のような内容であるとき:
def main( ) : Unit \ IO =
println( "Hello World!" )
def add(x:Int32,y:Int32):Int32=x+y
format を実行した後は次のようになります:
def main(): Unit \ IO =
println("Hello World!")
def add(x: Int32, y: Int32): Int32 = x + y
プロジェクトがコンパイルできない場合、format はエラーを報告し、ファイルには手を加えません。
統計情報の表示
stat コマンドを使うと、プロジェクトに関する統計情報を表示できます:
<unnamed> 0.1.0
2 files, 5 lines: 4 code, 1 comment, 0 blank.
0 modules, 2 defs: 0 pure, 2 effectful, 0 effect polymorphic.
0 types, 0 traits, 0 instances, 0 effects.
見出しの部分には、そのパッケージが公開されるリポジトリの名前(何も宣言されていない場合は <unnamed>)と、それに続くバージョンが表示されます。
プログラムが期待どおりに動くようになったら、いよいよ出荷できるものをビルドする準備が整います。