error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
  --> $DIR/issue-61452.rs:4:5
   |
LL |     x.take();
   |     ^^^^^^^^ cannot borrow as mutable
   |
help: consider changing this to be mutable
   |
LL | pub async fn f(mut x: Option<usize>) {
   |                +++

error[E0384]: cannot assign twice to immutable variable `x`
  --> $DIR/issue-61452.rs:9:5
   |
LL | pub async fn g(x: usize) {
   |                -
   |                |
   |                first assignment to `x`
   |                help: consider making this binding mutable: `mut x`
LL |     x += 1;
   |     ^^^^^^ cannot assign twice to immutable variable

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0384, E0596.
For more information about an error, try `rustc --explain E0384`.