Does var negate overloading?

Consider the following:

procedure GetRecordFromByteBuffer(myRecordByteBuffer: ByteBufferGeneric; var myRec: DefaultRec);
procedure GetByteBufferFromRecord(myRec: DefaultRec; var myRecordByteBuffer: ByteBufferGeneric);
procedure GetRecordFromByteBuffer(myRecordByteBuffer: ByteBufferGeneric; var myRec: VersionInfoRec);
procedure GetByteBufferFromRecord(myRec: VersionInfoRec; var myRecordByteBuffer: ByteBufferGeneric);

The first and third get flagged as duplicate methods. As if the ‘var-ness’ negates the record type for overloading purposes. Because the second and fourth are permitted overloads.

Is that what is going on here? Can this be fixed?

We use a special generic type on Java to implement var parmeters (Java doesn’t support var parameters at all so we work around it). The problem with overloading comes in because Java of how Java does generics; they can’t be overloaded. Unfortunately this can’t easily be fixed, the best workaround is to use different names.