Skip to content

GHC case change for warning breaks haskell-mode check #1513

Closed
@sirlensalot

Description

@sirlensalot

As of 8.0.2, GHC is now issuing warnings with a lower-case 'w':

src/Pact/Compile.hs:49:1-40: warning: [-Wunused-imports] …
    The import of ‘Hash’ from module ‘Pact.Types.Crypto’ is redundant

As a result, tools are not recognizing this and flagging things as errors or worse. Here's relevant results from a grep:

./haskell-interactive-mode.el:1032:             (not (string-match "^\n<interactive>:[-0-9]+:[-0-9]+:[\n ]+Warning:" response)))
./haskell-load.el:204:        ((string-match "Warning: orphan instance: " msg)
./haskell-load.el:398:    ((string-prefix-p "Warning:\n    " haskell-msg)
./haskell-load.el:521:             (type (cond ((string-match "^Warning:" error-msg)  'warning)

For string-match, using [Ww]fixes the issue and is presumably backward-compatible. Ie for line 521:

             (type (cond ((string-match "^[Ww]arning:" error-msg)  'warning)

works with my GHC 8.0.2 environment. string-prefix-p would need a better fix. I can't comment on the other places string-match is in use so I would request someone more familiar with this codebase make the fix.

NB: Why in [deity]'s name did they change the case in 8.0.2????? Do the haskell gods just enjoy breaking tools, because the GHC8 upgrade wasn't painful enough???

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions