2014-10-28 3 views
2

При реализации НИФ, диализных дает мнеErlang: НИФ и диализаторов предупреждение

Функция 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 er, чтобы жаловаться на это сообщение (-spec .. -> no_return() не помогает).

Как это можно исправить?

ответ

5

Вы можете использовать erlang:nif_error/1/2, где создавалось именно для этого.

+0

Работает как очарование .. Спасибо за быстрый ответ – GabiMe

 Смежные вопросы

  • Нет связанных вопросов^_^