> The return type should still be the correct string type, because there is more than 1 return path

That only works with `if` statements, not `static if` statements. E.g.:

```D
import std.stdio;

auto get(T)(T x)
{
    static if (is(T == int))
        return "";
    else
        return null;
}

void main()
{
    writeln(typeof(get("")).stringof);
    writeln(typeof(get(1)).stringof);
}
```

Prints:

```
typeof(null)
string
```