Wrong pragma parsing
If I write the following code with pragma LANGUAGE and extension concatenated, ghci complains about unrecognized pragma but loads module.
{-# LANGUAGEExistentialQuantification #-}
module TestHS where
data ShowBox = forall s.Show s => SB s
instance Show ShowBox where
show (SB s) = show s
list :: [ShowBox]
list = [SB "sdf", SB 4, SB True, SB (Nothing::Maybe())]
If pragma is not recognized, the extension ExistentialQuantification should not be loaded and so file should not compile. Another strange thing is that when I :reload file in ghci it does not complain about pragma anymore. It is needed to close ghci and open it once again to see error about not recognized pragma.
Also I think that if pragma concatenated with following information is legal it will give ambiguity for cases like adding pragma SPECIAL with existing pragma SPECIALIZE.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.10.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Parser) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |