Skip to content
  • Ryan Scott's avatar
    Add a recursivity check in nonVoid · e68b439f
    Ryan Scott authored
    Summary:
    Previously `nonVoid` outright refused to call itself
    recursively to avoid the risk of hitting infinite loops when
    checking recurisve types. But this is too conservative—we //can//
    call `nonVoid` recursively as long as we incorporate a way to detect
    the presence of recursive types, and bail out if we do detect one.
    Happily, such a mechanism already exists in the form of `checkRecTc`,
    so let's use it.
    
    Test Plan: make test TEST=T15584
    
    Reviewers: simonpj, bgamari
    
    Reviewed By: simonpj
    
    Subscribers: rwbarton, carter
    
    GHC Trac Issues: #15584
    
    Differential Revision: https://phabricator.haskell.org/D5116
    e68b439f