<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_hir/src/stable_hash_impls.rs, branch 1.68.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.68.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.68.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2022-10-29T09:28:38+00:00</updated>
<entry>
<title>Rename some `OwnerId` fields.</title>
<updated>2022-10-29T09:28:38+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2022-10-27T03:02:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c8c25ce5a15f3f50439b1d746fd507c6e28abe18'/>
<id>urn:sha1:c8c25ce5a15f3f50439b1d746fd507c6e28abe18</id>
<content type='text'>
spastorino noticed some silly expressions like `item_id.def_id.def_id`.

This commit renames several `def_id: OwnerId` fields as `owner_id`, so
those expressions become `item_id.owner_id.def_id`.

`item_id.owner_id.local_def_id` would be even clearer, but the use of
`def_id` for values of type `LocalDefId` is *very* widespread, so I left
that alone.
</content>
</entry>
<entry>
<title>separate definitions and `HIR` owners</title>
<updated>2022-09-24T14:21:19+00:00</updated>
<author>
<name>Takayuki Maeda</name>
<email>takoyaki0316@gmail.com</email>
</author>
<published>2022-09-20T05:11:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8fe936099a3a2ea236d40212a340fc4a326eb506'/>
<id>urn:sha1:8fe936099a3a2ea236d40212a340fc4a326eb506</id>
<content type='text'>
fix a ui test

use `into`

fix clippy ui test

fix a run-make-fulldeps test

implement `IntoQueryParam&lt;DefId&gt;` for `OwnerId`

use `OwnerId` for more queries

change the type of `ParentOwnerIterator::Item` to `(OwnerId, OwnerNode)`
</content>
</entry>
<entry>
<title>Derive HashStable for HIR Expr and Ty.</title>
<updated>2022-08-07T15:30:45+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2022-07-31T14:13:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8a4cbcf2207cc6ee489e1c3fea9e7d8dfeb396d9'/>
<id>urn:sha1:8a4cbcf2207cc6ee489e1c3fea9e7d8dfeb396d9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove NodeIdHashingMode.</title>
<updated>2022-04-12T17:59:32+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2022-04-04T20:19:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=443333dc1f8d464ed9f3d166a847f4703ad078ae'/>
<id>urn:sha1:443333dc1f8d464ed9f3d166a847f4703ad078ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #93443 - spastorino:add-stable-hash-impl-doc, r=cjgillot</title>
<updated>2022-02-11T06:48:03+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2022-02-11T06:48:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8611e292e4cf395fa8892803e8f03dff1c5a41eb'/>
<id>urn:sha1:8611e292e4cf395fa8892803e8f03dff1c5a41eb</id>
<content type='text'>
Add comment on stable_hash_impl for OwnerNodes

r? `@cjgillot`

cc `@oli-obk`

`@bors` rollup=always
</content>
</entry>
<entry>
<title>Remove defaultness from ImplItem.</title>
<updated>2022-02-03T17:56:08+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2022-02-02T11:44:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=710662c8ac88d18ff252718012a69ff96b5343e8'/>
<id>urn:sha1:710662c8ac88d18ff252718012a69ff96b5343e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add comment on stable_hash_impl for OwnerNodes</title>
<updated>2022-01-28T21:06:53+00:00</updated>
<author>
<name>Santiago Pastorino</name>
<email>spastorino@gmail.com</email>
</author>
<published>2022-01-28T21:06:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5f7b9892754b19c3146f24dc3c0cdbda98f6efac'/>
<id>urn:sha1:5f7b9892754b19c3146f24dc3c0cdbda98f6efac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Store hir_id_to_def_id in OwnerInfo.</title>
<updated>2022-01-25T18:05:19+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2021-11-21T18:04:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=80132c3ce496ba1ad6f2ec4fa1f3db34cf8b9f77'/>
<id>urn:sha1:80132c3ce496ba1ad6f2ec4fa1f3db34cf8b9f77</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove special-cased stable hashing for HIR module</title>
<updated>2021-12-24T17:38:29+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2021-12-24T17:38:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=da3f196a4e342221aa9852699546892f8cbd3497'/>
<id>urn:sha1:da3f196a4e342221aa9852699546892f8cbd3497</id>
<content type='text'>
All other 'containers' (e.g. `impl` blocks) hashed their contents
in the normal, order-dependent way. However, `Mod` was hashing
its contents in a (sort-of) order-independent way. However, the
exact order is exposed to consumers through `Mod.item_ids`,
and through query results like `hir_module_items`. Therefore,
stable hashing needs to take the order of items into account,
to avoid fingerprint ICEs.

Unforuntately, I was unable to directly build a reproducer
for the ICE, due to the behavior of `Fingerprint::combine_commutative`.
This operation swaps the upper and lower `u64` when constructing the
result, which makes the function non-associative. Since we start
the hashing of module items by combining `Fingerprint::ZERO` with
the first item, it's difficult to actually build an example where
changing the order of module items leaves the final hash unchanged.

However, this appears to have been hit in practice in #92218
While we're not able to reproduce it, the fact that proc-macros
are involved (which can give an entire module the same span, preventing
any span-related invalidations) makes me confident that the root
cause of that issue is our method of hashing module items.

This PR removes all of the special handling for `Mod`, instead deriving
a `HashStable` implementation. This makes `Mod` consistent with other
'contains' like `Impl`, which hash their contents through the typical
derive of `HashStable`.
</content>
</entry>
<entry>
<title>Remove `in_band_lifetimes` from `rustc_hir`</title>
<updated>2021-12-14T04:33:53+00:00</updated>
<author>
<name>Peter Jaszkowiak</name>
<email>p.jaszkow@gmail.com</email>
</author>
<published>2021-12-14T04:33:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7085b4e1179412bd015b35496f09386ead1c8d7a'/>
<id>urn:sha1:7085b4e1179412bd015b35496f09386ead1c8d7a</id>
<content type='text'>
</content>
</entry>
</feed>
