Skip to content
  • sgillespie's avatar
    Improve error message when importing an unusable package · df0f148f
    sgillespie authored
    If a module cannot be found because it is ignored or from an unusable
    package, report this to the user and the reason it is unusable.
    
    Currently, GHC displays the standard "Cannot find module error". For
    example:
    
    ```
    <no location info>: error:
        Could not find module ‘Control.Monad.Random’
        Perhaps you meant
          Control.Monad.Reader (from mtl-2.2.2)
          Control.Monad.Cont (from mtl-2.2.2)
          Control.Monad.Error (from mtl-2.2.2)
    ```
    
    GHC does, however, indicate unusable/ignored packages with the -v flag:
    
    ```
    package MonadRandom-0.5.1-1421RgpXdhC8e8UI7D3emA is unusable due to
    missing dependencies:
      fail-4.9.0.0-BAHmj60kS5K7NVhhKpm9J5
    ```
    
    With this change, I took that message and added it to the output of the
    "Cannot find module" message.
    
    Reviewers: bgamari, dfeuer
    
    Reviewed By: bgamari
    
    Subscribers: Phyx, dfeuer, rwbarton, thomie, carter
    
    GHC Trac Issues: #4806
    
    Differential Revision: https://phabricator.haskell.org/D4783
    df0f148f