error[E0308]: mismatched types --> $DIR/issue-46302.rs:3:27 | LL | let u: &str = if true { s[..2] } else { s }; | ^^^^^^ | | | expected &str, found str | help: consider borrowing here: `&s[..2]` | = note: expected type `&str` found type `str` error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.