I have done what you ask [here](https://github.com/huitseeker/scala-ide/commit/1313963cea039c33c938ae83c98634ecd53a5103). I believe it's the least horrible way of doing things *correctly* (without modifying the compiler). I apologize for how loathsome it is.

The 1withTempUnits1 approach is IIUC not applicable because the asynchronous `postWorkItem` queue usage in `askLoadedTyped` requires me to follow suit in order to to implement correct precedence. And neither does that queue accept an arbitrary closure I could shoehorn a Loaner pattern into, nor should it.

The correct fix is, I believe, [here](https://github.com/scala/scala/pull/3158).