[ ghc-Bugs-1205825 ] Incorrect "Defined but not used"
SourceForge.net
noreply at sourceforge.net
Tue May 24 05:21:53 EDT 2005
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 at microsoft.com.
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
More information about the Glasgow-haskell-bugs
mailing list