Thread overview
strange compilation error
Mar 09, 2014
Jack Applegame
Mar 09, 2014
bearophile
Mar 09, 2014
Jack Applegame
Mar 09, 2014
Marc Schütz
Mar 09, 2014
bearophile
Mar 10, 2014
Kenji Hara
March 09, 2014
This fails to compile
http://dpaste.dzfl.pl/e9a90e808af4
March 09, 2014
Jack Applegame:

> This fails to compile
> http://dpaste.dzfl.pl/e9a90e808af4

There are various ways to avoid this problem, using static classes/structs is one of the simplest:

void main() {
    static class B {
        int a;
        this(int aa) { a = aa; }
    }
    auto foo = {
        return new B(1);
    };
}

Bye,
bearophile
March 09, 2014
On Sunday, 9 March 2014 at 12:21:18 UTC, bearophile wrote:
> Jack Applegame:
>
>> This fails to compile
>> http://dpaste.dzfl.pl/e9a90e808af4
>
> There are various ways to avoid this problem, using static classes/structs is one of the simplest:
>
> void main() {
>     static class B {
>         int a;
>         this(int aa) { a = aa; }
>     }
>     auto foo = {
>         return new B(1);
>     };
> }
>
> Bye,
> bearophile

thanks

March 09, 2014
On Sunday, 9 March 2014 at 12:21:18 UTC, bearophile wrote:
> Jack Applegame:
>
>> This fails to compile
>> http://dpaste.dzfl.pl/e9a90e808af4
>
> There are various ways to avoid this problem, using static classes/structs is one of the simplest:
>
> void main() {
>     static class B {
>         int a;
>         this(int aa) { a = aa; }
>     }
>     auto foo = {
>         return new B(1);
>     };
> }

The error message is confusing, though. main is not a nested function, rather it's a function _containing_ a nested class...
March 09, 2014
Marc Schütz:

> The error message is confusing, though. main is not a nested function, rather it's a function _containing_ a nested class...

If you don't like the error message then I suggest to open in Bugzilla a diagnostic bug report (if you want with "minor" importance).

Bye,
bearophile
March 10, 2014
On Sunday, 9 March 2014 at 11:21:19 UTC, Jack Applegame wrote:
> This fails to compile
> http://dpaste.dzfl.pl/e9a90e808af4

It's a compiler bug.

https://d.puremagic.com/issues/show_bug.cgi?id=12334
https://github.com/D-Programming-Language/dmd/pull/3371

Kenji Hara