Size: a a a

2021 February 25

AN

Alexey Novoselov in pro.elixir
да вообще объявлять спеки как map(), ma() :: map() все равно, что совсем не объявлять их. Если не хуже. Для произвольных мап можн user defined types использовать и описывать структуру
источник

LL

Lama Lover in pro.elixir
Denis Fakhrtdinov
Не, там и правда просто мэпы с данными, которые обрабатываются и впиливаются в поля стракта.
Тогда я не понимаю где в этом коллбеке присутствуют структуры
источник

DF

Denis Fakhrtdinov in pro.elixir
Третий аргумент и возвращаемое значение.
источник

DF

Denis Fakhrtdinov in pro.elixir
Alexey Novoselov
да вообще объявлять спеки как map(), ma() :: map() все равно, что совсем не объявлять их. Если не хуже. Для произвольных мап можн user defined types использовать и описывать структуру
Да в спеке же написано, ну.
источник

AN

Alexey Novoselov in pro.elixir
Denis Fakhrtdinov
Да в спеке же написано, ну.
мб ошибка уйдет, если у входящих мап описать структуру:
  @type input() :: %{
         optional(:param1) => integer(),
         optional(:param2) => integer(),
         optional(:param3) => String.t(),
         ...
       }

но это не точно)
источник

DF

Denis Fakhrtdinov in pro.elixir
Проблема не в этом.
источник

AN

Alexey Novoselov in pro.elixir
диалайзер свои спеки строит по стеку вызовов, и если что-то не сходится, валит ошибку. Спеки map(), map() не помогают, а только мешают ему
источник

AN

Alexey Novoselov in pro.elixir
при том анализирует он ппц глубоко, и чем глубже анализ, тем непонятнее ошибка на выходе(
источник

((

(fun () -> ()) in pro.elixir
Artur Mustafin
потому что в других ЯП более адекватноек коммьюнити. иди работай, не отвлекайся
заметно
источник

DF

Denis Fakhrtdinov in pro.elixir
Alexey Novoselov
диалайзер свои спеки строит по стеку вызовов, и если что-то не сходится, валит ошибку. Спеки map(), map() не помогают, а только мешают ему
Я знаю как работает диалайзер.
Здесь проблема в том, что спеки внутри стракта задаются макросами ecto.
источник

DF

Denis Fakhrtdinov in pro.elixir
Впрочем, это пока не точно, я пока не добрался до пруфа.
источник

DF

Denis Fakhrtdinov in pro.elixir
Это нужно макросы ссаные дебажить.
источник

AN

Alexey Novoselov in pro.elixir
Denis Fakhrtdinov
Это нужно макросы ссаные дебажить.
хрена там что задается. Надо спеки руками для экто писать
источник

DF

Denis Fakhrtdinov in pro.elixir
Ну или так, тоже вариант.
источник

DF

Denis Fakhrtdinov in pro.elixir
Тогда не надо дебажить макросы.
источник

DF

Denis Fakhrtdinov in pro.elixir
Даже лучше.
источник

AN

Alexey Novoselov in pro.elixir
Denis Fakhrtdinov
Ну или так, тоже вариант.
источник

DF

Denis Fakhrtdinov in pro.elixir
Ага, спасибо!
источник

LL

Lama Lover in pro.elixir
Denis Fakhrtdinov
Третий аргумент и возвращаемое значение.
А, я-то думал что Module тут это дефолтный модуль для модулей из elixir
Так а ты t() как объявил?
источник

DF

Denis Fakhrtdinov in pro.elixir
@type t :: %__MODULE__{}
источник