Mercurial > projects > ddmd
comparison dmd/TypeInstance.d @ 121:347de076ad34
TemplateParameters -> Vector
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Thu, 02 Sep 2010 22:41:12 +0100 |
parents | e28b18c23469 |
children | e3afd1303184 |
comparison
equal
deleted
inserted
replaced
120:46ef67271ef3 | 121:347de076ad34 |
---|---|
196 if (td && td == tempinst.tempdecl) | 196 if (td && td == tempinst.tempdecl) |
197 goto L2; | 197 goto L2; |
198 } | 198 } |
199 goto Lnomatch; | 199 goto Lnomatch; |
200 } | 200 } |
201 TemplateParameter tpx = cast(TemplateParameter)parameters.data[i]; | 201 TemplateParameter tpx = parameters[i]; |
202 // This logic duplicates tpx->matchArg() | 202 // This logic duplicates tpx->matchArg() |
203 TemplateAliasParameter ta = tpx.isTemplateAliasParameter(); | 203 TemplateAliasParameter ta = tpx.isTemplateAliasParameter(); |
204 if (!ta) | 204 if (!ta) |
205 goto Lnomatch; | 205 goto Lnomatch; |
206 Object sa = tempinst.tempdecl; | 206 Object sa = tempinst.tempdecl; |
323 { | 323 { |
324 j = templateParameterLookup(t2, parameters); | 324 j = templateParameterLookup(t2, parameters); |
325 L1: | 325 L1: |
326 if (j == -1) | 326 if (j == -1) |
327 goto Lnomatch; | 327 goto Lnomatch; |
328 TemplateParameter tp_ = cast(TemplateParameter)parameters.data[j]; | 328 auto tp_ = parameters[j]; |
329 // BUG: use tp->matchArg() instead of the following | 329 // BUG: use tp->matchArg() instead of the following |
330 TemplateValueParameter tv = tp_.isTemplateValueParameter(); | 330 TemplateValueParameter tv = tp_.isTemplateValueParameter(); |
331 if (!tv) | 331 if (!tv) |
332 goto Lnomatch; | 332 goto Lnomatch; |
333 Expression e = cast(Expression)dedtypes[j]; | 333 Expression e = cast(Expression)dedtypes[j]; |
347 else if (s1 && t2 && t2.ty == Tident) | 347 else if (s1 && t2 && t2.ty == Tident) |
348 { | 348 { |
349 j = templateParameterLookup(t2, parameters); | 349 j = templateParameterLookup(t2, parameters); |
350 if (j == -1) | 350 if (j == -1) |
351 goto Lnomatch; | 351 goto Lnomatch; |
352 TemplateParameter tp_ = cast(TemplateParameter)parameters.data[j]; | 352 auto tp_ = parameters[j]; |
353 // BUG: use tp->matchArg() instead of the following | 353 // BUG: use tp->matchArg() instead of the following |
354 TemplateAliasParameter ta = tp_.isTemplateAliasParameter(); | 354 TemplateAliasParameter ta = tp_.isTemplateAliasParameter(); |
355 if (!ta) | 355 if (!ta) |
356 goto Lnomatch; | 356 goto Lnomatch; |
357 auto s = cast(Dsymbol)dedtypes[j]; | 357 auto s = cast(Dsymbol)dedtypes[j]; |