comparison dmd/TypeTypedef.d @ 137:09c858522d55

merge
author Trass3r
date Mon, 13 Sep 2010 23:29:00 +0200
parents af1bebfd96a4
children e3afd1303184
comparison
equal deleted inserted replaced
136:9d194c848e3a 137:09c858522d55
211 return MATCHnomatch; 211 return MATCHnomatch;
212 } 212 }
213 213
214 override Expression defaultInit(Loc loc) 214 override Expression defaultInit(Loc loc)
215 { 215 {
216 Expression e;
217 Type bt;
218
219 version (LOGDEFAULTINIT) { 216 version (LOGDEFAULTINIT) {
220 printf("TypeTypedef::defaultInit() '%s'\n", toChars()); 217 printf("TypeTypedef::defaultInit() '%s'\n", toChars());
221 } 218 }
222 if (sym.init) 219 if (sym.init)
223 { 220 {
224 //sym->init->toExpression()->print(); 221 //sym->init->toExpression()->print();
225 return sym.init.toExpression(); 222 return sym.init.toExpression();
226 } 223 }
227 bt = sym.basetype; 224 Type bt = sym.basetype;
228 e = bt.defaultInit(loc); 225 Expression e = bt.defaultInit(loc);
229 e.type = this; 226 e.type = this;
230 while (bt.ty == Tsarray) 227 while (bt.ty == Tsarray)
231 { 228 {
232 TypeSArray tsa = cast(TypeSArray)bt; 229 TypeSArray tsa = cast(TypeSArray)bt;
233 e.type = tsa.next; 230 e.type = tsa.next;
297 override bool hasPointers() 294 override bool hasPointers()
298 { 295 {
299 return toBasetype().hasPointers(); 296 return toBasetype().hasPointers();
300 } 297 }
301 298
299 override int hasWild()
300 {
301 return mod & MOD.MODwild || toBasetype().hasWild();
302 }
303
302 override Type toHeadMutable() 304 override Type toHeadMutable()
303 { 305 {
304 assert(false); 306 assert(false);
305 } 307 }
306 308