Mercurial > projects > ddmd
changeset 44:ea4769860460
TemplateValueParameter.defaultArg
author | korDen |
---|---|
date | Sat, 21 Aug 2010 07:21:54 +0400 |
parents | a509c8688fbd |
children | ccbc1e0bb3f0 |
files | dmd/TemplateValueParameter.d |
diffstat | 1 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/dmd/TemplateValueParameter.d Sat Aug 21 07:20:15 2010 +0400 +++ b/dmd/TemplateValueParameter.d Sat Aug 21 07:21:54 2010 +0400 @@ -14,6 +14,7 @@ import dmd.VarDeclaration; import dmd.Initializer; import dmd.ExpInitializer; +import dmd.DefaultInitExp; import dmd.STC; import dmd.Util; import dmd.TY; @@ -120,7 +121,20 @@ Object defaultArg(Loc loc, Scope sc) { - assert(false); + Expression e = defaultValue; + if (e) + { + e = e.syntaxCopy(); + e = e.semantic(sc); +version (DMDV2) { + if (e.op == TOKdefault) + { + DefaultInitExp de = cast(DefaultInitExp)e; + e = de.resolve(loc, sc); + } +} + } + return e; } bool overloadMatch(TemplateParameter tp)