diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2021-11-28 17:11:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-28 17:11:11 +0100 |
| commit | 67d175515ffc023343990774624139b679fe267d (patch) | |
| tree | fd793f1223c363def2f0de255bcf4724d4eb3967 /src | |
| parent | 233c50e79e6821a278ef0a1aa7f2ca55842aad84 (diff) | |
| parent | 6df2c78e1c35e5dac6589f55db1e0bea6e443700 (diff) | |
| download | rust-67d175515ffc023343990774624139b679fe267d.tar.gz rust-67d175515ffc023343990774624139b679fe267d.zip | |
Rollup merge of #91308 - BGR360:issue-88586, r=jackh726
Fix ICE when lowering `trait A where for<'a> Self: 'a` Fixes #88586. r? `@jackh726` Jack, this fix is much smaller in scope than what I think you were proposing in the issue. Let me know if you had a vision for a larger refactor here. cc `@JohnTitor`
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.rs | 11 | ||||
| -rw-r--r-- | src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.stderr | 19 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.rs b/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.rs new file mode 100644 index 00000000000..b50f56b03d9 --- /dev/null +++ b/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.rs @@ -0,0 +1,11 @@ +// Regression test for #88586: a higher-ranked outlives bound on Self in a trait +// definition caused an ICE when debug_assertions were enabled. +// +// FIXME: The error output in the absence of the ICE is unhelpful; this should be improved. + +trait A where for<'a> Self: 'a +//~^ ERROR the parameter type `Self` may not live long enough +{ +} + +fn main() {} diff --git a/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.stderr b/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.stderr new file mode 100644 index 00000000000..18618ffcc86 --- /dev/null +++ b/src/test/ui/higher-rank-trait-bounds/issue-88586-hr-self-outlives-in-trait-def.stderr @@ -0,0 +1,19 @@ +error[E0311]: the parameter type `Self` may not live long enough + --> $DIR/issue-88586-hr-self-outlives-in-trait-def.rs:6:1 + | +LL | / trait A where for<'a> Self: 'a +LL | | +LL | | { +LL | | } + | |_^ + | + = help: consider adding an explicit lifetime bound `Self: 'a`... + = note: ...so that the type `Self` will meet its required lifetime bounds... +note: ...that is required by this bound + --> $DIR/issue-88586-hr-self-outlives-in-trait-def.rs:6:29 + | +LL | trait A where for<'a> Self: 'a + | ^^ + +error: aborting due to previous error + |
