[Issue 499] New: Multiple overrides of the destructor when using	signals
    Max Samuha 
    maxter at i.com.ua
       
    Mon Nov 13 11:19:07 PST 2006
    
    
  
On Tue, 14 Nov 2006 02:05:36 +0900, Bill Baxter <wbaxter at gmail.com>
wrote:
>d-bugmail at puremagic.com wrote:
>> http://d.puremagic.com/issues/show_bug.cgi?id=499
>> 
>>            Summary: Multiple overrides of the destructor when using signals
>>            Product: D
>>            Version: 0.173
>>           Platform: PC
>>         OS/Version: Windows
>>             Status: NEW
>>           Severity: blocker
>>           Priority: P2
>>          Component: DMD
>>         AssignedTo: bugzilla at digitalmars.com
>>         ReportedBy: maxter at i.com.ua
>> 
>> 
>> The following gives 'test.d(233): function test.Test.Signal!(Args)._dtor
>> multiple overrides of same function':
>> 
>> import std.stdio, std.signals;
>> 
>> class Args
>> {
>>         int foo;
>> }
>> 
>> class Base
>> {
>>         ~this()
>>         {
>>                 writefln("Base dtor!");
>>         }
>> }
>> 
>> class Test : Base
>> {
>>         mixin Signal!(Args) A;
>>         mixin Signal!(Args) B;
>> 
>>         ~this()
>>         {
>>                 writefln("Test dtor");
>>         }
>> }
>> 
>> 
>> void main()
>> {
>>         auto test = new Test;
>> }
>> 
>> //------------------------------
>> 
>> The code compiles ok, if there is no base class or no destructor in the base
>> class.
>> 
>> 
>
>This is already fixed in the version of std.signals here:
>http://www.digitalmars.com/d/phobos/signals.d
>
>--bb
It's not. The problem is not with signals but with mixed in
destructors
template TDtor()
{
	~this()
	{
		writefln("Mixed-in dtor");
	}
}
class Base
{
	~this()
	{
		writefln("Base dtor");
	}
}
class Test : Base
{
	mixin TDtor A;
	mixin TDtor B;
	~this()
	{
		writefln("Test dtor");
	}
}
void main()
{
	auto test = new Test;
}
If i get it right, this should compile and output:
Test dtor
Mixed-in dtor
Mixed-in dtor
Base dtor
    
    
More information about the Digitalmars-d-bugs
mailing list