From 5a6fb3a4a6693b84cc34cd5c44fd3319c2965bed Mon Sep 17 00:00:00 2001 From: Who? Me?! Date: Mon, 22 Oct 2018 12:37:13 -0500 Subject: [PATCH] Clarify why 'static is free --- src/traits/canonicalization.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/traits/canonicalization.md b/src/traits/canonicalization.md index 62c4d9f7..ca81d6fd 100644 --- a/src/traits/canonicalization.md +++ b/src/traits/canonicalization.md @@ -42,7 +42,11 @@ This query contains two unbound variables, but it also contains the lifetime `'static`. The trait system generally ignores all lifetimes and treats them equally, so when canonicalizing, we will *also* replace any [free lifetime](../appendix/background.html#free-vs-bound) with a -canonical variable. Therefore, we get the following result: +canonical variable (Note that `'static` is actually a _free_ lifetime +variable here. We are not considering it in the typing context of the whole +program but only in the context of this trait reference. Mathematically, we +are not quantifying over the whole program, but only this obligation). +Therefore, we get the following result: ```text ?0: Foo<'?1, ?2>