error[E0308]: mismatched types --> $DIR/chain-method-call-mutation-in-place.rs:3:5 | LL | fn foo(mut s: String) -> String { | ------ expected `String` because of return type LL | s.push_str("asdf") | ^^^^^^^^^^^^^^^^^^ expected struct `String`, found `()` | note: method `push_str` modifies its receiver in-place --> $DIR/chain-method-call-mutation-in-place.rs:3:7 | LL | s.push_str("asdf") | - ^^^^^^^^ this call modifies `s` in-place | | | you probably want to use this value after calling the method... = note: ...instead of the `()` output of method `push_str` error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.