• msosn's avatar
    Warn about unused type variables in type families · eb7796f1
    msosn authored
    The warnings are enabled with the flag -fwarn-unused-matches, the same
    one that enables warnings on the term level.
    
    Identifiers starting with an underscore are now always parsed as type
    variables.  When the NamedWildCards extension is enabled, the renamer
    replaces those variables with named wildcards.
    
    An additional NameSet nwcs is added to LocalRdrEnv. It's used to keep
    names of the type variables that should be replaced with wildcards.
    
    While renaming HsForAllTy, when a name is explicitly bound it is removed
    from the nwcs NameSet. As a result, the renamer doesn't replace them in
    the quantifier body. (Trac #11098)
    
    Fixes #10982, #11098
    
    Reviewers: alanz, bgamari, hvr, austin, jstolarek
    
    Reviewed By: jstolarek
    
    Subscribers: goldfire, mpickering, RyanGlScott, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1576
    
    GHC Trac Issues: #10982
    eb7796f1
RnTypes.hs 69.2 KB