• Ryan Scott's avatar
    Fix #15792 by not reifying invisible arguments in AppTys · bfd93f90
    Ryan Scott authored
    Summary:
    The `reifyType` function in `TcSplice` is carefully designed
    to avoid reifying visible arguments to `TyConApp`s. However, the same
    care was not given towards the `AppTy` case, which lead to #15792.
    
    This patch changes to the `AppTy` case of `reifyType` so that it
    consults the kind of the function type to determine which of the
    argument types are invisible (and therefore should be dropped) during
    reification. This required crafting a variant of `tyConArgFlags`,
    which I dubbed `appTyArgFlags`, that accept an arbitrary function
    `Type` instead of a `TyCon`.
    
    Test Plan: make test TEST=T15792
    
    Reviewers: goldfire, bgamari, simonpj
    
    Reviewed By: simonpj
    
    Subscribers: simonpj, rwbarton, carter
    
    GHC Trac Issues: #15792
    
    Differential Revision: https://phabricator.haskell.org/D5252
    bfd93f90
Type.hs 113 KB