T shadow(T = int)(T a) {
        alias T = string;
        T b = "hi";
        T c = 1; // Error

        writeln(typeof(a).stringof); // int
        writeln(typeof(b).stringof); // string

        return a;
}


Are there uses for this shadowing of type names? It seems a little dangerous, for example ulong T could be shadowed by uint T. Is there a reason to allow it?

Reply via email to