comparison dmd/UshrAssignExp.d @ 0:10317f0c89a5

Initial commit
author korDen
date Sat, 24 Oct 2009 08:42:06 +0400
parents
children cab4c37afb89
comparison
equal deleted inserted replaced
-1:000000000000 0:10317f0c89a5
1 module dmd.UshrAssignExp;
2
3 import dmd.BinExp;
4 import dmd.Loc;
5 import dmd.Expression;
6 import dmd.Scope;
7 import dmd.InterState;
8 import dmd.Identifier;
9 import dmd.IRState;
10 import dmd.Id;
11 import dmd.TOK;
12 import dmd.Type;
13 import dmd.backend.elem;
14 import dmd.expression.Util;
15
16 class UshrAssignExp : BinExp
17 {
18 this(Loc loc, Expression e1, Expression e2)
19 {
20 super(loc, TOK.TOKushrass, UshrAssignExp.sizeof, e1, e2);
21 }
22
23 Expression semantic(Scope sc)
24 {
25 Expression e;
26
27 BinExp.semantic(sc);
28 e2 = resolveProperties(sc, e2);
29
30 e = op_overload(sc);
31 if (e)
32 return e;
33
34 e1 = e1.modifiableLvalue(sc, e1);
35 e1.checkScalar();
36 e1.checkNoBool();
37 type = e1.type;
38 typeCombine(sc);
39 e1.checkIntegral();
40 e2 = e2.checkIntegral();
41 e2 = e2.castTo(sc, Type.tshiftcnt);
42 return this;
43 }
44
45 Expression interpret(InterState* istate)
46 {
47 assert(false);
48 }
49
50 Identifier opId() /* For operator overloading */
51 {
52 return Id.ushrass;
53 }
54
55 elem* toElem(IRState* irs)
56 {
57 assert(false);
58 }
59 }