Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

Fix invalid cast in GetBuiltinType #478

Merged
merged 1 commit into from
Dec 10, 2018
Merged

Fix invalid cast in GetBuiltinType #478

merged 1 commit into from
Dec 10, 2018

Conversation

MikhailArkhipov
Copy link

@MikhailArkhipov MikhailArkhipov commented Dec 10, 2018

Fixes #470

Cached value may or may not be a class info. Previous calls to GetAnalysisValueFromObjects may have cached a different object for the type. For example, IPythonFunction would cache BuiltinFunctionInfo and not BuiltinClassInfo.

Before #439 it worked since IPythonFunction and IPythonClass were not IPythonType and in GetAnalysisValueFromObjects IPythonType was handled first so the cache would always contain item created for IPythonType as the first in the order of processing. This is no longer true.

The fix is not ideal, another approach is to create different caches for different types.

@MikhailArkhipov MikhailArkhipov merged commit 2a91f85 into microsoft:master Dec 10, 2018
AlexanderSher pushed a commit to AlexanderSher/python-language-server that referenced this pull request Feb 4, 2019
AlexanderSher added a commit that referenced this pull request Feb 4, 2019
* 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
jakebailey pushed a commit to jakebailey/python-language-server that referenced this pull request Nov 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Invalid cast from BuiltinFunctionInfo to BuiltinClassInfo in GetBuiltinType
2 participants