Advertisement
Guest User

lifetime problems

a guest
Dec 28th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. red_black_tree.rs:100:8: 100:12 error: illegal borrow: cannot root managed value long enough
  2. red_black_tree.rs:100 left.each(f);
  3. ^~~~
  4. red_black_tree.rs:96:58: 108:3 note: managed value would have to be rooted for the lifetime &self as defined on the block at 96:58...
  5. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  6. red_black_tree.rs:97 match *self {
  7. red_black_tree.rs:98 Leaf => (),
  8. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  9. red_black_tree.rs:100 left.each(f);
  10. red_black_tree.rs:101 match maybe_value {
  11. ...
  12. red_black_tree.rs:96:58: 108:3 note: ...but can only be rooted for the block at 96:58
  13. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  14. red_black_tree.rs:97 match *self {
  15. red_black_tree.rs:98 Leaf => (),
  16. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  17. red_black_tree.rs:100 left.each(f);
  18. red_black_tree.rs:101 match maybe_value {
  19. ...
  20. red_black_tree.rs:102:30: 102:33 error: illegal borrow: borrowed value does not live long enough
  21. red_black_tree.rs:102 Some(value) => f(&(&key, &value)),
  22. ^~~
  23. red_black_tree.rs:96:58: 108:3 note: borrowed pointer must be valid for the lifetime &self as defined on the block at 96:58...
  24. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  25. red_black_tree.rs:97 match *self {
  26. red_black_tree.rs:98 Leaf => (),
  27. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  28. red_black_tree.rs:100 left.each(f);
  29. red_black_tree.rs:101 match maybe_value {
  30. ...
  31. red_black_tree.rs:97:4: 107:5 note: ...but borrowed value is only valid for the match at 97:4
  32. red_black_tree.rs:97 match *self {
  33. red_black_tree.rs:98 Leaf => (),
  34. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  35. red_black_tree.rs:100 left.each(f);
  36. red_black_tree.rs:101 match maybe_value {
  37. red_black_tree.rs:102 Some(value) => f(&(&key, &value)),
  38. ...
  39. red_black_tree.rs:102:36: 102:41 error: illegal borrow: borrowed value does not live long enough
  40. red_black_tree.rs:102 Some(value) => f(&(&key, &value)),
  41. ^~~~~
  42. red_black_tree.rs:96:58: 108:3 note: borrowed pointer must be valid for the lifetime &self as defined on the block at 96:58...
  43. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  44. red_black_tree.rs:97 match *self {
  45. red_black_tree.rs:98 Leaf => (),
  46. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  47. red_black_tree.rs:100 left.each(f);
  48. red_black_tree.rs:101 match maybe_value {
  49. ...
  50. red_black_tree.rs:101:8: 104:9 note: ...but borrowed value is only valid for the match at 101:8
  51. red_black_tree.rs:101 match maybe_value {
  52. red_black_tree.rs:102 Some(value) => f(&(&key, &value)),
  53. red_black_tree.rs:103 None => false,
  54. red_black_tree.rs:104 };
  55. red_black_tree.rs:105:8: 105:13 error: illegal borrow: cannot root managed value long enough
  56. red_black_tree.rs:105 right.each(f);
  57. ^~~~~
  58. red_black_tree.rs:96:58: 108:3 note: managed value would have to be rooted for the lifetime &self as defined on the block at 96:58...
  59. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  60. red_black_tree.rs:97 match *self {
  61. red_black_tree.rs:98 Leaf => (),
  62. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  63. red_black_tree.rs:100 left.each(f);
  64. red_black_tree.rs:101 match maybe_value {
  65. ...
  66. red_black_tree.rs:96:58: 108:3 note: ...but can only be rooted for the block at 96:58
  67. red_black_tree.rs:96 pure fn each(&self, f: fn(&(&self/K, &self/V)) -> bool) {
  68. red_black_tree.rs:97 match *self {
  69. red_black_tree.rs:98 Leaf => (),
  70. red_black_tree.rs:99 Tree(_, left, key, maybe_value, right) => {
  71. red_black_tree.rs:100 left.each(f);
  72. red_black_tree.rs:101 match maybe_value {
  73. ...
  74. error: aborting due to 4 previous errors
  75. make: *** [all] Error 101
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement