unit test for issue 57673.
diff --git a/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.rs b/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.rs
new file mode 100644
index 0000000..0a4e7da
--- /dev/null
+++ b/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.rs
@@ -0,0 +1,7 @@
+//extern crate has_assoc_type;
+
+//fn ice(x: Box<dyn has_assoc_type::Foo<Assoc=()>>) {
+fn ice(x: Box<dyn Iterator<Item=()>>) {
+    *x //~ ERROR mismatched types [E0308]
+}
+fn main() {}
diff --git a/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.stderr b/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.stderr
new file mode 100644
index 0000000..bb63917
--- /dev/null
+++ b/src/test/ui/typeck/issue-57673-ice-on-deref-of-boxed-trait.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-57673-ice-on-deref-of-boxed-trait.rs:5:5
+   |
+LL | fn ice(x: Box<dyn Iterator<Item=()>>) {
+   |                                       - possibly return type missing here?
+LL |     *x //~ ERROR mismatched types [E0308]
+   |     ^^ expected (), found trait std::iter::Iterator
+   |
+   = note: expected type `()`
+              found type `(dyn std::iter::Iterator<Item=()> + 'static)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.