While your crate does nothing wrong per se, the incoming breakage may be somewhat annoying, and you can get ahead of the breakage.
The PR that will break this crate: rust-lang/rust#94081
The breakage: https://crater-reports.s3.amazonaws.com/pr-94081/try%23e251c42c969d6f8dbaae00e1028489c3a29f8789/reg/noria-common-0.6.0/log.txt
The fix is to move
|
pub fn rpc<Q: Serialize, R: 'static>( |
and
|
type RpcFuture<A, R> = impl Future<Output = Result<R, failure::Error>>; |
into their own module, so that the type alias doesn't try to get inferred at the same time as the
impl Trait usage in the return type.
On a positive note: rust-lang/rust#65442 is now very much on my radar, with the PR that breaks your code this becomes actually fixable without a complex hack!
While your crate does nothing wrong per se, the incoming breakage may be somewhat annoying, and you can get ahead of the breakage.
The PR that will break this crate: rust-lang/rust#94081
The breakage: https://crater-reports.s3.amazonaws.com/pr-94081/try%23e251c42c969d6f8dbaae00e1028489c3a29f8789/reg/noria-common-0.6.0/log.txt
The fix is to move
noria/noria/src/controller.rs
Line 358 in 465184e
noria/noria/src/controller.rs
Line 179 in 465184e
impl Traitusage in the return type.On a positive note: rust-lang/rust#65442 is now very much on my radar, with the PR that breaks your code this becomes actually fixable without a complex hack!