>> Why? > > Because maybe string is already (immutable)char[]? Immutable var itself is runtime constant (as mentioned here - docs are outdated), enum var is manifest constant (can be copypasted at compile time). Now right way is 'enum string' ... or 'str.to!string()' that can be evaluated at compile time. P.S.: Found this in previous similar topic.