Thread overview
Bug: Crash: nested interfaces
Jul 13, 2013
JS
Jul 13, 2013
Damian
Jul 13, 2013
Timon Gehr
July 13, 2013
module main;
import std.stdio, std.cstream;

interface A : A.B
{
	interface B { }
}

int main(string[] argv)
{
    return 0;
}


One can argue about the validity of the code, I tried it to created logical heirarchy of interfaces.

e.g., instead of interface Name : NameExtension; interface NameExtension; I wanted Name.Extension for NameExtension. This would make it easier logically nest interfaces(it would be better to not use "." though).

In any case, regardless, it causes dmd 2.062 to crash.
July 13, 2013
On Saturday, 13 July 2013 at 15:33:31 UTC, JS wrote:
> module main;
> import std.stdio, std.cstream;
>
> interface A : A.B
> {
> 	interface B { }
> }
>
> int main(string[] argv)
> {
>     return 0;
> }
>
>
> One can argue about the validity of the code, I tried it to created logical heirarchy of interfaces.
>
> e.g., instead of interface Name : NameExtension; interface NameExtension; I wanted Name.Extension for NameExtension. This would make it easier logically nest interfaces(it would be better to not use "." though).
>
> In any case, regardless, it causes dmd 2.062 to crash.

In Git head it no longer crashes instead a compilation error,
Error: no property 'B' for type 'main.A'
July 13, 2013
On 07/13/2013 05:52 PM, Damian wrote:
> ...
>
> In Git head it no longer crashes instead a compilation error,
> Error: no property 'B' for type 'main.A'

I have reported this issue yesterday.

http://d.puremagic.com/issues/show_bug.cgi?id=10616