Mixin Template Function Attributes

jmh530 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jan 20 08:37:31 PST 2016


I was thinking about using mixin templates to put some 
module-level default information in a single file so that it 
doesn't clutter up other files. It works for imports, but it 
doesn't seem to propagate for function attributes.

module_default.d
-------------------
module module_default;

mixin template module_default()
{
	import std.traits : functionAttributes;
	import std.stdio : writeln;
	
	@safe:
}

app.d
-------------------
import module_default;

mixin module_default;

int foo(int x)
{
	return x;
}

void main() {
	
	writeln(functionAttributes!foo);
}

Compiled with dmd app.d module_default.d on Windows 7 64bit. The 
output is system, when I would expect it to be safe.

I'm not sure if this is how the behavior is supposed to be or if 
it is a bug.


More information about the Digitalmars-d-learn mailing list