Workaround for DIP 1005

rikki cattermole via Digitalmars-d digitalmars-d at puremagic.com
Fri Feb 3 06:59:09 PST 2017


On 04/02/2017 3:43 AM, Dominikus Dittes Scherkl wrote:
> DIP 1005 provides new syntax to make it possible to avoid global imports.
> Till now global imports are necessary if a function uses types declared
> in some imported module within it's declaration or definition (otherwise
> a local import will do).
>
> But this can already be worked around with some nice trick:
>
> import someModule.SomeType;
>
> SomeType fun()
> {
>    ...
> }
>
> can be replaced by:
>
> fun.ST fun()
> {
>    import someModule.SomeType;
>    alias ST = SomeType;
>    ...
> }
>
> The same strategy works with types used in parameters or constraints, of
> course.
>
> Any thoughts?

Needless syntax sugar:

struct Foo { int x; }

Foo func() {
	return Foo(9);	
}

typeof(func()) func2() {
	return func();	
}

void main() {
	assert(func2.x == 9);	
}


More information about the Digitalmars-d mailing list