2014-10-28 27 views
2

在實施NIFS,透析讓我二郎:NIFS和透析器警告

功能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總是讓Dialyz呃抱怨這個消息(-spec .. -> no_return()沒有幫助)。

這怎麼解決?

回答

5

您可以使用erlang:nif_error/1/2哪裏爲此創建。

+0

工程就像一個魅力..感謝您的快速響應 – GabiMe 2014-10-28 15:53:47