name resolution and static function

Derek Parnell derek at nomail.afraid.org
Sun Jul 9 20:53:56 PDT 2006


On Sun, 09 Jul 2006 21:25:27 -0500, Carlos Santander wrote:

> I'm sure this also has to do with how name resolution works, but here it is anyway:
> 
> //---------------------------------
> class A
> {
>          void foo () {}
>          //private
>          static void foo (int i) {}
> }
> 
> class B
> {
>          void foo (int x)
>          {
>                  A.foo (x);
>          }
> }
> //---------------------------------
> 
> I get:
> test.d:12: 'this' is required, but test.A is not a base class of B
> 
> And if I uncomment the private attribute in A, I get:
> test.d:12: 'this' is required, but test.A is not a base class of B
> test.d:12: class test.B member foo is not accessible
> 
> gdc rev 13 (DMD 0.162)

Seems to be a bug. If you place the 'static' one first it compiles fine.
 class A
 {
          // private
          static void foo (int i) {}
          void foo () {}
 }

-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocrity!"
10/07/2006 1:53:10 PM



More information about the Digitalmars-d-bugs mailing list