import inside a class overrides symbols imported in module scope?

Trass3r un at known.com
Thu Dec 9 13:53:20 PST 2010


It was quite hard to track that one down.
In the following example the import statement was mixed into the class  
among other code so it wasn't as obvious as here.

import std.traits;
class Foo
{
	import std.string;
	static assert(isNumeric!int);
}


foo.d(6): Error: template instance isNumeric is not a template  
declaration, it is a function
foo.d(6): Error: static assert  (isNumeric!(int)) is not evaluatable at  
compile time

(There's an isNumeric function in std.string)


Local variables override global ones, but is this correct as well?


More information about the Digitalmars-d-learn mailing list