Open erszcz opened 8 months ago
I don't think we have any magic handling of apply and I'm not sure a type checker should do that. It's rather something for other tools, like xref. Type wise, apply is just a function that takes some atoms and a list. The type module()
is just an alias of atom()
.
@zuiderkwast In general I agree, but I wanted to create a ticket to have a discussion around it, since this was raised by a colleague and I think it's worth considering. Given xref
detects this, I don't think Gradualizer has to duplicate the functionality, but better have it documented that it's a deliberate choice and not just an omission.
Reported by @aleklisi on erlanger.slack.com. Here's how to reproduce.
Create a new library:
Within it create the following module:
Add Gradualizer as a Rebar3 plugin and run:
Compare with:
The latter returns info that
m
andf
don't exist, but Gradualizer doesn't.