error: return types are denoted using `->` --> $DIR/avoid-ice-on-warning.rs:4:23 | LL | fn call_this(f: F) : Fn(&str) + call_that {} | ^ | help: use `->` instead | LL - fn call_this(f: F) : Fn(&str) + call_that {} LL + fn call_this(f: F) -> Fn(&str) + call_that {} | error[E0405]: cannot find trait `call_that` in this scope --> $DIR/avoid-ice-on-warning.rs:4:36 | LL | fn call_this(f: F) : Fn(&str) + call_that {} | ^^^^^^^^^ not found in this scope error[E0782]: expected a type, found a trait --> $DIR/avoid-ice-on-warning.rs:4:25 | LL | fn call_this(f: F) : Fn(&str) + call_that {} | ^^^^^^^^^^^^^^^^^^^^ | help: `Fn(&str) + call_that` is dyn-incompatible, use `impl Fn(&str) + call_that` to return an opaque type, as long as you return a single underlying type | LL | fn call_this(f: F) : impl Fn(&str) + call_that {} | ++++ error: aborting due to 3 previous errors Some errors have detailed explanations: E0405, E0782. For more information about an error, try `rustc --explain E0405`.