Package shorthands leak into dependent packages
Suppose I have imports [foo.Bar] in one of my interface modules that gets imported by my app module, which has the foo shorthand defined inpackages { pkg: ... } properly. That should work fine.
Now suppose the interface module with the imports [foo.Bar] is imported from my platform, which does not defined a foo package shorthand. This means I get an error when I run roc check on the platform module, because it doesn't know what the foo shorthand is.
However, if I run roc check on my app module which imports the platform module, it passes. That's because the foo package shorthand from the app module "leaks" into the package because the app module's shorthands are used for the entire build. Instead, we should resolve shorthands based on the current package being worked on, not the original one that was being worked on.
Worse, even though roc check on the app module passes, roc check on the platform module will hang because of https://github.com/rtfeldman/roc/issues/3507