io::Error can't implement Clone right now because it uses a trait object internally for custom errors. With #24133 adding the Sync bound, it becomes possible to put io::Error in Arc. But it would still be nice to be able to Clone it again, which could be accomplished by changing the private Box<Custom> field to Arc<Custom> instead.
io::Errorcan't implementCloneright now because it uses a trait object internally for custom errors. With #24133 adding theSyncbound, it becomes possible to putio::ErrorinArc. But it would still be nice to be able toCloneit again, which could be accomplished by changing the privateBox<Custom>field toArc<Custom>instead.