Mercurial > projects > ddmd
view dmd/UnitTestDeclaration.d @ 72:2e2a5c3f943a
reduced warnings by adding override to the methods
think this also normalizes different line endings used all over the place
author | Trass3r |
---|---|
date | Sat, 28 Aug 2010 16:19:48 +0200 |
parents | 832f71e6f96c |
children | 5c859d5fbe27 |
line wrap: on
line source
module dmd.UnitTestDeclaration; import dmd.FuncDeclaration; import dmd.Loc; import dmd.Dsymbol; import dmd.AggregateDeclaration; import dmd.OutBuffer; import dmd.HdrGenState; import dmd.Type; import dmd.Scope; import dmd.Global; import dmd.LINK; import dmd.TypeFunction; import dmd.Module; import dmd.STC; import dmd.Lexer; import dmd.Identifier; /******************************* * Generate unique unittest function Id so we can have multiple * instances per module. */ Identifier unitTestId() { return Lexer.uniqueId("__unittest"); } class UnitTestDeclaration : FuncDeclaration { this(Loc loc, Loc endloc) { super(loc, endloc, unitTestId(), STC.STCundefined, null); } override Dsymbol syntaxCopy(Dsymbol s) { UnitTestDeclaration utd; assert(!s); utd = new UnitTestDeclaration(loc, endloc); return FuncDeclaration.syntaxCopy(utd); } override void semantic(Scope sc) { if (global.params.useUnitTests) { type = new TypeFunction(null, Type.tvoid, false, LINKd); Scope sc2 = sc.push(); sc2.linkage = LINK.LINKd; FuncDeclaration.semantic(sc2); sc2.pop(); } // We're going to need ModuleInfo even if the unit tests are not // compiled in, because other modules may import this module and refer // to this ModuleInfo. Module m = getModule(); if (!m) m = sc.module_; if (m) m.needmoduleinfo = 1; } override AggregateDeclaration isThis() { return null; } override bool isVirtual() { return false; } override bool addPreInvariant() { return false; } override bool addPostInvariant() { return false; } override void toCBuffer(OutBuffer buf, HdrGenState* hgs) { assert(false); } override UnitTestDeclaration isUnitTestDeclaration() { return this; } }