Hacker News new | ask | show | jobs
by steveklabnik 3423 days ago
It happens if b() returns an owned value that c() returns a reference to. In that case,

  a.b().c()
b here is temporary, and so is freed at the end of the line, making the return of c dangling

  let temp = a.b();
  temp.c();
Now that the return of b() is not temporary, it will last to the end of the scope and so c is fine.