logo       

[ ghc-Bugs-1205825 ] Incorrect "Defined but not used": msg#00114

lang.haskell.glasgow.bugs

Subject: [ ghc-Bugs-1205825 ] Incorrect "Defined but not used"

Bugs item #1205825, was opened at 2005-05-20 18:04
Message generated for change (Comment added) made by simonpj
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1205825&group_id=8032

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Compiler
Group: 6.4
>Status: Closed
>Resolution: Rejected
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Incorrect "Defined but not used"

Initial Comment:
This is johndetr@xxxxxxxxxxxxxx

When I compile the following function:

150 hexArg :: P Hex
151 hexArg = do MyState i n <- getState
152 let i = i + 1
153 setState (MyState i n)
154 x <- hexNumber
155 if i < n then do { char ','; return () }
156 else do { char ')'; eof }
157 return x

I get the following messages:

Vesta.hs:151:20: Warning: Defined but not used: `i'

Vesta.hs:152:16:
Warning: This binding for `i' shadows an existing
binding
In the binding group for: i

The second is correct, if course, but the first is not.

If I change the new binding to i' instead of i (and the
references below, of course) *both* messages go away!

Please let me know if you'd like more information, a
shorter error case, etc.

----------------------------------------------------------------------

>Comment By: Simon Peyton Jones (simonpj)
Date: 2005-05-24 09:21

Message:
Logged In: YES
user_id=50165

I'm afraid the error message is quite right. In Haskell, 'let' is
always recursive, so
let i = i+1
means
letrec i = i+1
which binds i to bottom, of course. Indeed the 'i' bound by the
previous statement is unused. Changing the new binding to
something else is the right thing to do.

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1205825&group_id=8032


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise