From: Gavin Sinclair Date: 2002-09-27T15:20:46+09:00 Subject: Re: adding overload to ruby ----- Original Message ----- From: "MikkelFJ" > > "Justin Johnson" wrote in message > news:1033054940.64753.0@iris.uk.clara.net... > > > > What sort of ambiguities? > > How different need a type to be to be different. Is signed / unsigned > integers different? Is is const different from non-const types? > If you have char, int, long overloads, it can be a nightmare to address the > correct function - i.e. explicit typecasts to integer constants. > > Overloading virtual functions can be extremely difficult to debug if you > miss a const declaration on a parameter in the overloaded function of a > derived class. I believe C# did some work to prevent this kind of problems. > > Mikkel So you set some rules. Signed and unsigned integers are clearly not different - they are not of different classes. There's no such thing as a const type, so that's no problem either. char, int, long is not Ruby. FixNum/Bignum is about as confusing as it gets, so you set a rule that there is to be no dispatch based on that. Perhaps the finest spec for a method parameter in this case is Numeric. So it's no big deal. BTW I am not in favour of auto-dispatch. Gavin