mirror of
https://github.com/microsoft/pyright.git
synced 2024-09-20 04:37:57 +03:00
Fixed a few crashing bugs where language services were calling into evaluator for unreachable code.
This commit is contained in:
parent
69980ab8dd
commit
16df910504
@ -391,6 +391,10 @@ export class CompletionProvider {
|
||||
private _getMemberAccessCompletions(leftExprNode: ExpressionNode,
|
||||
priorWord: string): CompletionList | undefined {
|
||||
|
||||
if (AnalyzerNodeInfo.isCodeUnreachable(leftExprNode)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const leftType = this._evaluator.getType(leftExprNode);
|
||||
const symbolTable = new Map<string, Symbol>();
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* position within a smart editor.
|
||||
*/
|
||||
|
||||
import { isCodeUnreachable } from '../analyzer/analyzerNodeInfo';
|
||||
import { Declaration, DeclarationType } from '../analyzer/declaration';
|
||||
import * as ParseTreeUtils from '../analyzer/parseTreeUtils';
|
||||
import { TypeEvaluator } from '../analyzer/typeEvaluator';
|
||||
@ -137,6 +138,10 @@ export class HoverProvider {
|
||||
}
|
||||
|
||||
private static _getTypeFromNode(node: NameNode, evaluator: TypeEvaluator): Type | undefined {
|
||||
if (isCodeUnreachable(node)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return evaluator.getType(node);
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
*/
|
||||
|
||||
import { ImportLookup } from '../analyzer/analyzerFileInfo';
|
||||
import { isCodeUnreachable } from '../analyzer/analyzerNodeInfo';
|
||||
import { extractParameterDocumentation } from '../analyzer/docStringUtils';
|
||||
import * as ParseTreeUtils from '../analyzer/parseTreeUtils';
|
||||
import { TypeEvaluator } from '../analyzer/typeEvaluator';
|
||||
@ -82,6 +83,10 @@ export class SignatureHelpProvider {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (isCodeUnreachable(callNode.leftExpression)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const callType = evaluator.getType(callNode.leftExpression);
|
||||
if (callType === undefined) {
|
||||
return undefined;
|
||||
|
Loading…
Reference in New Issue
Block a user