@olsonseank I can understand why `struct S` is an error. My question is more about why `fn f()` doesn't cause a warning, since most uses of it will. Even the following:

fn f() {}
fn g() { f(); }

produces a compiler warning saying that `T` can't be inferred, but no warning about the useless `T` parameter. It's occasionally taken me a minute to realize that the correct solution is to remove `T`, not to provide a type for it.