Commit beb8fcb
committed
Auto merge of #6893 - ehuss:executor-lifetime, r=alexcrichton
Add explicit lifetimes to Executor::init.
Since the unit interner was added in #6867, I am getting a strange borrow check error compiling RLS with the latest Cargo (that is, linking rls with the new cargo). Adding explicit lifetimes to the `Executor::init` function seems to fix the problem. I don't 100% understand the error, because none of the relevant function or type signatures changed in that PR. The only thing that gives me a clue is [this change](https://github.com/rust-lang/cargo/pull/6867/files#diff-0bb62cb712c0811a17d7a726e068bf65L112) to `BuildPlan::add` which does something similar, but that is not directly called by RLS.
The error looks like this:
```
error[E0623]: lifetime mismatch
--> rls/src/build/cargo_plan.rs:149:24
|
126 | unit: &Unit<'_>,
| -------- these two types are declared with different lifetimes...
127 | cx: &Context<'_, '_>,
| ---------------
...
149 | let units = cx.dep_targets(unit);
| ^^^^^^^^^^^ ...but data from `unit` flows into `cx` here
```
I generally don't like making changes if I don't understand them, but I'm a little stumped here how this is happening even though everything is defined with the same (`'a`) lifetime.
This unblocks updating RLS to the latest Cargo.1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
0 commit comments