You can always wrap the if in an inline function block

```D
    immutable string tail = function(msg, t)
    {
        if (!msg.empty)
            return ": " ~ msg;
        else if (!t.msg.empty)
            return ": " ~ t.msg;
        else
            return ".";
    }(msg, t);
```

Although I'm not sure it's called for here, just saying it's a easy way to inline initialize an immutable.