Skip to content
  • takano-akio's avatar
    Implement BlockArguments (#10843) · be84823b
    takano-akio authored and Ben Gamari's avatar Ben Gamari committed
    This patch implements the BlockArguments extension, as proposed at
    https://github.com/ghc-proposals/ghc-proposals/pull/90. It also
    fixes #10855 as a side-effect.
    
    This patch adds a large number of shift-reduce conflicts to the parser.
    All of them concern the ambiguity as to where constructs like `if` and
    `let` end. Fortunately they are resolved correctly by preferring shift.
    
    The patch is based on @gibiansky's ArgumentDo implementation (D1219).
    
    Test Plan: ./validate
    
    Reviewers: goldfire, bgamari, alanz, mpickering
    
    Reviewed By: bgamari, mpickering
    
    Subscribers: Wizek, dfeuer, gibiansky, rwbarton, thomie, mpickering, carter
    
    GHC Trac Issues: #10843, #10855
    
    Differential Revision: https://phabricator.haskell.org/D4260
    be84823b