--- Comment #8 from Walter Bright <> 2012-04-20 
18:00:42 PDT ---
(In reply to comment #7)
> Oooohkay, so now we get to the bottom of it.
> Right, well I didn't realise that restriction. I just assumed any statically
> addressable variable was alias-able.

Any *symbol* is aliasable. It isn't about addresses.

> So this is a feature request then, not a bug.
> There's still technically no reason it shouldn't work, it's just not quite how
> alias is written?
> How much trouble would it be to extend 'alias' to include an offset value?

This is a significant redesign of what alias is.

> This restriction makes it very difficult to drill down into structures via
> recursive enumeration. The workaround I've had to use is to use strings 
> instead
> of aliases that can mixin an absolute reference, but it's really untidy, and
> again, messes with the editor a lot (syntax hilighting, auto-complete, etc).
> It also requires mixin(a) everywhere, and there are lots of cases where 
> mixin()
> is invalid in the middle of an expression. This requires a further workaround
> to build the whole expression into a string and mix the whole thing in.
> I wonder if you could use lowering here to produce the same result via lowered
> mixin? Although it sounds much cleaner to simply add an offset to aliases.

It isn't simple, because having an offset makes it an expression, not a symbol.
It's a substantial redesign.

> Another alternative could be to just invent the appropriate symbol when a
> reference like this appears. Symbol names follow the d scoping patterns right?
> In this case, the symbol would just be my.module.thing.x (or with whatever
> mangling happens to appear in D symbols).

Can't you just pass a pointer around?

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to