[Issue 236] New: Class literal expression always says "base classes expected"

Thomas Kuehne thomas-dloop at kuehne.cn
Tue Aug 15 02:53:03 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

d-bugmail at puremagic.com schrieb am 2006-07-02:
> http://d.puremagic.com/issues/show_bug.cgi?id=236

> I never ran into this before, and I kind of wonder why.
>
> void delegate() foo()
> {
>         return &(new class
>         {
>
>                 void dg()
>                 {
>                         writefln("delegate!");
>                 }
>         }).dg;
> }
>
> This gives the error "base classes expected" for the class literal.  I guess I
> never ran into it because all the class literals I ever wrote derived from
> other classes.  I tried this in several versions of DMD all the way back to
> 0.126, and they all give the same error.  According to the spec, base classes
> are optional for class literals.  I should be able to write "new class {}" and
> it should be fine.
>
> The semantic equivalent works just fine:
>
> void delegate() foo()
> {
>         class fofof
>         {
>                 void dg()
>                 {
>                         writefln("delegate!");
>                 }
>         }
>
>         return &(new fofof).dg;
> }

Added to DStress as
http://dstress.kuehne.cn/run/c/class_26_A.d
http://dstress.kuehne.cn/run/c/class_26_B.d

Thomas


-----BEGIN PGP SIGNATURE-----

iD8DBQFE4Z86LK5blCcjpWoRAnVaAJ91paqlf+5cmbO8IhSRRAdOHuMnEQCdE8Lp
/MUhZsGnq18Le2uppLjHkdE=
=z9aB
-----END PGP SIGNATURE-----



More information about the Digitalmars-d-bugs mailing list