One more documentation issue. I've took sample from http://dlang.org/template.html

interface Addable(T)
{
    final R add(this R)(T t)
    {
        return cast(R)this;  // cast is necessary, but safe
    }
}

class List(T) : Addable!T
{
    List remove(T t)
    {
        return this;
    }
}

void main()
{
    auto list = new List!int;
    list.add(1).remove(1);  // ok
}

I want to pay attention at line 9:
class List(T) : Addable!T

As ClassDeclaration rule (http://dlang.org/class.html#ClassDeclaration) says after ':' you can see list of base classes. But "BaseClassList" rule allows only Identifier separated with comma. But here we have TemplateInstance instead of Identifier. This sample code is compiled by DMD2 compiler (but interface must be replaced with class previously). So I think specification must be updated in "SuperClass" and "Interface" rules.

SuperClass:
   Identifier
   TemplateInstance

Interface:
   Identifier
   TemplateInstance

Do you want me to create a bug under issue 10233?

Reply via email to