about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCameron Steffen <cam.steffen94@gmail.com>2021-02-04 15:44:24 -0600
committerCameron Steffen <cam.steffen94@gmail.com>2021-02-05 09:34:40 -0600
commitc89b9d97e2474120324620d4147db5ec0973071e (patch)
tree9d103072cadbca35135dd86a5914e5115cc89f9b
parentf9435f4c92651d67d5dbaba13c5606c4c4fc1327 (diff)
downloadrust-c89b9d97e2474120324620d4147db5ec0973071e.tar.gz
rust-c89b9d97e2474120324620d4147db5ec0973071e.zip
Small refactor with Iterator::reduce
-rw-r--r--compiler/rustc_resolve/src/diagnostics.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs
index 9d55bafd286..3b02f74f2ca 100644
--- a/compiler/rustc_resolve/src/diagnostics.rs
+++ b/compiler/rustc_resolve/src/diagnostics.rs
@@ -1111,10 +1111,9 @@ impl<'a> Resolver<'a> {
             _,
         ) = binding.kind
         {
-            let def_id = (&*self).parent(ctor_def_id).expect("no parent for a constructor");
+            let def_id = self.parent(ctor_def_id).expect("no parent for a constructor");
             let fields = self.field_names.get(&def_id)?;
-            let first_field = fields.first()?; // Handle `struct Foo()`
-            return Some(fields.iter().fold(first_field.span, |acc, field| acc.to(field.span)));
+            return fields.iter().map(|name| name.span).reduce(Span::to); // None for `struct Foo()`
         }
         None
     }