fn pattern_from_arg(arg: &FnArg) -> &Pat {
    match arg {
        FnArg::Receiver(_) => unreachable!("`pattern_from_arg` should never receive receiver patterns"),
        FnArg::Typed(pat_type) => &*pat_type.pat,
    }
}
/// Extracts a type ascription pattern from a function argument
///
/// e.g.: if the argument is `name: &str`, returns the pattern that represents `name`.
///
/// Assumes that this argument isn't a receiver (e.g. `self` or `&self` or `&mut self`)
Extracts a type ascription pattern from a function argument
e.g.: if the argument is `name: &str`, returns the pattern that represents `name`.

Assumes that this argument isn't a receiver
Extracts a type ascription pattern from a function argument e . g . : if the argument is ` name : &str ` returns the pattern that represents ` name ` . Assumes that this argument isn ' t a receiver
fn pattern_from_arg(arg: &FnArg) -> &Pat {
    match arg {
        FnArg::Receiver(_) => unreachable!("`pattern_from_arg` should never receive receiver patterns"),
        FnArg::Typed(pat_type) => &*pat_type.pat,
    }
}
fn pattern_from_arg ( arg : & FnArg ) -> & Pat { match arg { FnArg :: Receiver ( _ ) => unreachable ! ( " " ) , FnArg :: Typed ( pat_type ) => & * pat_type . pat , } }
Extracts a type ascription pattern from a function argument
e.g.
Extracts a type ascription pattern from a function argument e . g .
arg
&FnArg