Spawned off of https://github.com/rust-lang/rust/issues/25325 As written by @diwic originally: Here's a minimal example that shows the problem: ``` rust fn never_return<F: FnOnce() -> !>(f: F) -> ! { f(); } ``` which fails with: ``` error: expected type, found `!` fn never_return<F: FnOnce() -> !>(f: F) -> ! { ``` ...AFAICS, there's no good reason this syntax is not allowed.