Revisions for ⁨Cacher errors⁩

View the changes made to this paste.

unlisted ⁨1⁩ ⁨file⁩ 2019-07-30 18:01:34 UTC

error.txt

@@ -0,0 +1,70 @@

+error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
+  --> src/main.rs:40:9
+   |
+40 |         num
+   |         ^^^
+   |
+note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the body at 37:44...
+  --> src/main.rs:37:44
+   |
+37 |       let mut expensive_result = Cacher::new(|num| {
+   |  ____________________________________________^
+38 | |         println!("calculating...");
+39 | |         thread::sleep(Duration::from_secs(2));
+40 | |         num
+41 | |     });
+   | |_____^
+   = note: ...so that the expression is assignable:
+           expected &u32
+              found &u32
+note: but, the lifetime must be valid for the call at 37:32...
+  --> src/main.rs:37:32
+   |
+37 |       let mut expensive_result = Cacher::new(|num| {
+   |  ________________________________^
+38 | |         println!("calculating...");
+39 | |         thread::sleep(Duration::from_secs(2));
+40 | |         num
+41 | |     });
+   | |______^
+note: ...so type `Cacher<[closure@src/main.rs:37:44: 41:6], u32, &u32>` of expression is valid during the expression
+  --> src/main.rs:37:32
+   |
+37 |       let mut expensive_result = Cacher::new(|num| {
+   |  ________________________________^
+38 | |         println!("calculating...");
+39 | |         thread::sleep(Duration::from_secs(2));
+40 | |         num
+41 | |     });
+   | |______^
+
+error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
+  --> src/main.rs:80:37
+   |
+80 |         let mut c = Cacher::new(|a| a);
+   |                                     ^
+   |
+note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the body at 80:33...
+  --> src/main.rs:80:33
+   |
+80 |         let mut c = Cacher::new(|a| a);
+   |                                 ^^^^^
+   = note: ...so that the expression is assignable:
+           expected &i32
+              found &i32
+note: but, the lifetime must be valid for the call at 80:21...
+  --> src/main.rs:80:21
+   |
+80 |         let mut c = Cacher::new(|a| a);
+   |                     ^^^^^^^^^^^^^^^^^^
+note: ...so type `Cacher<[closure@src/main.rs:80:33: 80:38], i32, &i32>` of expression is valid during the expression
+  --> src/main.rs:80:21
+   |
+80 |         let mut c = Cacher::new(|a| a);
+   |                     ^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+error: Could not compile `exercise-exercise`.
+
+To learn more, run the command again with --verbose.