Their single purpose is improving diagnostics.
When those macros expand they always produce an error saying that unsafe impl Send for Foo {} should be written explicitly rather than derived.
So, when #61877 is implemented you'll be able to write use Send or use std::Send without an error, but that's not an intent.
The macros should be removed, and derive(Send) should result in a resolution error, and the suggestion to write unsafe impl Send for Foo {} explicitly should be put on that resolution error.
Their single purpose is improving diagnostics.
When those macros expand they always produce an error saying that
unsafe impl Send for Foo {}should be written explicitly rather than derived.So, when #61877 is implemented you'll be able to write
use Sendoruse std::Sendwithout an error, but that's not an intent.The macros should be removed, and
derive(Send)should result in a resolution error, and the suggestion to writeunsafe impl Send for Foo {}explicitly should be put on that resolution error.