Hi! We're using dialyxir in our code to typecheck. Found a few issues:
Instead of pid, which specifically means just a pid, we should be using GenServer.server in most cases. Which can either be a pid | name | ..., since the most common usecase is to pass in an atom name.
Most typespecs for options used the map variant, but the functions actually use keyword lists. We do lose the required vs. optional typing (not possible with kwlists), but if we need that, then the code should probably just be switched over to maps.
Hi! We're using dialyxir in our code to typecheck. Found a few issues:
Instead of
pid
, which specifically means just a pid, we should be usingGenServer.server
in most cases. Which can either be apid | name | ...
, since the most common usecase is to pass in an atom name.Most typespecs for options used the map variant, but the functions actually use keyword lists. We do lose the required vs. optional typing (not possible with kwlists), but if we need that, then the code should probably just be switched over to maps.