consider this: module report;
// output an error message on stderr void error(A...)(string fmt, A args) { import colorize : fg, color, cwriteln, cwritefln, cwrite; stderr.cwrite("error: ".color(fg.yellow)); cwritefln(fmt.color(fg.yellow), args); } void warning(A...)(string fmt, A args) { import colorize : fg, color, cwriteln, cwritefln, cwrite; cwrite("warning: ".color(fg.blue)); cwritefln(fmt.color(fg.blue), args); } then class C { void error(A...)(string fmt, A args) { import report : error; reportedAnyError = true; error(fmt, args); } alias warning = report.warning; } I got this: Error: undefined identifier report.warning but this works: void warning(A...)(string fmt, A args) { import report : warning; warning(fmt, args); } why alias cannot find my symbol there?