diff --git a/src/items/constant-items.md b/src/items/constant-items.md
index bf315932f..85d3e015d 100644
--- a/src/items/constant-items.md
+++ b/src/items/constant-items.md
@@ -89,6 +89,22 @@ m!(const _: () = (););
 // const _: () = ();
 ```
 
+## Evaluation
+
+[Free][free] constants are always [evaluated][const_eval] at compile-time to surface
+panics. This happens even within an unused function:
+
+```rust,compile_fail
+// Compile-time panic
+const PANIC: () = std::unimplemented!();
+
+fn unused_generic_function<T>() {
+    // A failing compile-time assertion
+    const _: () = assert!(usize::BITS == 0);
+}
+```
+
+[const_eval]: ../const_eval.md
 [associated constant]: ../items/associated-items.md#associated-constants
 [constant value]: ../const_eval.md#constant-expressions
 [free]: ../glossary.md#free-item