Mercurial > projects > ddmd
comparison dmd/TypePointer.d @ 135:af1bebfd96a4 dmd2037
dmd 2.038
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Mon, 13 Sep 2010 22:19:42 +0100 |
parents | e28b18c23469 |
children | e3afd1303184 |
comparison
equal
deleted
inserted
replaced
134:4251f96733f4 | 135:af1bebfd96a4 |
---|---|
106 if (to.ty == TY.Tpointer) | 106 if (to.ty == TY.Tpointer) |
107 { | 107 { |
108 TypePointer tp = cast(TypePointer)to; | 108 TypePointer tp = cast(TypePointer)to; |
109 assert(tp.next); | 109 assert(tp.next); |
110 | 110 |
111 if (!(next.mod == tp.next.mod || tp.next.mod == MOD.MODconst)) | 111 if (!MODimplicitConv(next.mod, tp.next.mod)) |
112 return MATCH.MATCHnomatch; // not const-compatible | 112 return MATCH.MATCHnomatch; // not const-compatible |
113 | 113 |
114 /* Alloc conversion to void[] | 114 /* Alloc conversion to void[] |
115 */ | 115 */ |
116 if (next.ty != TY.Tvoid && tp.next.ty == TY.Tvoid) | 116 if (next.ty != TY.Tvoid && tp.next.ty == TY.Tvoid) |
143 override Expression defaultInit(Loc loc) | 143 override Expression defaultInit(Loc loc) |
144 { | 144 { |
145 version (LOGDEFAULTINIT) { | 145 version (LOGDEFAULTINIT) { |
146 printf("TypePointer::defaultInit() '%s'\n", toChars()); | 146 printf("TypePointer::defaultInit() '%s'\n", toChars()); |
147 } | 147 } |
148 Expression e = new NullExp(loc); | 148 return new NullExp(loc, this); |
149 e.type = this; | |
150 return e; | |
151 } | 149 } |
152 | 150 |
153 override bool isZeroInit(Loc loc) | 151 override bool isZeroInit(Loc loc) |
154 { | 152 { |
155 return true; | 153 return true; |