[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