about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkadmin <julianknodt@gmail.com>2020-11-01 22:31:19 +0000
committerkadmin <julianknodt@gmail.com>2020-11-01 22:31:19 +0000
commitab946dd3e702d6bfd50d876976b7c62c673c204e (patch)
tree7f841f6848ac117441eca832ba31165c5b5c442f
parentb2025326088b54fb3f083bebeba14e0a15bf00d3 (diff)
downloadrust-ab946dd3e702d6bfd50d876976b7c62c673c204e.tar.gz
rust-ab946dd3e702d6bfd50d876976b7c62c673c204e.zip
Add delay_span_bug to no longer ICE
-rw-r--r--compiler/rustc_typeck/src/collect/type_of.rs8
-rw-r--r--src/test/ui/issues/issue-78622.rs7
-rw-r--r--src/test/ui/issues/issue-78622.stderr9
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`.