--- Comment #8 from Walter Bright <bugzi...@digitalmars.com> 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
> 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
> 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: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------