On Nov 2, 2005, at 9:02 PM, Jonathan Lang wrote:
Let's say you have this:

  role A {method foo() { code1; } }
  role B {method foo() { code2; } }
  role C does A does B {
    method foo() { A::foo(); }
    method bar() { B::foo(); }
  }

Should the following be valid?

  role D does C { method foo() { B::foo(); } }

IMHO, it shouldn't, because D doesn't do B.

Not valid in what way? Should this be a fatal error?

Are you implying that B is not local to D, so it cannot use it? that somehow disambiguation must be done using one of your local subroles only?

I think this is too restrictive, D should be able to freely disambiguate or override using anything it want's to. It need not be related at all to it's subroles.

Stevan

Reply via email to