T: 'static does not mean the references in T must exist for the lifetime of the application.
Ie. the lifetime constraint on T isn’t the same 'static from &'static where the reference must life for the entire lifetime of the application.
Types are static. T: 'static applies to instances at runtime.
These instances do not have and are not related to the 'static lifetime which is “the entire length of the application”.
I accept:
> Type: lifetime means that the type is constrained by the lifetime.
I don't accept the explanation:
> Because 'static means "the lifetime of the whole process". That means that the type is not constrained.
A does not follow from B.
If you want something to mean "A type cannot have references in it" then invent a 'noref lifetime.
'static in this context would mean that all members of T must be 'static, which means that all instances of T must be 'static.
It does not mean that.
I don’t understand why they have the same name; they are not the same thing; it is an example of failure to have orthogonality in the language design in my opinion.