<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_const_eval/src/interpret/operand.rs, branch 1.60.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.60.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.60.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2022-02-15T05:19:59+00:00</updated>
<entry>
<title>Overhaul `Const`.</title>
<updated>2022-02-15T05:19:59+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2022-02-02T03:24:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a95fb8b150a256856aedeca7ebf30b662d2e5141'/>
<id>urn:sha1:a95fb8b150a256856aedeca7ebf30b662d2e5141</id>
<content type='text'>
Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as
this:
```
pub struct Const&lt;'tcx&gt;(&amp;'tcx Interned&lt;ConstS&gt;);
```
This now matches `Ty` and `Predicate` more closely, including using
pointer-based `eq` and `hash`.

Notable changes:
- `mk_const` now takes a `ConstS`.
- `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a
  we need separate arena for it, because we can't use the `Dropless` one any
  more.
- Many `&amp;'tcx Const&lt;'tcx&gt;`/`&amp;Const&lt;'tcx&gt;` to `Const&lt;'tcx&gt;` changes
- Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes.
- Lots of tedious sigil fiddling.
</content>
</entry>
<entry>
<title>Overhaul `TyS` and `Ty`.</title>
<updated>2022-02-15T05:03:24+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2022-01-25T03:13:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e9a0c429c5da5a34c0469117774fe32694a0281c'/>
<id>urn:sha1:e9a0c429c5da5a34c0469117774fe32694a0281c</id>
<content type='text'>
Specifically, change `Ty` from this:
```
pub type Ty&lt;'tcx&gt; = &amp;'tcx TyS&lt;'tcx&gt;;
```
to this
```
pub struct Ty&lt;'tcx&gt;(Interned&lt;'tcx, TyS&lt;'tcx&gt;&gt;);
```
There are two benefits to this.
- It's now a first class type, so we can define methods on it. This
  means we can move a lot of methods away from `TyS`, leaving `TyS` as a
  barely-used type, which is appropriate given that it's not meant to
  be used directly.
- The uniqueness requirement is now explicit, via the `Interned` type.
  E.g. the pointer-based `Eq` and `Hash` comes from `Interned`, rather
  than via `TyS`, which wasn't obvious at all.

Much of this commit is boring churn. The interesting changes are in
these files:
- compiler/rustc_middle/src/arena.rs
- compiler/rustc_middle/src/mir/visit.rs
- compiler/rustc_middle/src/ty/context.rs
- compiler/rustc_middle/src/ty/mod.rs

Specifically:
- Most mentions of `TyS` are removed. It's very much a dumb struct now;
  `Ty` has all the smarts.
- `TyS` now has `crate` visibility instead of `pub`.
- `TyS::make_for_test` is removed in favour of the static `BOOL_TY`,
  which just works better with the new structure.
- The `Eq`/`Ord`/`Hash` impls are removed from `TyS`. `Interned`s impls
  of `Eq`/`Hash` now suffice. `Ord` is now partly on `Interned`
  (pointer-based, for the `Equal` case) and partly on `TyS`
  (contents-based, for the other cases).
- There are many tedious sigil adjustments, i.e. adding or removing `*`
  or `&amp;`. They seem to be unavoidable.
</content>
</entry>
<entry>
<title>initial revert</title>
<updated>2022-01-15T01:16:55+00:00</updated>
<author>
<name>Ellen</name>
<email>supbscripter@gmail.com</email>
</author>
<published>2022-01-12T03:19:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=71bbb603f4108bc1f0bc8c8395ec725bb66e7802'/>
<id>urn:sha1:71bbb603f4108bc1f0bc8c8395ec725bb66e7802</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `in_band_lifetimes` from `rustc_const_eval`</title>
<updated>2021-12-14T03:39:00+00:00</updated>
<author>
<name>LegionMammal978</name>
<email>mattlloydhouse@gmail.com</email>
</author>
<published>2021-12-14T03:34:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a19eaf3542f6d046faf431fdd7c7b651c3e64e61'/>
<id>urn:sha1:a19eaf3542f6d046faf431fdd7c7b651c3e64e61</id>
<content type='text'>
See #91867 for more information.
</content>
</entry>
<entry>
<title>allow for failure of subst_normalize_erasing_regions in const_eval</title>
<updated>2021-12-05T11:43:39+00:00</updated>
<author>
<name>b-naber</name>
<email>bn263@gmx.de</email>
</author>
<published>2021-12-05T10:13:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=61cab770bd55fdc3d9d6ac86a9e0ccf7ddbb3f51'/>
<id>urn:sha1:61cab770bd55fdc3d9d6ac86a9e0ccf7ddbb3f51</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix CTFE/Miri simd_insert/extract on array-style repr(simd) types</title>
<updated>2021-11-18T14:10:35+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2021-11-18T03:29:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2f1a1f530b253b98e41a138b159c19481eb42269'/>
<id>urn:sha1:2f1a1f530b253b98e41a138b159c19481eb42269</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add dedicated error variant for writing the discriminant of an uninhabited enum variant</title>
<updated>2021-10-14T14:03:20+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2021-10-13T20:53:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c5a68cf0a65fe94022f5c5fd0fc47ccfcda81929'/>
<id>urn:sha1:c5a68cf0a65fe94022f5c5fd0fc47ccfcda81929</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make `abi::Abi` `Copy` and remove a *lot* of refs</title>
<updated>2021-09-09T08:41:19+00:00</updated>
<author>
<name>Andreas Liljeqvist</name>
<email>bonega@gmail.com</email>
</author>
<published>2021-08-29T09:06:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5b2f757dae374e22a7733f90af482f405bd426e9'/>
<id>urn:sha1:5b2f757dae374e22a7733f90af482f405bd426e9</id>
<content type='text'>
fix

fix

Remove more refs and clones

fix

more

fix
</content>
</entry>
<entry>
<title>Rename rustc_mir to rustc_const_eval.</title>
<updated>2021-09-07T18:46:26+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2021-01-05T19:08:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c5fc2609f0f81698616734e22adee9b9ed67f729'/>
<id>urn:sha1:c5fc2609f0f81698616734e22adee9b9ed67f729</id>
<content type='text'>
</content>
</entry>
</feed>
