<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_error_codes/error_codes, branch 1.45.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.45.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.45.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-06-02T04:07:20+00:00</updated>
<entry>
<title>Rollup merge of #72880 - GuillaumeGomez:cleanup-e0637, r=Dylan-DPC</title>
<updated>2020-06-02T04:07:20+00:00</updated>
<author>
<name>Yuki Okushi</name>
<email>huyuumi.dev@gmail.com</email>
</author>
<published>2020-06-02T04:07:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b3cf989eafe2dde7dbc6bc76986b46c9b3a56366'/>
<id>urn:sha1:b3cf989eafe2dde7dbc6bc76986b46c9b3a56366</id>
<content type='text'>
Clean up E0637 explanation

r? @Dylan-DPC
</content>
</entry>
<entry>
<title>Clean up E0637 explanation</title>
<updated>2020-06-01T11:07:29+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2020-06-01T11:07:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=576a97b6d1add4da03cec36adafbea3084456ed8'/>
<id>urn:sha1:576a97b6d1add4da03cec36adafbea3084456ed8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #72818 - GuillaumeGomez:cleanup-e0622, r=Dylan-DPC</title>
<updated>2020-06-01T01:14:10+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>dylan.dpc@gmail.com</email>
</author>
<published>2020-06-01T01:14:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2e3417a82d8480a96832842193c7100d32d2db1c'/>
<id>urn:sha1:2e3417a82d8480a96832842193c7100d32d2db1c</id>
<content type='text'>
Clean up E0622 explanation

r? @Dylan-DPC
</content>
</entry>
<entry>
<title>Clean up E0622 explanation</title>
<updated>2020-05-31T12:09:15+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2020-05-31T12:09:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fbc037da6fea06b572391f5e3fe24c6903d8dae'/>
<id>urn:sha1:1fbc037da6fea06b572391f5e3fe24c6903d8dae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #72540 - davidtwco:issue-67552-mono-collector-comparison, r=varkor</title>
<updated>2020-05-30T11:45:10+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2020-05-30T11:45:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f96e3e206928d4214997c5585ab9f45318d1d8c6'/>
<id>urn:sha1:f96e3e206928d4214997c5585ab9f45318d1d8c6</id>
<content type='text'>
mir: adjust conditional in recursion limit check

Fixes #67552.

This PR adjusts the condition used in the recursion limit check of
the monomorphization collector, from `&gt;` to `&gt;=`.

In #67552, the test case had infinite indirect recursion, repeating a
handful of functions (from the perspective of the monomorphization
collector): `rec` -&gt; `identity` -&gt; `Iterator::count` -&gt; `Iterator::fold`
-&gt; `Iterator::next` -&gt; `rec`.

During this process, `resolve_associated_item` was invoked for
`Iterator::fold` (during the construction of an `Instance`), and
ICE'd due to substitutions needing inference. However, previous
iterations of this recursion would have called this function for
`Iterator::fold` - and did! - and succeeded in doing so (trivially
checkable from debug logging, `()` is present where `_` is in the substs
of the failing execution).

The expected outcome of this test case would be a recursion limit error
(which is present when the `identity` fn indirection is removed), and
the recursion depth of `rec` is increasing (other functions finish
collecting their neighbours and thus have their recursion depths reset).

When the ICE occurs, the recursion depth of `rec` is 256 (which matches
the recursion limit), which suggests perhaps that a different part of
the compiler is using a `&gt;=` comparison and returning a different result
on this recursion rather than what it returned in every previous
recursion, thus stopping the monomorphization collector from reporting
an error on the next recursion, where `recursion_depth_of_rec &gt; 256`
would have been true.

With grep and some educated guesses, we can determine that
the recursion limit check at line 818 in
`src/librustc_trait_selection/traits/project.rs` is the other check that
is using a different comparison. Modifying either comparison to be `&gt;` or
`&gt;=` respectively will fix the error, but changing the monomorphization
collector produces the nicer error.
</content>
</entry>
<entry>
<title>Rollup merge of #72731 - GuillaumeGomez:cleanup-e0619, r=Dylan-DPC</title>
<updated>2020-05-29T18:21:26+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>dylan.dpc@gmail.com</email>
</author>
<published>2020-05-29T18:21:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=180a92cad72fc6fa9fad5a0f97db24703fe280bf'/>
<id>urn:sha1:180a92cad72fc6fa9fad5a0f97db24703fe280bf</id>
<content type='text'>
Add missing empty line in E0619 explanation

r? @Dylan-DPC
</content>
</entry>
<entry>
<title>Add missing empty line in E0619 explanation</title>
<updated>2020-05-29T09:06:48+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2020-05-29T09:06:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=12c03db157ced04b5436288781ae0a1728d78e02'/>
<id>urn:sha1:12c03db157ced04b5436288781ae0a1728d78e02</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #72495 - GuillaumeGomez:cleanup-e0601, r=Dylan-DPC</title>
<updated>2020-05-29T06:07:02+00:00</updated>
<author>
<name>Yuki Okushi</name>
<email>huyuumi.dev@gmail.com</email>
</author>
<published>2020-05-29T06:07:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6786c7d190a0792cd392fc2d8dde7c7de1e9f9b3'/>
<id>urn:sha1:6786c7d190a0792cd392fc2d8dde7c7de1e9f9b3</id>
<content type='text'>
Improve E0601 explanation

r? @Dylan-DPC
</content>
</entry>
<entry>
<title>Rollup merge of #72605 - GuillaumeGomez:cleanup-e0617, r=Dylan-DPC</title>
<updated>2020-05-29T00:33:14+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>dylan.dpc@gmail.com</email>
</author>
<published>2020-05-29T00:33:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=235f3827316200db2ce4b535507528725cfeb7a3'/>
<id>urn:sha1:235f3827316200db2ce4b535507528725cfeb7a3</id>
<content type='text'>
Add working example for E0617 explanation

r? @Dylan-DPC
</content>
</entry>
<entry>
<title>standardize limit comparisons with `Limit` type</title>
<updated>2020-05-28T09:33:07+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-05-26T18:48:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a54ed872cb79529195f4b02910be823a75f3da22'/>
<id>urn:sha1:a54ed872cb79529195f4b02910be823a75f3da22</id>
<content type='text'>
This commit introduces a `Limit` type which is used to ensure that all
comparisons against limits within the compiler are consistent (which can
result in ICEs if they aren't).

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
</feed>
