* Fix #470 (#478)
* Fix various common exceptions, log on a failed directory load (#498)
* rethrow exception after telemetry instead of disposing
* log an error instead of crashing when hitting some exceptions loading files, fix nullref when shutting down without an idle tracker
* fix short circuiting of question mark checks to prevent null from being returned
* print name of exception instead of relying on ToString
* don't use MaybeEnumerate
* upgrade message to Show
* Mitigate some of #495 via MRO member selection and analysis set optimization (#517)
This isn't a complete fix, but does seem to improve #495 in some cases. Adds back the early MRO return removed in #277, so now large class hierarchies won't over-propagate types (where some of the trouble with fastai happens do to the Transform class). I also optimized AnalysisHashSet a little to do length checks when possible.
There are still times when things get caught up comparing unions for a while, but it seems to be nondeterministic.
* Two path resolution bug fixes
- Fix #509: PLS doesn't flag error in a relative import if it is found in another root directory (#519)
- Fix #510: PLS doesn't resolve relative paths correctly
* Catch exceptions when importing from search paths (#525)
* catch exceptions when importing from search paths
* retry instead of not found
Fixes #522.
Did this quick this morning, figured I'd PR instead of letting it sit around.
Alexander Sher (@AlexanderSher) Curious how you'd test this. Tried my hand for a bit but couldn't easily see a way to trigger this. I wanted to spawn a server, add a file in the test-specific root, then delete it, and then call ImportModuleAsync to see that I get ModuleNotFound, but I don't think I had the search paths setup correctly. Feel free to absorb this into a different PR if it's easier.