September 24, 2011 Re: property aliases to existing functions | ||||
---|---|---|---|---|
| ||||
On Sunday, September 25, 2011 00:00:33 Andrej Mitrovic wrote:
> I'm guessing the following is an accepts-invalid bug:
>
> void test(int) {}
> void main() { test = 4; }
>
> Anyway, if/when the above stops being legal I'd be nice if I could create property functions using aliases. Something like this:
>
> struct Bar
> {
> int getFoo() { return 0; }
> void setFoo(int i) { }
>
> @property alias getFoo foo;
> @property alias setFoo foo;
> }
>
> void main()
> {
> Bar bar;
> bar.foo = 4;
> }
>
> I'm not sure if this is *actually* making "foo" a property right now or if DMD completely ignores the property keyword there, it's hard to tell since regular functions already act as properties.
>
> But do you think this code should be legal and maybe create properties like that? It sure looks handy (admittedly it's not a to-die-for feature, just a convenience when porting code).
Actually, there was code like that in core.time until it was pointed out that it didn't actually work. As I understand it (though I haven't tested it), pretty much _no_ attributes have an affect on aliases (including deprecated, which could be a problem). So, yeah. I'd like for this to work, but it doesn't.
- Jonathan M Davis
|
Copyright © 1999-2021 by the D Language Foundation