Previously, rustdoc would issue a delay_span_bug ICE on the following code:
```rust
pub fn a() -> impl Fn() -> u32 {
|| content::doesnt::matter()
}
```
This wasn't picked up earlier because having `type Alias = impl Trait;`
in the same module caused _all closures_ to be typechecked, even if they
wouldn't normally. Additionally, if _any_ error was emitted, no
delay_span_bug would be emitted. So as part of this commit all of the
tests were separated out into different files.
|
||
|---|---|---|
| .. | ||
| async.rs | ||
| async.stderr | ||
| closure.rs | ||
| closure.stderr | ||
| impl-keyword-closure.rs | ||
| impl-keyword-closure.stderr | ||
| impl-keyword.rs | ||
| impl-keyword.stderr | ||
| README.md | ||
| trait-alias-closure.rs | ||
| trait-alias-closure.stderr | ||
| trait-alias.rs | ||
| trait-alias.stderr | ||
Each of these needs to be in a separate file,
because the delay_span_bug ICE in rustdoc won't be triggerred
if even a single other error was emitted.
However, conceptually they are all testing basically the same thing. See https://github.com/rust-lang/rust/pull/73566#issuecomment-653689128 for more details.