After a good bit of head scratching I finally realized that the issue was that the module (not the type) was hidden via @moduledoc false
Coming back to the error message "documentation references type "PasswordValidator.Validators.CharacterSetValidator.Config.t()" but it is hidden or private" I think I thought that the it in the sentence was referring to the type, but it is really referring to the module, or maybe the message isn't explicit/obvious that the type isn't visible because the module isn't visible.
My suggested updated warning message would be "warning: documentation references type "PasswordValidator.Validators.CharacterSetValidator.Config.t()" but the module PasswordValidator.Validators.CharacterSetValidator.Config is hidden or private".
Recently I was working on one of my libraries (https://github.com/axelson/password-validator commit 4bb73) and I received the following warning:
I was initially surprised because IEx the type exists and is public (i.e.
@type
instead of@typep
) and IEx finds the type just fine:After a good bit of head scratching I finally realized that the issue was that the module (not the type) was hidden via
@moduledoc false
Coming back to the error message "documentation references type "PasswordValidator.Validators.CharacterSetValidator.Config.t()" but it is hidden or private" I think I thought that the
it
in the sentence was referring to the type, but it is really referring to the module, or maybe the message isn't explicit/obvious that the type isn't visible because the module isn't visible.My suggested updated warning message would be "warning: documentation references type "PasswordValidator.Validators.CharacterSetValidator.Config.t()" but the module
PasswordValidator.Validators.CharacterSetValidator.Config
is hidden or private".