alt türlerinin Uyarılar: Yapmak isterdim neyiİksir, Diyaliz Cihazı, Türleri ve ben '-Woverspecs' ile dialyzer çalıştıran ve bu uyarıyı almak am
@spec testU(a) :: a when a: %Backend.User{}
def testU(u) do
...
şudur: Bu kod ile
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()
alt tip uyarısı ortadan kalkacak ve işlevimin kesin bir tanımını alabilmem için işlev tipini bir güvenlik görevlisi ile sabitleyin. Ben tahıl karşı kesiyorum -Woverspecs teşvik ve şüpheli değildir Erlang docs gördüğünüz
, bazı karmaşık fonksiyon bekçi olduğunu düşünebilirsiniz tek çözüm ...
Herhangi fikirler veya işaretçiler olarak?
Sorunun amacı daha kısıtlayıcı olmaktır - bu mümkün veya pratik olsun – user3264325
Dediklerim budur. Spesifikasyonlarınız "gevşek" olduğunda uyarılmak isterseniz, Wunderspec – aronisstav
'u kullanmalısınız. Spesifikasyonlarımın kısıtlayıcı olmasını istiyorum. Örneğin, Int'leri bir işlev üzerinde zorlayan ve sonra yalnızca Ints'e izin veren bir koruma ekleyen bir kısıtlayıcı özellik hayal edebiliyorum. Ama daha karmaşık tipler için bir bekçi nasıl ekleyeceğimi bilemiyorum – user3264325