Mercurial > projects > ddmd
diff dmd/IsExp.d @ 50:adf6f7f216ea
CondExp.toCBuffer
IsExp.toCBuffer
TemplateValueParameter.toCBuffer
Dsymbol.search
TemplateDeclaration.overloadInsert bug fixed
author | korDen |
---|---|
date | Sat, 21 Aug 2010 10:38:26 +0400 |
parents | 24674203f62c |
children | 2e2a5c3f943a |
line wrap: on
line diff
--- a/dmd/IsExp.d Sat Aug 21 07:53:20 2010 +0400 +++ b/dmd/IsExp.d Sat Aug 21 10:38:26 2010 +0400 @@ -28,6 +28,7 @@ import dmd.MATCH; import dmd.TypePointer; import dmd.Argument; +import dmd.Token; class IsExp : Expression { @@ -336,7 +337,33 @@ void toCBuffer(OutBuffer buf, HdrGenState* hgs) { - assert(false); + buf.writestring("is("); + targ.toCBuffer(buf, id, hgs); + if (tok2 != TOKreserved) + { + buf.printf(" %s %s", Token.toChars(tok), Token.toChars(tok2)); + } + else if (tspec) + { + if (tok == TOKcolon) + buf.writestring(" : "); + else + buf.writestring(" == "); + tspec.toCBuffer(buf, null, hgs); + } +version (DMDV2) { + if (parameters) + { + // First parameter is already output, so start with second + for (int i = 1; i < parameters.dim; i++) + { + buf.writeByte(','); + TemplateParameter tp = cast(TemplateParameter)parameters.data[i]; + tp.toCBuffer(buf, hgs); + } + } +} + buf.writeByte(')'); } }