Invalid method called - reduced test case
    Tom S 
    h3r3tic at remove.mat.uni.torun.pl
       
    Mon Mar  6 11:44:05 PST 2006
    
    
  
Thomas Kuehne wrote:
> Your test case seems to be broken:
> 
> === a.d ===
> private import b;
> 
> class Foo : Bar {
> 	void foo() {
> 		assert(false);	// this should never be called !
> 	}
> }
> 
> === b.d ===
> class Bar {
> 	private import a;
> 
> 	void bar() {
> 		printf("Bar.bar()\n");
> 	}
> }
> 
> === main.d ===
> private import a;
> 
> void main() {
> 	(new Foo()).bar();
> }
> 
> 
> You call Foo.bar in main - that's exactly the function you didn't expect
> to execute.
Wrong.
I tell it to call Foo.bar but Foo.foo gets called (the function that 
contains the assert) :)
The order in which these modules are passed to the compiler is important.
-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O 
!M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y
------END GEEK CODE BLOCK------
Tomasz Stachowiak  /+ a.k.a. h3r3tic +/
    
    
More information about the Digitalmars-d-bugs
mailing list