about summary refs log tree commit diff
path: root/src/test/codegen/src-hash-algorithm
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2022-01-28 11:25:15 +1100
committerNicholas Nethercote <n.nethercote@gmail.com>2022-02-15 16:08:52 +1100
commitd071ce1d5774a6bd93a623df1a3cabf940b12b46 (patch)
tree815f22892ff114b10fcf4fd006f807b4b436e43d /src/test/codegen/src-hash-algorithm
parent5fa961b9519d68f0378f4f4f2331e4eb940cfca1 (diff)
downloadrust-d071ce1d5774a6bd93a623df1a3cabf940b12b46.tar.gz
rust-d071ce1d5774a6bd93a623df1a3cabf940b12b46.zip
Overhaul `RegionKind` and `Region`.
Specifically, change `Region` from this:
```
pub type Region<'tcx> = &'tcx RegionKind;
```
to this:
```
pub struct Region<'tcx>(&'tcx Interned<RegionKind>);
```

This now matches `Ty` and `Predicate` more closely.

Things to note
- Regions have always been interned, but we haven't been using pointer-based
  `Eq` and `Hash`. This is now happening.
- I chose to impl `Deref` for `Region` because it makes pattern matching a lot
  nicer, and `Region` can be viewed as just a smart wrapper for `RegionKind`.
- Various methods are moved from `RegionKind` to `Region`.
- There is a lot of tedious sigil changes.
- A couple of types like `HighlightBuilder`, `RegionHighlightMode` now have a
  `'tcx` lifetime because they hold a `Ty<'tcx>`, so they can call `mk_region`.
- A couple of test outputs change slightly, I'm not sure why, but the new
  outputs are a little better.
Diffstat (limited to 'src/test/codegen/src-hash-algorithm')
0 files changed, 0 insertions, 0 deletions