On 2/14/06, Stevan Little <[EMAIL PROTECTED]> wrote: > I think that the metaclass (stored in the pseudo-lexical $::CLASS) > should create a number of anonymous roles on the fly: > > role { > multi method a (::CLASS $self) { ... } > multi method a (::CLASS $self, Scalar $value) { ... } > } > > role { > multi method a (::CLASS $self) { ... } > multi method a (::CLASS $self, Array @value) { ... } > } > > These roles would then be added to the metaclass using the normal > rules of role composition. (NOTE: I assume that ::CLASS is unbound > until the role is composed into a class, I think A12 might have stated > this detail) > > Now obviously we have a conflict in our multi-methods. S12 only states > that multi methods will be compared by their long names (name + > signature) to resolve ambiguity, it does not state what happens when > those long names conflict. I propose that they work just as normal > method conflicts do, which is that both methods are excluded and the > consuming class is then required to implement that method.
Is it just the first multimethod a(::CLASS $self) from each role being excluded or are all the multimethod a(...)'s being excluded? Rob