Code:

        class MyException : Exception
        {
                this(string message, string file, size_t line, Throwable next = 
null)
                {
                        super(message, file, line, next);
                }

this(string file = __FILE__, size_t line = __LINE__)(string message, Throwable next = null)
                {
                        this(message, file, line, next);
                }
        }

        void main()
        {
                throw new MyException("Bluh!");
        }

Error message:

test.d(8): Error: template test.MyException.__ctor(string file = __FILE__,size_t line = __LINE__) conflicts with constructor test.MyException.this at test.d(3)

If I remove the normal constructor and call super instead of this from the constructor template, then I get this slightly different error message:

test.d(1): Error: constructor test.MyException.this conflicts with template test.MyException.__ctor(string file = __FILE__,uint line = __LINE__) at test.d(3)

Is this a compiler bug, or am I Doing It Wrong?

Reply via email to