From e0b577fe1d96779cac8b2bdd365f84c008232246 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 20 Apr 2021 12:26:12 +0000 Subject: [PATCH] csound: Fix cast to f64 so it builds in i586 For some reason (compiler bug?), the rust compiler fails to compare u32 and f64 types when doing a wildcard cast on i586 with the following error: error[E0282]: type annotations needed --> audio/csound/src/filter/imp.rs:611:47 | 611 | if rate != out_info.rate() || rate != csound.get_sample_rate() as _ { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type | = note: type must be known at this point Using an explicit cast solves the issue. --- audio/csound/src/filter/imp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audio/csound/src/filter/imp.rs b/audio/csound/src/filter/imp.rs index 9ab2292a..68049c83 100644 --- a/audio/csound/src/filter/imp.rs +++ b/audio/csound/src/filter/imp.rs @@ -608,7 +608,7 @@ impl BaseTransformImpl for CsoundFilter { let rate = in_info.rate(); // Check if the negotiated caps are the right ones - if rate != out_info.rate() || rate != csound.get_sample_rate() as _ { + if rate != out_info.rate() || rate != csound.get_sample_rate() as u32 { return Err(loggable_error!( CAT, "Failed to negotiate caps: invalid sample rate {}",