Skip to content

warning message could be more helpful

Code was:

case msg of
    wM_DESTROY -> do
        sendMessage hwnd wM_QUIT 1 0
        return 0
    otherwise -> defWindowProc (Just hwnd) msg wparam lparam

warning message was:

Warning: Pattern match(es) are overlapped
         In a case alternative: otherwise -> ...

It took me a long time to realize that wM_DESTROY was being interpreted as a new variable name shadowing the imported constant. The compiler realizes that something is probably wrong (overlapped patterns). It could further check and see that wM_DESTROY is shadowing an already existing binding and give a messages like this:

Warning: Pattern match(es) are overlapped
         In a case alternative: otherwise -> ...
         Hint: Are you sure you want to shadow the existing binding for wM_DESTROY?
Trac metadata
Trac field Value
Version 6.6.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system Unknown
Architecture Unknown
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information