public static void copy(object Current, object other) // Update current object using fields of object attached // to `other', so as to yield equal objects. { EIFFEL_TYPE_INFO l_current = Current as EIFFEL_TYPE_INFO; #if ASSERTIONS ASSERTIONS.REQUIRE("other_not_void", other != null); ASSERTIONS.REQUIRE("same_type", same_type(Current, other)); #endif if (Current == null) { generate_call_on_void_target_exception(); } else { if (l_current != null) { l_current.____copy(other); } else { internal_standard_copy(Current, other); } } #if ASSERTIONS ASSERTIONS.ENSURE("is_equal", is_equal(Current, other)); #endif }