macro_rules! get_provider {
    ([][$tcx:expr, $name:ident, $key:expr]) => { ... };
    ([(separate_provide_extern) $($rest:tt)*][$tcx:expr, $name:ident, $key:expr]) => { ... };
    ([$other:tt $($modifiers:tt)*][$($args:tt)*]) => { ... };
}