On Dec 7, 2007 3:39 PM, Jochen Theodorou <[EMAIL PROTECTED]> wrote: > see above, in Groovy there is no need to do this. The reason you want to > do this is because > [...] > > So, in Ng, e.foo(e) calls the method on E. > > if you say E#foo overwrites all older foo methods with the same number > of parameters, then your problem is solved, or not?
In Ng if the method dispatch logic finds a method with untyped parameters then that method will be immediately called. This is different to Groovy because the logic has to continue along the list of methods looking for a "better" match. I don't think either set of semantics is "wrong". Of course I prefer the Ng semantics for the following two reasons: 1/ In general, it makes method dispatch faster because the search for the appropriate method terminates early. 2/ I think of methods with untyped parameters as methods which will accept all types of parameter. I find it hard to explain to a programmer why, if he writes a method which will accept any type of parameter, that method will not always be called. John Wilson --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to jvm-languages@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---