Why is my code does not compile? (dmd 2.021 linux)

Bill Baxter wbaxter at gmail.com
Fri Dec 12 12:55:25 PST 2008


On Sat, Dec 13, 2008 at 5:45 AM, Weed <resume755 at mail.ru> wrote:
>
> void main()
> {
>    int i;
>
>    ref int func()
>    {
>      return i;
>    }
>
>    func() = 4;
> }
>
> lval.d(5): found 'ref' instead of statement
> lval.d(10): no identifier for declarator func
> lval.d(11): unrecognized declaration
>
>
> but code like this compiles:
>
> ref int func()
> {
>  int* i = new int;
>  return *i;
> }
>
> void main()
> {
>    func() = 4;
> }
>

Ref return values are a very new feature in D2.  I suspect its just a
bug that they don't work on inner functions yet.

--bb


More information about the Digitalmars-d-learn mailing list