summaryrefslogtreecommitdiff
path: root/compiler/rustc_expand
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2024-05-27 09:40:14 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2024-05-28 08:14:20 +1000
commit3607cee3e7009c91dfdf3d4f8669ac8156a36ac0 (patch)
tree985fb7150e1d33dfad3d015dfcb03dd29abaea9f /compiler/rustc_expand
parentd6d2ff055e6c2865008fc94f658929964e04b566 (diff)
Use let chains in `pretty_printing_compatibility_hack`.
To reduce indentation and improve readability.
Diffstat (limited to 'compiler/rustc_expand')
-rw-r--r--compiler/rustc_expand/src/base.rs73
1 files changed, 32 insertions, 41 deletions
diff --git a/compiler/rustc_expand/src/base.rs b/compiler/rustc_expand/src/base.rs
index 91af8758e51..470e8bf47f5 100644
--- a/compiler/rustc_expand/src/base.rs
+++ b/compiler/rustc_expand/src/base.rs
@@ -1338,47 +1338,38 @@ pub fn parse_macro_name_and_helper_attrs(
/// FIXME(#73933): Remove this eventually.
fn pretty_printing_compatibility_hack(item: &Item, sess: &Session) -> bool {
let name = item.ident.name;
- if name == sym::ProceduralMasqueradeDummyType {
- if let ast::ItemKind::Enum(enum_def, _) = &item.kind {
- if let [variant] = &*enum_def.variants {
- if variant.ident.name == sym::Input {
- let filename = sess.source_map().span_to_filename(item.ident.span);
- if let FileName::Real(real) = filename {
- if let Some(c) = real
- .local_path()
- .unwrap_or(Path::new(""))
- .components()
- .flat_map(|c| c.as_os_str().to_str())
- .find(|c| c.starts_with("rental") || c.starts_with("allsorts-rental"))
- {
- let crate_matches = if c.starts_with("allsorts-rental") {
- true
- } else {
- let mut version = c.trim_start_matches("rental-").split('.');
- version.next() == Some("0")
- && version.next() == Some("5")
- && version
- .next()
- .and_then(|c| c.parse::<u32>().ok())
- .is_some_and(|v| v < 6)
- };
-
- if crate_matches {
- sess.psess.buffer_lint(
- PROC_MACRO_BACK_COMPAT,
- item.ident.span,
- ast::CRATE_NODE_ID,
- BuiltinLintDiag::ProcMacroBackCompat {
- crate_name: "rental".to_string(),
- fixed_version: "0.5.6".to_string(),
- },
- );
- return true;
- }
- }
- }
- }
- }
+ if name == sym::ProceduralMasqueradeDummyType
+ && let ast::ItemKind::Enum(enum_def, _) = &item.kind
+ && let [variant] = &*enum_def.variants
+ && variant.ident.name == sym::Input
+ && let FileName::Real(real) = sess.source_map().span_to_filename(item.ident.span)
+ && let Some(c) = real
+ .local_path()
+ .unwrap_or(Path::new(""))
+ .components()
+ .flat_map(|c| c.as_os_str().to_str())
+ .find(|c| c.starts_with("rental") || c.starts_with("allsorts-rental"))
+ {
+ let crate_matches = if c.starts_with("allsorts-rental") {
+ true
+ } else {
+ let mut version = c.trim_start_matches("rental-").split('.');
+ version.next() == Some("0")
+ && version.next() == Some("5")
+ && version.next().and_then(|c| c.parse::<u32>().ok()).is_some_and(|v| v < 6)
+ };
+
+ if crate_matches {
+ sess.psess.buffer_lint(
+ PROC_MACRO_BACK_COMPAT,
+ item.ident.span,
+ ast::CRATE_NODE_ID,
+ BuiltinLintDiag::ProcMacroBackCompat {
+ crate_name: "rental".to_string(),
+ fixed_version: "0.5.6".to_string(),
+ },
+ );
+ return true;
}
}
false