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
   |
LL |   let u: &str = if true { &s[..2] } else { s };
   |                           +

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.