<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "Menlo"), DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: var(--default-regular-font, -apple-system),BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: var(--default-regular-font, -apple-system),BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
Apoorv Ingle pushed to branch wip/expand-do at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d24628a5268e66f94d89fa3d51fe751d6792f30">7d24628a</a></strong>
<div>
<span> by Apoorv Ingle </span> <i> at 2023-05-21T23:02:41-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Fixes #18324 #23147
Expands do notation before typechecking using `HsExpansion`
- Adds testcases T18324, T18324b, DoubleMatch
Expands
- Do statements
- Monadic do statements
- monadic fix blocks
- make sure fail is used for pattern match failures in bind statments
- Makes sure unused binds generate warnings
- runs the pattern match check in generated lambda exprs to avoid getting suprious pattern match failures. c.f. pmcheck/should_compile/DoubleMatch.hs
- PopSrcSpan in HsExpr to pop error context
- Discards default monad fail alternatives that are spuriously generated
- Make sure we check for generated loc span for checking if the (>>) is user written or expanded for /do/ purposes
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654">
compiler/GHC/Hs/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#0bae7e7e67b5f9b6ba2a371f8917cf74423a0c6f">
compiler/GHC/Hs/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#f5160f63851d2edcbf12e12247c1b078cf40f20a">
compiler/GHC/Hs/Syn/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#7a1af22e4c32b9aa6ec708d9d3788e1c4db5da9a">
compiler/GHC/Hs/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#5855ff1d64fcadf28e7984964e69e35ff4de7f0a">
compiler/GHC/HsToCore/Arrows.hs
</a>
</li>
<li class="file-stats">
<a href="#65e2067fbb7377818b6cadff0531f44029499948">
compiler/GHC/HsToCore/Binds.hs
</a>
</li>
<li class="file-stats">
<a href="#6bdd5abc649727f2a802bc96ce5c276de19d3726">
compiler/GHC/HsToCore/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#085703923f9c18f6ac9f926ac9a4c7c7e6d9d9ed">
compiler/GHC/HsToCore/Match.hs
</a>
</li>
<li class="file-stats">
<a href="#b370399ae1ab68e37f0e631d98a45da6df9f011c">
compiler/GHC/HsToCore/Match/Constructor.hs
</a>
</li>
<li class="file-stats">
<a href="#c8a27621f82549165d8946ae8e9f467660958059">
compiler/GHC/HsToCore/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#36e7b8d61b4fae8f65fca3984d01eb4076712f2b">
compiler/GHC/HsToCore/Pmc.hs
</a>
</li>
<li class="file-stats">
<a href="#648f978c68cdea9aa07ff6362494dbc95b04d4e6">
compiler/GHC/HsToCore/Pmc/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#aa160d2e15ce4b9872864040e449a60d09ad648f">
compiler/GHC/HsToCore/Ticks.hs
</a>
</li>
<li class="file-stats">
<a href="#649144a78135a23cabfc90dd83c4aabf448eb6ab">
compiler/GHC/Iface/Ext/Ast.hs
</a>
</li>
<li class="file-stats">
<a href="#b47ece2bbb8303a5792c2fdc52394c8ed336e8a2">
compiler/GHC/Rename/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#939d24c1002dc322659c1f67c9f3d2db2ae31dd4">
compiler/GHC/Rename/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#3aa56839e36b2219f9ad54f5646ef3005da9c672">
compiler/GHC/Tc/Deriv/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#6a1f039ed7725eddef15dd5f4dc318a3434f26c9">
compiler/GHC/Tc/Gen/App.hs
</a>
</li>
<li class="file-stats">
<a href="#902811828741e6bcd64702935bbb54edbbd070ef">
compiler/GHC/Tc/Gen/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#3377164bfe9a1f1a8cfd588703ae1e0ea1e91cf9">
compiler/GHC/Tc/Gen/Match.hs
</a>
</li>
<li class="file-stats">
<a href="#3ee8be814b6c6727880deab3772e6af922524bf0">
compiler/GHC/Tc/Gen/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#e65390fa5a32c453a81a1c9a3e1c4464d155ca4a">
compiler/GHC/Tc/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#e63425e031ffe9350ee6b1687e506aaea75d11e1">
compiler/GHC/Tc/TyCl/Instance.hs
</a>
</li>
<li class="file-stats">
<a href="#5c0a7f8291c984f0fc06f59e7cf10dbecc11598b">
compiler/GHC/Tc/TyCl/PatSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#5ed3ecf19a26af612b8100b2639f8e153f580fe9">
compiler/GHC/Tc/TyCl/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#93bba9b9e0195db135fec54160523a427ea042fd">
compiler/GHC/Tc/Types/Origin.hs
</a>
</li>
<li class="file-stats">
<a href="#6a120b0673f8920127d8fffdaa16f01b90cc92d7">
compiler/GHC/Tc/Utils/Zonk.hs
</a>
</li>
<li class="file-stats">
<a href="#166e3514d27c63ef7e86af29830d9e8b2a31c8b1">
compiler/GHC/Types/Basic.hs
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: 0.875rem;">
The diff was not included because it is too large.
</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d24628a5268e66f94d89fa3d51fe751d6792f30">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Commit","url":"https://gitlab.haskell.org/ghc/ghc/-/commit/7d24628a5268e66f94d89fa3d51fe751d6792f30"}}</script>


</p>
</div>
</body>
</html>