Mercurial > projects > ddmd
diff dmd/expression/Util.d @ 109:ceda59b4d255
expression.c changes, now only ddoc should be left
author | Trass3r |
---|---|
date | Tue, 31 Aug 2010 22:08:52 +0200 |
parents | 5c859d5fbe27 |
children | e28b18c23469 |
line wrap: on
line diff
--- a/dmd/expression/Util.d Tue Aug 31 21:41:01 2010 +0200 +++ b/dmd/expression/Util.d Tue Aug 31 22:08:52 2010 +0200 @@ -631,6 +631,8 @@ if (p.type != arg.type) { //printf("arg.type = %s, p.type = %s\n", arg.type.toChars(), p.type.toChars()); + if (arg.op == TOKtype) + arg.error("cannot pass type %s as function argument", arg.toChars()); arg = arg.implicitCastTo(sc, p.type); arg = arg.optimize(WANT.WANTvalue); } @@ -644,12 +646,15 @@ arg = arg.modifiableLvalue(sc, arg); } + tb = arg.type.toBasetype(); +version(SARRAYVALUE) {} else +{ // Convert static arrays to pointers - tb = arg.type.toBasetype(); if (tb.ty == TY.Tsarray) { arg = arg.checkToPointer(); } +} version (DMDV2) { if (tb.ty == TY.Tstruct && !(p.storageClass & (STC.STCref | STC.STCout))) {