[GHC] #11606: name shadowing warnings don't trigger on standalone declarations in ghci

GHC ghc-devs at haskell.org
Thu Feb 18 18:00:38 UTC 2016


#11606: name shadowing warnings don't trigger on standalone declarations in ghci
-------------------------------------+-------------------------------------
           Reporter:  rwbarton       |             Owner:
               Type:  bug            |            Status:  new
           Priority:  high           |         Milestone:  8.0.1
          Component:  GHCi           |           Version:  7.10.3
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 The name shadowing warnings in ghci catch shadowing from top-level binds
 and `let` statements, but not from standalone declarations (new in 8.0).
 {{{
 rwbarton at morphism:/tmp$ ~/ghc-HEAD/bin/ghci -fwarn-name-shadowing
 GHCi, version 8.1.20160212: http://www.haskell.org/ghc/  :? for help
 Prelude> a <- return ()
 Prelude> a <- return ()

 <interactive>:2:1: warning:
     This binding for ‘a’ shadows the existing binding
       defined at <interactive>:1:1
 Prelude> let b = return ()
 Prelude> let b = return ()

 <interactive>:4:5: warning:
     This binding for ‘b’ shadows the existing binding
       defined at <interactive>:3:5
 Prelude> c = return ()
 Prelude> c = return ()
 Prelude>
 }}}

 I'm hoping this can be fixed for 8.0, since I would also very much like to
 turn on name shadowing warnings in ghci by default (in the interactive
 flags), to reduce confusion from examples like the below, which is now
 possible for the first time in 8.0:
 {{{
 Prelude> fact 0 = 1
 Prelude> fact n = n * fact (n-1)
 Prelude> fact 5
 ^C^CInterrupted.
 Prelude> -- why did it run forever?
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11606>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list