# HG changeset patch # User Leandro Lucarella # Date 1262801902 10800 # Node ID ae8a94d87ca977a0c77767f3c163ba7e9fc62299 # Parent 1d48eced441fe96a4fa58893fb02a443dbfed9bb Merge DMD r318: bugzilla 2029 Typesafe variadic functions don't... bugzilla 2029 Typesafe variadic functions don't work in CTFE. --- dmd/aggregate.h | 1 + dmd/struct.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff -r 1d48eced441f -r ae8a94d87ca9 dmd/aggregate.h --- a/dmd/aggregate.h Wed Jan 06 15:18:22 2010 -0300 +++ b/dmd/aggregate.h Wed Jan 06 15:18:22 2010 -0300 @@ -150,6 +150,7 @@ StructDeclaration(Loc loc, Identifier *id); Dsymbol *syntaxCopy(Dsymbol *s); void semantic(Scope *sc); + Dsymbol *search(Loc, Identifier *ident, int flags); void toCBuffer(OutBuffer *buf, HdrGenState *hgs); char *mangle(); const char *kind(); diff -r 1d48eced441f -r ae8a94d87ca9 dmd/struct.c --- a/dmd/struct.c Wed Jan 06 15:18:22 2010 -0300 +++ b/dmd/struct.c Wed Jan 06 15:18:22 2010 -0300 @@ -460,6 +460,22 @@ } } +Dsymbol *StructDeclaration::search(Loc loc, Identifier *ident, int flags) +{ + //printf("%s.StructDeclaration::search('%s')\n", toChars(), ident->toChars()); + + if (scope) + semantic(scope); + + if (!members || !symtab) + { + error("is forward referenced when looking for '%s'", ident->toChars()); + return NULL; + } + + return ScopeDsymbol::search(loc, ident, flags); +} + void StructDeclaration::toCBuffer(OutBuffer *buf, HdrGenState *hgs) { int i;