@@ -95,9 +95,6 @@ The :t:`type specification` of a :t:`constant` shall have ``'static``
9595The :t: `type ` of a :t: `constant ` shall implement the :std: `core::marker::Sized `
9696:t: `trait `.
9797
98- :dp: `fls_ooOYxhVh8hZo `
99- The type of a :t: `constant ` cannot be a :t: `mutable reference type `.
100-
10198:dp: `fls_ndmfqxjpvsqy `
10299A :t: `constant initializer ` is a :t: `construct ` that provides the :t: `value ` of
103100its related :t: `constant `.
@@ -114,6 +111,23 @@ The :t:`expression` of a :t:`constant initializer` shall be a
114111The value of a :t: `constant ` is determined by evaluating its
115112:t: `constant initializer `.
116113
114+ :dp: `fls_ooOYxhVh8hZo `
115+ After a :t: `constant initializer ` is evaluated to a value of the declared type,
116+ the value of the constant, after :t: `type coercion `,
117+ cannot contain any :t: `[mutable reference]s `, except when
118+
119+ - :dp: `fls_zkNFeBLy80UA `
120+ The :t: `mutable reference ` is contained within an :t: `external static `, or
121+
122+ - :dp: `fls_VhzGfnWg7YrG `
123+ The :t: `mutable reference ` is contained within a :t: `mutable static `, or
124+
125+ - :dp: `fls_ibYKKQdB2tDn `
126+ The :t: `mutable reference ` is contained within an :t: `union `, or
127+
128+ - :dp: `fls_dQdSxf8kOgbi `
129+ The :t: `referent ` is a value of a :t: `zero-sized type `.
130+
117131.. rubric :: Dynamic Semantics
118132
119133:dp: `fls_xezt9hl069h4 `
0 commit comments