It's more than invocation, you're changing the type of something, which is a "split the ecosystem" type change as far as I'm aware.
mod std_env {
use std::ffi::OsStr;
pub unsafe fn set_var<K: AsRef<OsStr>, V: AsRef<OsStr>>(key: K, value: V) {}
}
fn main() {
let f: /* unsafe */ fn(String, String) = std_env::set_var;
}
--> src/main.rs:7:46
|
7 | let f: /* unsafe */ fn(String, String) = std_env::set_var;
| ------------------ ^^^^^^^^^^^^^^^^ expected normal fn, found unsafe fn
| |
| expected due to this
|
= note: expected fn pointer `fn(String, String)`
found fn item `unsafe fn(_, _) {std_env::set_var::<_, _>}`