]> git.lizzy.rs Git - rust.git/commitdiff
don't derive `Copy` for `RegionElement`
authorRémy Rakic <remy.rakic+github@gmail.com>
Mon, 12 Jul 2021 19:11:02 +0000 (21:11 +0200)
committerRémy Rakic <remy.rakic+github@gmail.com>
Sun, 15 Aug 2021 07:11:03 +0000 (09:11 +0200)
compiler/rustc_mir/src/borrow_check/diagnostics/region_errors.rs
compiler/rustc_mir/src/borrow_check/region_infer/mod.rs
compiler/rustc_mir/src/borrow_check/region_infer/values.rs

index 7e39f985fb995f68dd80e242bcd60381001c0eaa..fe9df41db45e2b9a9c42e137a8cb240188e0fd9c 100644 (file)
@@ -213,7 +213,7 @@ pub(in crate::borrow_check) fn report_region_errors(&mut self, nll_errors: Regio
                     placeholder,
                     error_element,
                 } => {
-                    let error_vid = self.regioncx.region_from_element(longer_fr, error_element);
+                    let error_vid = self.regioncx.region_from_element(longer_fr, &error_element);
 
                     // Find the code to blame for the fact that `longer_fr` outlives `error_fr`.
                     let (_, span) = self.regioncx.find_outlives_blame_span(
index 17272e744beb2743f440d61ffa840fbb43d584f7..a96cdbc13f345a2891feb89bb0f55f1f9622de66 100644 (file)
@@ -1923,8 +1923,12 @@ fn check_member_constraints(
     }
 
     /// Get the region outlived by `longer_fr` and live at `element`.
-    crate fn region_from_element(&self, longer_fr: RegionVid, element: RegionElement) -> RegionVid {
-        match element {
+    crate fn region_from_element(
+        &self,
+        longer_fr: RegionVid,
+        element: &RegionElement,
+    ) -> RegionVid {
+        match *element {
             RegionElement::Location(l) => self.find_sub_region_live_at(longer_fr, l),
             RegionElement::RootUniversalRegion(r) => r,
             RegionElement::PlaceholderRegion(error_placeholder) => self
index 940caf6eae8545bd717819a642bf413557cf1fa1..f247d07e1f05e66bad3fbd20bcc1c209751583af 100644 (file)
@@ -114,7 +114,7 @@ pub struct PlaceholderIndex { DEBUG_FORMAT = "PlaceholderIndex({})" }
 
 /// An individual element in a region value -- the value of a
 /// particular region variable consists of a set of these elements.
-#[derive(Debug, Copy, Clone)]
+#[derive(Debug, Clone)]
 crate enum RegionElement {
     /// A point in the control-flow graph.
     Location(Location),