rust/compiler/rustc_middle/src/query
Matthias Krüger 915576935a
Rollup merge of #138685 - nnethercote:use-Option-Ident-for-lowered-param-names, r=compiler-errors
Use `Option<Ident>` for lowered param names.

Parameter patterns are lowered to an `Ident` by `lower_fn_params_to_names`, which is used when lowering bare function types, trait methods, and foreign functions. Currently, there are two exceptional cases where the lowered param can become an empty `Ident`.

- If the incoming pattern is an empty `Ident`. This occurs if the parameter is anonymous, e.g. in a bare function type.

- If the incoming pattern is neither an ident nor an underscore. Any such parameter will have triggered a compile error (hence the `span_delayed_bug`), but lowering still occurs.

This commit replaces these empty `Ident` results with `None`, which eliminates a number of `kw::Empty` uses, and makes it impossible to fail to check for these exceptional cases.

Note: the `FIXME` comment in `is_unwrap_or_empty_symbol` is removed. It actually should have been removed in #138482, the precursor to this PR. That PR changed the lowering of wild patterns to `_` symbols instead of empty symbols, which made the mentioned underscore check load-bearing.

r? ``@compiler-errors``
2025-03-20 15:36:17 +01:00
..
arena_cached.rs Allow arena_cache queries to return Option<&'tcx T> 2025-01-23 13:25:37 +11:00
erase.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
keys.rs Only use implied bounds hack if bevy, and use deeply normalize in implied bounds hack 2025-03-04 18:18:48 +00:00
mod.rs Use Option<Ident> for lowered param names. 2025-03-19 20:54:10 +11:00
on_disk_cache.rs Auto merge of #122156 - Zoxc:side-effect-dep-node, r=oli-obk 2025-03-19 15:51:54 +00:00
plumbing.rs Auto merge of #137695 - nnethercote:always-inline-query_get_at, r=saethlin 2025-03-09 21:36:57 +00:00