diff options
| author | Matthew Maurer <mmaurer@google.com> | 2024-03-03 03:51:05 +0000 |
|---|---|---|
| committer | Matthew Maurer <mmaurer@google.com> | 2024-03-22 23:02:05 +0000 |
| commit | dec36c3d6eca67c900b7bdf03bd8d9dd68c4aa34 (patch) | |
| tree | e34d4d81ee35aa67a1efd9e93e1821f8c4a14389 /compiler/rustc_parse/src | |
| parent | 85e449a3237e82c9ade8936a82bd4fc64cfe1057 (diff) | |
| download | rust-dec36c3d6eca67c900b7bdf03bd8d9dd68c4aa34.tar.gz rust-dec36c3d6eca67c900b7bdf03bd8d9dd68c4aa34.zip | |
CFI: Support self_cell-like recursion
Current `transform_ty` attempts to avoid cycles when normalizing
`#[repr(transparent)]` types to their interior, but runs afoul of this
pattern used in `self_cell`:
```
struct X<T> {
x: u8,
p: PhantomData<T>,
}
#[repr(transparent)]
struct Y(X<Y>);
```
When attempting to normalize Y, it will still cycle indefinitely. By
using a types-visited list, this will instead get expanded exactly
one layer deep to X<Y>, and then stop, not attempting to normalize `Y`
any further.
Diffstat (limited to 'compiler/rustc_parse/src')
0 files changed, 0 insertions, 0 deletions
