diff options
| author | kadmin <julianknodt@gmail.com> | 2020-11-01 22:31:19 +0000 |
|---|---|---|
| committer | kadmin <julianknodt@gmail.com> | 2020-11-01 22:31:19 +0000 |
| commit | ab946dd3e702d6bfd50d876976b7c62c673c204e (patch) | |
| tree | 7f841f6848ac117441eca832ba31165c5b5c442f | |
| parent | b2025326088b54fb3f083bebeba14e0a15bf00d3 (diff) | |
| download | rust-ab946dd3e702d6bfd50d876976b7c62c673c204e.tar.gz rust-ab946dd3e702d6bfd50d876976b7c62c673c204e.zip | |
Add delay_span_bug to no longer ICE
| -rw-r--r-- | compiler/rustc_typeck/src/collect/type_of.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-78622.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-78622.stderr | 9 |
3 files changed, 23 insertions, 1 deletions
diff --git a/compiler/rustc_typeck/src/collect/type_of.rs b/compiler/rustc_typeck/src/collect/type_of.rs index a754d4dbac7..61d1efc837b 100644 --- a/compiler/rustc_typeck/src/collect/type_of.rs +++ b/compiler/rustc_typeck/src/collect/type_of.rs @@ -79,7 +79,13 @@ pub(super) fn opt_const_param_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option< let _tables = tcx.typeck(body_owner); &*path } - _ => span_bug!(DUMMY_SP, "unexpected const parent path {:?}", parent_node), + _ => { + tcx.sess.delay_span_bug( + tcx.def_span(def_id), + &format!("unexpected const parent path {:?}", parent_node), + ); + return None; + } }; // We've encountered an `AnonConst` in some path, so we need to diff --git a/src/test/ui/issues/issue-78622.rs b/src/test/ui/issues/issue-78622.rs new file mode 100644 index 00000000000..c00fd266063 --- /dev/null +++ b/src/test/ui/issues/issue-78622.rs @@ -0,0 +1,7 @@ +#![crate_type = "lib"] + +struct S; +fn f() { + S::A::<f> {} + //~^ ERROR ambiguous associated type +} diff --git a/src/test/ui/issues/issue-78622.stderr b/src/test/ui/issues/issue-78622.stderr new file mode 100644 index 00000000000..f13073da0a3 --- /dev/null +++ b/src/test/ui/issues/issue-78622.stderr @@ -0,0 +1,9 @@ +error[E0223]: ambiguous associated type + --> $DIR/issue-78622.rs:5:5 + | +LL | S::A::<f> {} + | ^^^^^^^^^ help: use fully-qualified syntax: `<S as Trait>::A` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0223`. |
