dialyzer

    1熱度

    1回答

    透析抱怨鳳凰模型時,他們通常的方式設置,即 def changeset(model, params \\ :empty) ... 的PARAMS指導模型是如何進行更新,以:作爲默認區分空帶有'params'的空白表單提交等於空的地圖。 透析器警告: The call 'Elixir.Backend.Plot': changeset([email protected]::any(),'emp

    5熱度

    1回答

    透析器沒有信號不一致在這個函數 -spec myfun(integer()) -> zero | one. myfun(0) -> zero; myfun(1) -> one; myfun(2) -> other_number. 的返回類型,但它在最後一行是 myfun(_) -> other_number. 的情況下檢測爲什麼會這樣呢? 以上應該是一個非常簡單的例子,我相信....

    2熱度

    1回答

    一個簡單的協議收益率2種透析器警告: defmodule Dtest do defprotocol Valid do @doc "Returns true if data is in a valid state" def valid?(data) end defimpl Valid, for: Integer do def valid?

    3熱度

    1回答

    當定義一個類型,這將是一個字符串列表,也可以是一個空列表,我必須明確這兩種情況下是這樣的: -type my_type() :: [string()] | []. ,或者這是不夠的: -type my_type() :: [string()].

    1熱度

    1回答

    我有2個默認參數 defp foo(bar, baz, qux \\ "", garply \\ nil) 我有兩個用途的函數,一個只提供前兩個參數,其他全部4.透析器正在抱怨Function foo/3 will never be called。我認爲這是因爲它是私人的,兩個默認值允許unroll_nodes/2,unroll_nodes/3和unroll_nodes/4。我可以表面上放棄默認設

    3熱度

    2回答

    -module(test). -export([f/0, g/0]). -spec f() -> RESULT when RESULT :: 0..12 . -spec g() -> RESULT when RESULT :: 0..13 . f() -> 100 . g() -> 100 . 運行dialyzer(和typer)只有函數f被捕獲。 d

    1熱度

    1回答

    如果你定義一個類型指定和使用不同類型的參數,它會顯示類似的錯誤: binary() ... breaks the contract ... boolean() 例如,這類型指定: @spec check?(binary) :: boolean 但它似乎不起作用的類型列表,或者至少,它不會顯示警告,如果我有一個方法接收一個字符串列表,我會定義此類型的字符串: @spec check?([St

    2熱度

    1回答

    在這種情況下,透析器對我來說表現得很奇怪,我還沒有找到任何可以更好地理解它的東西。 這是不是一個錯誤: defmodule Blog.UserResolver do @type one_user :: ({:error, String.t}) @spec find(%{id: String.t}, any()) :: one_user def find(%{id:

    1熱度

    1回答

    我有一個雨傘應用程序。我看到了Dialyzer的價值,我正試着開始使用它。我已經相當遠了,但我有一個問題,我無法解決Ecto。 這是一個處理認證的小型應用程序。我可以用最簡單的例子來修剪它。 使用Elixir 1.4.2和Dialyxir 0.4.0。在問題 代碼 defmodule Auth.Account do use Ecto.Schema import Ecto.Cha

    5熱度

    1回答

    我正在學習erlang並嘗試使用透析器在可能時獲得最大的類型安全性。有一件事我不明白:什麼是非終止函數的類型以及如何在spec中表示它。你能否介紹一下這個問題?