1. 12 Oct, 2019 1 commit
  2. 10 Feb, 2015 1 commit
    • Simon Peyton Jones's avatar
      Refactor the handling of quasi-quotes · f46360ed
      Simon Peyton Jones authored
      As Trac #10047 points out, a quasi-quotation [n|...blah...|] is supposed
      to behave exactly like $(n "...blah...").  But it doesn't!  This was outright
      wrong: quasiquotes were being run even inside brackets.
      
      Now that TH supports both typed and untyped splices, a quasi-quote is properly
      regarded as a particular syntax for an untyped splice. But apart from that
      they should be treated the same.  So this patch refactors the handling of
      quasiquotes to do just that.
      
      The changes touch quite a lot of files, but mostly in a routine way.
      The biggest changes by far are in RnSplice, and more minor changes in
      TcSplice.  These are the places where there was real work to be done.
      Everything else is routine knock-on changes.
      
      * No more QuasiQuote forms in declarations, expressions, types, etc.
        So we get rid of these data constructors
          * HsBinds.QuasiQuoteD
          * HsExpr.HsSpliceE
          * HsPat.QuasiQuotePat
          * HsType.HsQuasiQuoteTy
      
      * We get rid of the HsQuasiQuote type altogether
      
      * Instead, we augment the HsExpr.HsSplice type to have three
        consructors, for the three types of splice:
          * HsTypedSplice
          * HsUntypedSplice
          * HsQuasiQuote
        There are some related changes in the data types in HsExpr near HsSplice.
        Specifically: PendingRnSplice, PendingTcSplice, UntypedSpliceFlavour.
      
      * In Hooks, we combine rnQuasiQuoteHook and rnRnSpliceHook into one.
        A smaller, clearer interface.
      
      * We have to update the Haddock submodule, to accommodate the hsSyn changes
      f46360ed
  3. 25 Nov, 2013 1 commit
  4. 04 Oct, 2013 1 commit
    • gmainland's avatar
      Fix test wibbles for new Template Haskell. · 1d43475b
      gmainland authored
      Because splices are now run in the renamer, we do not get the same error context
      as we would when running in the type checker. In most cases we get less context,
      and in some cases I have added additional context. Error messages should at
      least tell the user that an error occurred in a splice; dropping context beyond
      that point is not judged a great loss.
      
      Note that we may now report only one error when multiple errors were reported
      before because splices are now run in the renamer.
      1d43475b
  5. 24 Feb, 2013 1 commit
  6. 20 Jul, 2011 1 commit
  7. 13 Sep, 2010 1 commit
  8. 28 Nov, 2009 1 commit
  9. 11 Aug, 2009 1 commit
  10. 20 Sep, 2008 1 commit
  11. 14 Jun, 2008 1 commit