NIF を実装するとき、Dialyzer は私に
関数 crc16/1 にはローカル リターンがありません
おそらく、.erlモジュールで終了するためです(公式ドキュメントが推奨するように):
-module(my_nifs).
-export([crc16/1]).
-on_load(init/0).
init() ->
ok = erlang:load_nif("../nifs/my_nifs", 0).
-spec crc16(_Binary :: binary()) -> non_neg_integer().
crc16(_Binary) ->
exit(nif_library_not_loaded).
...
そして一般的に、exit/1
常に使用するとDialyzerがこのメッセージに文句を言うようになります(-spec .. -> no_return()
助けにはなりません)。
これはどのように修正できますか?