[GHC] #11024: Fix strange parsing of BooleanFormula
GHC
ghc-devs at haskell.org
Tue Oct 27 18:28:20 UTC 2015
#11024: Fix strange parsing of BooleanFormula
-------------------------------------+-------------------------------------
Reporter: mpickering | Owner:
Type: task | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.10.2
(Parser) |
Keywords: newcomer | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Consider the following program.
{{{
module Foo where
class Meh a where
foo :: a -> String
foo1 :: a -> String
foo2 :: a -> String
{-# MINIMAL foo, foo1, foo2 #-}
}}}
The minimal pragma is parsed quite weirdly.
{{{
(MinimalSig "{-# MINIMAL"
(And
[
(Var
({ test.hs:8:15-17 }
(Unqual {OccName: foo}))),
(And
[
(Var
({ test.hs:8:20-23 }
(Unqual {OccName: foo1}))),
(Var
({ test.hs:8:26-29 }
(Unqual {OccName: foo2})))])])))] {Bag(Located (HsBind
RdrName)):}}}
To be clear, it is parsed as `And [foo, [And [foo1, foo2]]` rather than
`And [foo, foo1, foo2]`.
Either the datatype should be change to be more like a binary tree or the
parser should be changed to handle this properly. I think the second
option would be easiest.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11024>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list