2
私は「-Woverspecs」で透析装置を実行すると、この警告受けています:このコードでエリクサー、ダイアライザー、タイプとサブタイプ警告
room_channel.ex:143:
Type specification 'Elixir.Backend.RoomChannel':
testU(a) -> a when is_subtype(a,#{})
is a subtype of the success typing: 'Elixir.Backend.RoomChannel':testU(_) -> any()
を:
@spec testU(a) :: a when a: %Backend.User{}
def testU(u) do
...
私はやってみたいものですサブタイプの警告が消えるようにガードを使用して関数タイプを特定し、関数の正確な定義を持っています。
私はすべてのアイデアやポインタ
... -Woverspecsを奨励し、私は考えることができる唯一の解決策は、いくつかの複雑な関数ガードであるとして、私は穀物に対して切削い疑われていないErlangのドキュメントで参照してください?
質問の目的は、それが可能であるか実用的であるかにかかわらず、より制限的である方法です。 – user3264325
それは私が言っていることです。スペックが「緩い」ときに警告したい場合は、Wunderspec – aronisstav
を使用してください。スペックを制限したいのですが。たとえば、関数のIntsを強制的に制限し、Intsのみを許可するガードを追加する制限的な仕様を想像することができます。しかし、より複雑なタイプのガードを追加する方法を理解することはできません。 – user3264325