When method prototypes were involved (e.g. forward declarations
for mutual recursion), calls were sometimes dispatched to the
wrong method implementation. One of the reasons was that method
dispatchers were then not always attached to method ASTs in
the correct place.
When creating a method dispatcher, the location of the underlying
method was copied. Under some circumstances, the name of the
location (loc.r) was already initialized, in which case the
method dispatcher shared a name with one of the methods, leading
to a C compiler error. By setting loc.r to nil when copying
the dispatcher information from the original method, we ensure
that the dispatcher C function gets its proper name.