Skip to content
  • Matthew Pickering's avatar
    Capture and simplify constraints arising from running typed splices · ac37ab79
    Matthew Pickering authored and Ben Gamari's avatar Ben Gamari committed
    This fixes a regression caused by #15471 where splicing in a trivial
    program such as `[|| return () ||]` would fail as the dictionary for
    `return` would never get bound in the module containing the splice.
    
    Arguably this is symptomatic of a major problem affecting TTH where we
    serialise renamed asts and then retype check them. The reference to the
    dictionary should be fully determined at the quote site so that splicing
    doesn't have to solve any implicits at all. It's a coincidence this
    works due to coherence but see #15863 and #15865 for examples where
    things do go very wrong.
    
    Fixes #16195
    
    (cherry picked from commit a48753bd)
    ac37ab79