Mercurial > projects > dang
diff sema/TypeCheck.d @ 183:8ea749b7da91
Fixed a few errors so that two more tests passes. Also, now you only need a type in a function param.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Fri, 25 Jul 2008 10:59:16 +0200 |
parents | 59cd211a1bd3 |
children | 86a2ede00e9a |
line wrap: on
line diff
--- a/sema/TypeCheck.d Fri Jul 25 01:40:08 2008 +0200 +++ b/sema/TypeCheck.d Fri Jul 25 10:59:16 2008 +0200 @@ -82,6 +82,24 @@ } } } + if (exp.op >= Operator.LeftShift && + exp.op <= Operator.UnsignedRightShift) + {} // FIXME: When we have const-system we need to check for + // right site being larger then the bitsize of the + // left + } + + override void visitDerefExp(DerefExp exp) + { + if (!exp.exp.type.isPointer) + { + messages.report(CanOnlyDerefPointers, + [exp.exp.sourceRange][], + [exp.loc]) + .arg(exp.exp.type.toString); + + exp._type = DType.Int; + } } override void visitCallExp(CallExp exp) @@ -333,6 +351,11 @@ castExp.env = exp.exp.env; exp.exp = castExp; } + + if (expType.isStaticArray) + messages.report(CannotReassignSArray, + [exp.identifier.sourceRange, exp.exp.sourceRange][], + [exp.loc]); } override void visitReturnStmt(ReturnStmt stmt)