<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
 Marge Bot pushed to branch wip/marge_bot_batch_merge_job
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/703221f408b023a1b3433938572e7b5c24b4af60">703221f4</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2020-03-25T14:45:04-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use export list of Main module in function TcRnDriver.hs:check_main (Fix #16453)

- Provide the export list of the `Main` module as parameter to the
  `compiler/typecheck/TcRnDriver.hs:check_main` function.
- Instead of `lookupOccRn_maybe` call the function `lookupInfoOccRn`.
  It returns the list `mains_all` of all the main functions in scope.
- Select from this list `mains_all` all `main` functions that are in
  the export list of the `Main` module.
- If this new list contains exactly one single `main` function, then
  typechecking continues.
- Otherwise issue an appropriate error message.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e27205a66b06a4501d87eb31e285eadbc693eb7">3e27205a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-03-25T14:45:40-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove -fkill-absence and -fkill-one-shot flags

They seem to be a benchmarking vestige of the Cardinality paper and
probably shouldn't have been merged to HEAD in the first place.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf0a381b931f1ed4d40bc5bf25e96a5b5d5c153b">bf0a381b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-25T15:17:12-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix T17786 on Windows

Fixes line ending normalization issue.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16987040479b77dc571e68d5d6954096e81b16a9">16987040</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-25T15:17:12-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix T17786

Fix missing quoting and expected exit code.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd819105bc4e0708ee88dda102740d5ec3d37986">bd819105</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-25T15:17:12-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T12971 as broken on Windows

Due to #17945.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f948a0613085dfe6631ec0a2e7e45ad982daf9be">f948a061</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-25T15:17:13-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Add FreeBSD release job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/11a43080518ee6e5b474b9e1d91d6758bfac9878">11a43080</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-03-25T15:17:13-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Run checkNewDataCon before constraint-solving newtype constructors

Within `checkValidDataCon`, we used to run `checkValidType` on the
argument types of a newtype constructor before running
`checkNewDataCon`, which ensures that the user does not attempt
non-sensical things such as newtypes with multiple arguments or
constraints. This works out in most situations, but this falls over
on a corner case revealed in #17955:

```hs
newtype T = Coercible () T => T ()
```

`checkValidType`, among other things, peforms an ambiguity check on
the context of a data constructor, and that it turn invokes the
constraint solver. It turns out that there is a special case in the
constraint solver for representational equalities (read: `Coercible`
constraints) that causes newtypes to be unwrapped (see
`Note [Unwrap newtypes first]` in `TcCanonical`). This special case
does not know how to cope with an ill formed newtype like `T`, so
it ends up panicking.

The solution is surprisingly simple: just invoke `checkNewDataCon`
before `checkValidType` to ensure that the illicit newtype
constructor context is detected before the constraint solver can
run amok with it.

Fixes #17955.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#1419e35d2402c23209a644b054c5a67aa4463451">
compiler/GHC/Core/Op/DmdAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#774d88050336ef660c7a219fb06c480c2fc639bc">
compiler/GHC/Driver/Session.hs
</a>
</li>
<li class="file-stats">
<a href="#10828b99499a9ef1e9839b007762c68994bcb036">
compiler/basicTypes/Demand.hs
</a>
</li>
<li class="file-stats">
<a href="#3668e5951898e1cee434d7e6fb5a139287ebe70d">
compiler/typecheck/TcExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#2799ba786adc98d485fad6003334b913a0069bdc">
compiler/typecheck/TcRnDriver.hs
</a>
</li>
<li class="file-stats">
<a href="#bdfa0cc139f61d1236abc1598c5d684b43c357f9">
compiler/typecheck/TcTyClsDecls.hs
</a>
</li>
<li class="file-stats">
<a href="#b7235ed3ddd54d269c1e14838ccd012ea2766bdb">
testsuite/tests/codeGen/should_compile/Makefile
</a>
</li>
<li class="file-stats">
<a href="#07e6f97645f3af349d848d286a12d4713f4e8302">
testsuite/tests/driver/Makefile
</a>
</li>
<li class="file-stats">
<a href="#f35886f290d7a8814ce6885523ffbdf7a729e6af">
testsuite/tests/driver/all.T
</a>
</li>
<li class="file-stats">
<a href="#1293ddea482a96e571b53f5cde2a25831b80d3e4">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453E1.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#8239d0a380524c5e6ba2d3b9d11b77bd689fc271">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453E1.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#1dccc59aafc57bb5fdb9adf8db9a84c875a31a29">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453E2.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1c8825d8bd116b28b34a8c4896dcdda0ad970e0e">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453E2.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#ca4c3ae78a75e82e5d59d1b8d3d6e014ad34119d">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453S.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#0855f82cdd08d575e48ee0c4a137d285209957b4">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T16453T.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#4053234192fa36a93a1f485cf7758c95f7100954">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T17955.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#d2f3eb0369e995800c7e3cc3f5ea200114d2a063">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T17955.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#b9e86d897a62509b0114d81d5e736630d6f68f43">
testsuite/tests/typecheck/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#408a9cfb647459ca4a189bc7c26bfe6940283aaf">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M0.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a633f51fea9a92dc985fe9d8821bd70c8eb3ba65">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M0.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#c4fda06181b28f4aa70adb5fb301abe69594ff0c">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M1.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#47b63eabbba3628c6ae79e4a7e5dcd876c84ec0e">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M1.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#0a71fe3bcdc054e8c145fb5140c154d36810828e">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M2.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#4d0693a343db156ec4cda1ccbaad82527e40855c">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M2.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#1be84554fcf97d474111324d2549b3a73b989614">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M3.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#66d7d7fa14b5e3d373809bf0bba755cdae78c2c1">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M3.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#8d7e6ce671036e58a035574d69ea9027ab6f8469">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M4.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#f82cc35fa74cdf286b03d70a617c9d8a770d4011">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453M4.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#7a6f23139977a58621571ec80511af433e650861">
<span class="new-file">
+
testsuite/tests/typecheck/should_run/T16453T.hs
</span>
</a>
</li>
</ul>
<h5>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: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/1e312fd9c84eb9c49f4d468ff45be79065f2a7be...11a43080518ee6e5b474b9e1d91d6758bfac9878">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



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