comparison dmd/TypeTypeof.d @ 96:acd69f84627e

further work
author Trass3r
date Tue, 31 Aug 2010 02:12:15 +0200
parents 2e2a5c3f943a
children e28b18c23469
comparison
equal deleted inserted replaced
95:ae5b11064a9a 96:acd69f84627e
1 module dmd.TypeTypeof; 1 module dmd.TypeTypeof;
2 2
3 import dmd.TypeFunction;
3 import dmd.TypeQualified; 4 import dmd.TypeQualified;
4 import dmd.Expression; 5 import dmd.Expression;
5 import dmd.Identifier; 6 import dmd.Identifier;
6 import dmd.Scope; 7 import dmd.Scope;
7 import dmd.Loc; 8 import dmd.Loc;
121 else 122 else
122 }+/ 123 }+/
123 { 124 {
124 sc.intypeof++; 125 sc.intypeof++;
125 exp = exp.semantic(sc); 126 exp = exp.semantic(sc);
127 if (exp.type && exp.type.ty == Tfunction &&
128 (cast(TypeFunction)exp.type).isproperty)
129 exp = resolveProperties(sc, exp);
126 sc.intypeof--; 130 sc.intypeof--;
127 if (exp.op == TOK.TOKtype) 131 if (exp.op == TOK.TOKtype)
128 { 132 {
129 error(loc, "argument %s to typeof is not an expression", exp.toChars()); 133 error(loc, "argument %s to typeof is not an expression", exp.toChars());
130 } 134 }