• Merijn Verstraaten's avatar
    Add -fdefer-typed-holes flag which defers hole errors to runtime. · 2cc854b7
    Merijn Verstraaten authored
    Summary:
    As proposed by Richard on Trac. This patch adds a new flag -fdefer-typed-holes
    and changes the semantics of the -fno-warn-typed-holes flag.
    
    To summarise, by default GHC has typed holes enabled and produces a compile
    error when it encounters a typed hole.
    
    When -fdefer-type-errors OR -fdefer-typed-holes is enabled, hole errors are
    converted to warnings and result in runtime errors when evaluated.
    
    The warning flag -fwarn-typed-holes is on by default. Without -fdefer-type-errors
    or -fdefer-typed-holes this flag is a no-op, since typed holes are an error
    under these conditions. If either of the defer flags are enabled (converting
    typed hole errors into warnings) the -fno-warn-typed-holes flag disables the
    warnings. This means compilation silently succeeds and evaluating a hole will
    produce a runtime error.
    
    The rationale behind allowing typed holes warnings to be silenced is that tools
    like Syntastic for vim highlight warnings and hole warnings may be undesirable.
    Signed-off-by: Merijn Verstraaten's avatarMerijn Verstraaten <merijn@inconsistent.nl>
    
    Test Plan: validate
    
    Reviewers: austin, simonpj, thomie
    
    Reviewed By: simonpj, thomie
    
    Subscribers: Fuuzetsu, thomie, carter
    
    Differential Revision: https://phabricator.haskell.org/D442
    
    GHC Trac Issues: #9497
    
    Conflicts:
    	compiler/main/DynFlags.hs
    2cc854b7
DynFlags.hs 167 KB