mirror of
https://github.com/microsoft/pyright.git
synced 2024-10-27 11:18:42 +03:00
Added constainsWildcardImport flag as output of parser.
This commit is contained in:
parent
e8925a2c26
commit
800e060403
@ -327,6 +327,13 @@ export class SourceFile {
|
||||
this._parseTreeNeedsCleaning = true;
|
||||
this._isTypeAnalysisFinalized = false;
|
||||
this._isTypeAnalysisPassNeeded = true;
|
||||
|
||||
// If the file continas a wildcard import, we need to rebind
|
||||
// also because the dependent import may have changed.
|
||||
if (this._parseResults && this._parseResults.containsWildcardImport) {
|
||||
this._isBindingNeeded = true;
|
||||
this._moduleSymbolTable = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
setClientVersion(version: number | null, contents: string): void {
|
||||
@ -481,7 +488,8 @@ export class SourceFile {
|
||||
typeIgnoreLines: {},
|
||||
predominantEndOfLineSequence: '\n',
|
||||
predominantTabSequence: ' '
|
||||
}
|
||||
},
|
||||
containsWildcardImport: false
|
||||
};
|
||||
this._imports = undefined;
|
||||
this._builtinsImport = undefined;
|
||||
|
@ -62,6 +62,7 @@ export interface ParseResults {
|
||||
importedModules: ModuleImport[];
|
||||
futureImports: StringMap<boolean>;
|
||||
tokenizerOutput: TokenizerOutput;
|
||||
containsWildcardImport: boolean;
|
||||
}
|
||||
|
||||
export interface ParseExpressionTextResults {
|
||||
@ -92,6 +93,7 @@ export class Parser {
|
||||
private _isParsingTypeAnnotation = false;
|
||||
private _futureImportMap = new StringMap<boolean>();
|
||||
private _importedModules: ModuleImport[] = [];
|
||||
private _containsWildcardImport = false;
|
||||
|
||||
parseSourceFile(fileContents: string, parseOptions: ParseOptions,
|
||||
diagSink: DiagnosticSink, cancelToken?: CancelToken): ParseResults {
|
||||
@ -132,7 +134,8 @@ export class Parser {
|
||||
parseTree: moduleNode,
|
||||
importedModules: this._importedModules,
|
||||
futureImports: this._futureImportMap,
|
||||
tokenizerOutput: this._tokenizerOutput!
|
||||
tokenizerOutput: this._tokenizerOutput!,
|
||||
containsWildcardImport: this._containsWildcardImport
|
||||
};
|
||||
}
|
||||
|
||||
@ -979,6 +982,7 @@ export class Parser {
|
||||
if (this._consumeTokenIfOperator(OperatorType.Multiply)) {
|
||||
extendRange(importFromNode, possibleStarToken);
|
||||
importFromNode.isWildcardImport = true;
|
||||
this._containsWildcardImport = true;
|
||||
} else {
|
||||
const inParen = this._consumeTokenIfType(TokenType.OpenParenthesis);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user