「-Woverspecs」を指定して Dialyzer を実行していますが、次の警告が表示されます。
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 のドキュメントで確認しました。私が考えられる唯一の解決策は、複雑な関数ガードです...
アイデアや指針はありますか?