digitalmars.D.bugs - [Issue 1196] New: regression: "cannot alias an expression"
- d-bugmail puremagic.com (35/35) Apr 27 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1196
- d-bugmail puremagic.com (24/24) May 08 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1196
http://d.puremagic.com/issues/show_bug.cgi?id=1196
Summary: regression: "cannot alias an expression"
Product: D
Version: 1.013
Platform: PC
OS/Version: All
Status: NEW
Severity: regression
Priority: P3
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: thomas-dloop kuehne.cn
This is an interresting case because small - and seemingly unrelated changes -
can cause the message to vanish:
compile/t/tuple_21_B.d(14): alias dstress.compile.t.tuple_21_B.removeSpace!("
Hello you !",6).removeSpace cannot alias an expression "Hello you !"
succeeds
test cases:
http://dstress.kuehne.cn/nocompile/t/template_21_A.d
http://dstress.kuehne.cn/nocompile/t/template_21_B.d
http://dstress.kuehne.cn/run/template_12.d
--
Apr 27 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1196
bugzilla digitalmars.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
Both examples fail when I try it with the same error message. The error message
is correct - an alias cannot be made of an expression (in this case, a string
literal). A working example would be:
template removeSpace(char[] s, int x = 0)
{
static if (s[0] == ' '){
const char[] removeSpace = removeSpace!(s[1..$], x+1);
}else{
const char[] removeSpace = s;
}
}
struct Tuple(A...)
{
alias A Tuple;
}
static assert("Hello you !" == removeSpace!(" Hello you !"));
--
May 08 2007








d-bugmail puremagic.com