pyright
Version:
Type checker for the Python language
1 lines • 3.13 MB
JavaScript
"use strict";exports.ids=[223],exports.modules={7636(e,t,a){var n,r=this&&this.__createBinding||(Object.create?function(e,t,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(t,a);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,n,r)}:function(e,t,a,n){void 0===n&&(n=a),e[n]=t[a]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(n=function(e){return(n=Object.getOwnPropertyNames||function(e){var t=[];for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[t.length]=a);return t})(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a=n(e),s=0;s<a.length;s++)"default"!==a[s]&&r(t,e,a[s]);return i(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.nullCallback=void 0,t.analyzeProgram=function(e,a,n,r,i,s){let d=!1;r=r??t.nullCallback;try{(0,o.throwIfCancellationRequested)(s);let t=new p.Duration;d=e.analyze(a,s);let i=e.getFilesToAnalyzeCount(),l=e.getDiagnostics(n,void 0!==a),c=l.length,u=t.getDurationInSeconds();(c>0||!d)&&r({diagnostics:l,filesInProgram:e.getFileCount(),requiringAnalysisCount:i,checkingOnlyOpenFiles:e.isCheckingOnlyOpenFiles(),fatalErrorOccurred:!1,configParseErrorOccurred:!1,elapsedTime:u,reason:"analysis"})}catch(t){if(o.OperationCanceledException.is(t))return!1;let e=l.getErrorString(t);i.error("Error performing analysis: "+e),r({diagnostics:[],filesInProgram:0,requiringAnalysisCount:{files:0,cells:0},checkingOnlyOpenFiles:!0,fatalErrorOccurred:!0,configParseErrorOccurred:!1,elapsedTime:0,error:l.getSerializableError(t),reason:"analysis"})}return d};let o=a(8415),l=s(a(7320)),p=a(1417);t.nullCallback=()=>{}},7150(e,t,a){t.isAnnotationEvaluationPostponed=function(e){return!!(e.isStubFile||e.futureImports.has("annotations")||n.PythonVersion.isGreaterOrEqualTo(e.executionEnvironment.pythonVersion,n.pythonVersion3_14))};let n=a(7885)},9060(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.cleanNodeAnalysisInfo=function(e){let t=function(e){return e.a}(e);t?.scope&&(t.scope=void 0),t?.declaration&&(t.declaration=void 0),t?.flowNode&&(t.flowNode=void 0),t?.afterFlowNode&&(t.afterFlowNode=void 0),t?.fileInfo&&(t.fileInfo=void 0),t?.codeFlowExpressions&&(t.codeFlowExpressions=void 0),t?.codeFlowComplexity&&(t.codeFlowComplexity=void 0),t?.staticConditionValue!==void 0&&(t.staticConditionValue=void 0),t?.dunderAllInfo&&(t.dunderAllInfo=void 0)},t.getImportInfo=function(e){let t=function(e){return e.a}(e);return t?.importInfo},t.setImportInfo=function(e,t){i(e).importInfo=t},t.getScope=function(e){let t=function(e){return e.a}(e);return t?.scope},t.setScope=function(e,t){i(e).scope=t},t.getDeclaration=function(e){let t=function(e){return e.a}(e);return t?.declaration},t.setDeclaration=function(e,t){i(e).declaration=t},t.getFlowNode=r,t.setFlowNode=function(e,t){i(e).flowNode=t},t.getAfterFlowNode=function(e){let t=function(e){return e.a}(e);return t?.afterFlowNode},t.setAfterFlowNode=function(e,t){i(e).afterFlowNode=t},t.getFileInfo=function(e){for(;36!==e.nodeType;)e=e.parent;return function(e){return e.a}(e).fileInfo},t.setFileInfo=function(e,t){i(e).fileInfo=t},t.getCodeFlowExpressions=function(e){let t=function(e){return e.a}(e);return t?.codeFlowExpressions},t.setCodeFlowExpressions=function(e,t){i(e).codeFlowExpressions=t},t.getCodeFlowComplexity=function(e){let t=function(e){return e.a}(e);return t?.codeFlowComplexity??0},t.setCodeFlowComplexity=function(e,t){i(e).codeFlowComplexity=t},t.getStaticConditionValue=function(e){let t=function(e){return e.a}(e);return t?.staticConditionValue},t.setStaticConditionValue=function(e,t){i(e).staticConditionValue=t},t.getDunderAllInfo=function(e){let t=function(e){return e.a}(e);return t?.dunderAllInfo},t.setDunderAllInfo=function(e,t){i(e).dunderAllInfo=t},t.isCodeUnreachable=function(e){let t=e;for(;t;){let e=r(t);if(e)return(e.flags&(n.FlowFlags.UnreachableStaticCondition|n.FlowFlags.UnreachableStructural))!=0;t=t.parent}return!1};let n=a(5662);function r(e){let t=e.a;return t?.flowNode}function i(e){let t=e.a;return t||(e.a=t={}),t}},614(e,t,a){var n,r;t.BackgroundAnalysisProgram=t.InvalidatedReason=void 0,a(4471);let i=a(7636),s=a(5668),o=a(149);(r=n||(t.InvalidatedReason=n={}))[r.Reanalyzed=0]="Reanalyzed",r[r.SourceWatcherChanged=1]="SourceWatcherChanged",r[r.LibraryWatcherChanged=2]="LibraryWatcherChanged",r[r.LibraryWatcherContentOnlyChanged=3]="LibraryWatcherContentOnlyChanged",t.BackgroundAnalysisProgram=class{constructor(e,t,a,n,r,i,o,l){this.serviceId=e,this._serviceProvider=t,this._configOptions=a,this._importResolver=n,this._backgroundAnalysis=r,this._maxAnalysisTime=i,this._disableChecker=o,this._disposed=!1,this._program=l??new s.Program(this.importResolver,this.configOptions,this._serviceProvider,void 0,this._disableChecker,e),this._backgroundAnalysis?.setProgramView(this._program)}get serviceProvider(){return this._serviceProvider}get configOptions(){return this._configOptions}get importResolver(){return this._importResolver}get program(){return this._program}get host(){return this._importResolver.host}get backgroundAnalysis(){return this._backgroundAnalysis}hasSourceFile(e){return!!this._program.getSourceFile(e)}setConfigOptions(e){this._configOptions=e,this._backgroundAnalysis?.setConfigOptions(e),this._program.setConfigOptions(e)}setImportResolver(e){this._importResolver=e,this._backgroundAnalysis?.setImportResolver(e),this._program.setImportResolver(e),this.configOptions.getExecutionEnvironments().forEach(e=>this._ensurePartialStubPackages(e))}setTrackedFiles(e){this._backgroundAnalysis?.setTrackedFiles(e);let t=this._program.setTrackedFiles(e);this._reportDiagnosticsForRemovedFiles(t)}setAllowedThirdPartyImports(e){this._backgroundAnalysis?.setAllowedThirdPartyImports(e),this._program.setAllowedThirdPartyImports(e)}setFileOpened(e,t,a,n){this._backgroundAnalysis?.setFileOpened(e,t,a,n),this._program.setFileOpened(e,t,a,n)}getChainedUri(e){return this._program.getChainedUri(e)}updateChainedUri(e,t){this._backgroundAnalysis?.updateChainedUri(e,t),this._program.updateChainedUri(e,t)}updateOpenFileContents(e,t,a,n){this._backgroundAnalysis?.setFileOpened(e,t,a,n),this._program.setFileOpened(e,t,a,n),this.markFilesDirty([e],!0)}setFileClosed(e){this._backgroundAnalysis?.setFileClosed(e);let t=this._program.setFileClosed(e);this._reportDiagnosticsForRemovedFiles(t)}addInterimFile(e){this._backgroundAnalysis?.addInterimFile(e),this._program.addInterimFile(e)}markAllFilesDirty(e){this._backgroundAnalysis?.markAllFilesDirty(e),this._program.markAllFilesDirty(e)}markFilesDirty(e,t){this._backgroundAnalysis?.markFilesDirty(e,t),this._program.markFilesDirty(e,t)}setCompletionCallback(e){this._onAnalysisCompletion=e,this._backgroundAnalysis?.setCompletionCallback(e)}startAnalysis(e){return this._backgroundAnalysis?(this._backgroundAnalysis.startAnalysis(e),!1):(0,i.analyzeProgram)(this._program,this._maxAnalysisTime,this._configOptions,this._onAnalysisCompletion,this._serviceProvider.console(),e)}async analyzeFile(e,t){return this._backgroundAnalysis?this._backgroundAnalysis.analyzeFile(e,t):this._program.analyzeFile(e,t)}async analyzeFileAndGetDiagnostics(e,t){return this._backgroundAnalysis?this._backgroundAnalysis.analyzeFileAndGetDiagnostics(e,t):this._program.analyzeFileAndGetDiagnostics(e,t)}libraryUpdated(){return!1}async getDiagnosticsForRange(e,t,a){return this._backgroundAnalysis?this._backgroundAnalysis.getDiagnosticsForRange(e,t,a):this._program.getDiagnosticsForRange(e,t)}async writeTypeStub(e,t,a,n){return this._backgroundAnalysis?this._backgroundAnalysis.writeTypeStub(e,t,a,n):new o.TypeStubWriter(this._program).writeTypeStub({targetImportPath:e,targetIsSingleFile:t,outputPath:a},n)}invalidateAndForceReanalysis(e,t){if(this._backgroundAnalysis?.invalidateAndForceReanalysis(e),this._importResolver.invalidateCache(),t?.changedFileUris&&t.changedFileUris.size>0&&e===n.LibraryWatcherContentOnlyChanged){let e=Array.from(t.changedFileUris.keys());this.markFilesDirty(e,!0)}else this._program.markAllFilesDirty(!0)}restart(){this._backgroundAnalysis?.restart()}dispose(){this._disposed||(this._disposed=!0,this._program.dispose(),this._backgroundAnalysis?.shutdown(),this._backgroundAnalysis?.dispose())}enterEditMode(){this._preEditAnalysis=this._backgroundAnalysis,this._backgroundAnalysis=void 0,this._program.enterEditMode()}exitEditMode(){return this._backgroundAnalysis=this._preEditAnalysis,this._preEditAnalysis=void 0,this._program.exitEditMode()}_ensurePartialStubPackages(e){return this._backgroundAnalysis?.ensurePartialStubPackages(e.root?.toString()),this._importResolver.ensurePartialStubPackages(e)}_reportDiagnosticsForRemovedFiles(e){0!==e.length&&!this._backgroundAnalysis&&this._onAnalysisCompletion&&this._onAnalysisCompletion({diagnostics:e,filesInProgram:this._program.getFileCount(),requiringAnalysisCount:this._program.getFilesToAnalyzeCount(),checkingOnlyOpenFiles:this._program.isCheckingOnlyOpenFiles(),fatalErrorOccurred:!1,configParseErrorOccurred:!1,elapsedTime:0,reason:"tracking"})}}},1034(e,t,a){var n,r=this&&this.__createBinding||(Object.create?function(e,t,a,n){void 0===n&&(n=a);var r=Object.getOwnPropertyDescriptor(t,a);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,n,r)}:function(e,t,a,n){void 0===n&&(n=a),e[n]=t[a]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(n=function(e){return(n=Object.getOwnPropertyNames||function(e){var t=[];for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[t.length]=a);return t})(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a=n(e),s=0;s<a.length;s++)"default"!==a[s]&&r(t,e,a[s]);return i(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.DummyScopeGenerator=t.ReturnFinder=t.YieldFinder=t.Binder=void 0;let o=a(7320),l=a(6965),p=a(911),d=a(5155),c=a(1915),u=a(3252),m=a(1340),y=s(a(9060)),g=a(5662),h=a(7716),f=a(6565),T=s(a(2758)),v=a(9401),b=a(3496),_=s(a(3069)),C=a(722),I=a(852);class k extends v.ParseTreeWalker{constructor(e,t=!1,a){super(),this._moduleSymbolOnly=t,this._cellChainIndex=a,this._deferredBindingTasks=[],this._currentExceptTargets=[],this._finallyTargets=[],this._typingImportAliases=[],this._sysImportAliases=[],this._dataclassesImportAliases=[],this._typingSymbolAliases=new Map,this._dataclassesSymbolAliases=new Map,this._dunderAllStringNodes=[],this._usesUnsupportedDunderAllForm=!1,this._isInExceptSuite=!1,this._isInAnnotatedAnnotation=!1,this._potentialHiddenSymbols=new Map,this._potentialWildcardReexportSymbols=new Map,this._potentialPrivateSymbols=new Map,this._codeFlowComplexity=0,this._fileInfo=e}bindModule(e){let t=void 0===this._fileInfo.builtinsScope,a=this._createCellChainModuleLevelLookup();this._addTypingImportAliasesFromBuiltinsScope(),this._createNewScope(t?5:4,this._fileInfo.builtinsScope,void 0,a,()=>{y.setScope(e,this._currentScope),y.setFlowNode(e,this._currentFlowNode),this._addImplicitSymbolToCurrentScope("__name__",e,"str"),this._addImplicitSymbolToCurrentScope("__loader__",e,"Any"),this._addImplicitSymbolToCurrentScope("__package__",e,"str | None"),this._addImplicitSymbolToCurrentScope("__spec__",e,"Any"),this._addImplicitSymbolToCurrentScope("__path__",e,"MutableSequence[str]"),this._addImplicitSymbolToCurrentScope("__file__",e,"str"),this._addImplicitSymbolToCurrentScope("__cached__",e,"str"),this._addImplicitSymbolToCurrentScope("__annotations__",e,"dict[str, Any]"),this._addImplicitSymbolToCurrentScope("__dict__",e,"dict[str, Any]"),this._addImplicitSymbolToCurrentScope("__builtins__",e,"Any"),this._addImplicitSymbolToCurrentScope("__doc__",e,"str | None"),this._currentFlowNode=this._createStartFlowNode(),this._walkStatementsAndReportUnreachable(e.d.statements),y.setAfterFlowNode(e,this._currentFlowNode),y.setCodeFlowExpressions(e,this._currentScopeCodeFlowExpressions),y.setCodeFlowComplexity(e,this._codeFlowComplexity)}),this._bindDeferred();let n=e=>!this._usesUnsupportedDunderAllForm||(0,I.isPrivateOrProtectedName)(e);if(this._potentialHiddenSymbols.forEach((e,t)=>{n(t)&&!this._dunderAllNames?.some(e=>e===t)&&(this._fileInfo.isStubFile?e.setIsExternallyHidden():e.setPrivatePyTypedImport())}),this._dunderAllNames){let e=this._dunderAllNames;this._potentialWildcardReexportSymbols.forEach((t,a)=>{n(a)&&!e.some(e=>e===a)&&t.setPrivatePyTypedImport()})}this._potentialPrivateSymbols.forEach((e,t)=>{n(t)&&!this._dunderAllNames?.some(e=>e===t)&&e.setIsPrivateMember()}),this._dunderAllNames?y.setDunderAllInfo(e,{names:this._dunderAllNames,stringNodes:this._dunderAllStringNodes,usesUnsupportedDunderAllForm:this._usesUnsupportedDunderAllForm}):y.setDunderAllInfo(e,void 0);let r=y.getScope(e);if(r&&this._dunderAllNames)for(let e of this._dunderAllNames)r.symbolTable.get(e)?.setIsInDunderAll()}visitModule(e){return(0,o.fail)("We should never get here"),!1}visitSuite(e){return this._walkStatementsAndReportUnreachable(e.d.statements),!1}visitModuleName(e){let t=y.getImportInfo(e);if((0,o.assert)(void 0!==t),t.isNativeLib)return!0;if(!t.isImportFound&&t.importName)return this._addDiagnostic(l.DiagnosticRule.reportMissingImports,m.LocMessage.importResolveFailure().format({importName:t.importName,venv:this._fileInfo.executionEnvironment.name}),e),!0;let a=!1;if(!t.isStubFile&&1===t.importType&&!t.pyTypedInfo&&(a=!0,t.isNamespacePackage&&e.parent?.nodeType===25&&e.parent.d.imports.every(e=>{let a=t.filteredImplicitImports?.get(e.d.name.d.value);return!!a?.pyTypedInfo})&&(a=!1)),a){let a=this._addDiagnostic(l.DiagnosticRule.reportMissingTypeStubs,m.LocMessage.stubFileMissing().format({importName:t.importName}),e);if(a){let e={action:"pyright.createtypestub",moduleName:t.importName};a.addAction(e)}}return!0}visitClass(e){let t;this.walkMultiple(e.d.decorators);let a={type:6,node:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e.d.name,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite},n=this._bindNameToScope(this._currentScope,e.d.name);return n&&n.addDeclaration(a),y.setDeclaration(e,a),e.d.typeParams&&(this.walk(e.d.typeParams),t=y.getScope(e.d.typeParams)),this.walkMultiple(e.d.arguments),this._createNewScope(3,t??this._getNonClassParentScope(),void 0,void 0,()=>{y.setScope(e,this._currentScope),this._addImplicitSymbolToCurrentScope("__doc__",e,"str | None"),this._addImplicitSymbolToCurrentScope("__module__",e,"str"),this._dunderSlotsEntries=void 0,this._moduleSymbolOnly||this.walk(e.d.suite);let t=this._currentScope.lookUpSymbol("__qualname__");t?t.setIsIgnoredForProtocolMatch():this._addImplicitSymbolToCurrentScope("__qualname__",e,"str",!1),this._dunderSlotsEntries&&this._addSlotsToCurrentScope(this._dunderSlotsEntries),this._dunderSlotsEntries=void 0}),this._createAssignmentTargetFlowNodes(e.d.name,!1,!1),!1}visitFunction(e){let t;this._createVariableAnnotationFlowNode(),y.setFlowNode(e,this._currentFlowNode);let a=this._bindNameToScope(this._currentScope,e.d.name),n=T.getEnclosingClass(e,!0),r={type:5,node:e,isMethod:!!n,isGenerator:!1,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e.d.name,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};return a&&a.addDeclaration(r),y.setDeclaration(e,r),e.d.params.forEach(e=>{e.d.defaultValue&&this.walk(e.d.defaultValue)}),e.d.typeParams&&(this.walk(e.d.typeParams),t=y.getScope(e.d.typeParams)),this.walkMultiple(e.d.decorators),e.d.params.forEach(e=>{e.d.annotation&&this.walk(e.d.annotation),e.d.annotationComment&&this.walk(e.d.annotationComment)}),e.d.returnAnnotation&&this.walk(e.d.returnAnnotation),e.d.funcAnnotationComment&&this.walk(e.d.funcAnnotationComment),this._createNewScope(2,t??this._getNonClassParentScope(),void 0,void 0,()=>{y.setScope(e,this._currentScope),T.getEnclosingClass(e)&&this._addImplicitSymbolToCurrentScope("__class__",e,"__class__"),this._deferBinding(()=>{this._currentFlowNode=this._createStartFlowNode(),this._codeFlowComplexity=0,e.d.params.forEach(e=>{if(e.d.name){let t=this._bindNameToScope(this._currentScope,e.d.name);if(t){let a={type:2,node:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};t.addDeclaration(a),y.setDeclaration(e.d.name,a)}this._createFlowAssignment(e.d.name)}}),this._targetFunctionDeclaration=r,this._currentReturnTarget=this._createBranchLabel(),this.walk(e.d.suite),this._targetFunctionDeclaration=void 0,y.setAfterFlowNode(e.d.suite,this._currentFlowNode),this._addAntecedent(this._currentReturnTarget,this._currentFlowNode);let t=this._finishFlowLabel(this._currentReturnTarget);y.setAfterFlowNode(e,t),y.setCodeFlowExpressions(e,this._currentScopeCodeFlowExpressions),y.setCodeFlowComplexity(e,this._codeFlowComplexity)})}),this._createAssignmentTargetFlowNodes(e.d.name,!1,!1),!1}visitLambda(e){return this._createVariableAnnotationFlowNode(),y.setFlowNode(e,this._currentFlowNode),e.d.params.forEach(e=>{e.d.defaultValue&&this.walk(e.d.defaultValue)}),this._createNewScope(2,this._getNonClassParentScope(),void 0,void 0,()=>{y.setScope(e,this._currentScope),T.getEnclosingClass(e)&&this._addImplicitSymbolToCurrentScope("__class__",e,"__class__"),this._deferBinding(()=>{this._currentFlowNode=this._createStartFlowNode(),e.d.params.forEach(e=>{if(e.d.name){let t=this._bindNameToScope(this._currentScope,e.d.name);if(t){let a={type:2,node:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};t.addDeclaration(a),y.setDeclaration(e.d.name,a)}this._createFlowAssignment(e.d.name),this.walk(e.d.name),y.setFlowNode(e,this._currentFlowNode)}}),this.walk(e.d.expr),y.setCodeFlowExpressions(e,this._currentScopeCodeFlowExpressions)})}),!1}visitCall(e){let t;if(3===this._currentScope.type&&("exec"===(t=function e(t,a,n=new Set){if(38===a.nodeType){let r=t.lookUpSymbolRecursive(a.d.value);if(!r||n.has(r.symbol))return;if(n.add(r.symbol),5===r.scope.type)return a.d.value;let i=r.symbol.getDeclarations(),s=i[i.length-1];if(s?.type===1&&(s.inferredTypeSource?.nodeType===38||s.inferredTypeSource?.nodeType===35))return e(t,s.inferredTypeSource,n);if(s?.type===8&&"builtins"===s.moduleName&&s.symbolName)return s.symbolName}else if(35===a.nodeType&&38===a.d.leftExpr.nodeType){let e=t.lookUpSymbolRecursive(a.d.leftExpr.d.value),n=e?.symbol.getDeclarations()??[],r=n[n.length-1];if(r?.type===8&&"builtins"===r.moduleName&&!r.symbolName)return a.d.member.d.value}}(this._currentScope,e.d.leftExpr))||"eval"===t&&1===e.d.args.length||("locals"===t||"vars"===t)&&0===e.d.args.length)&&(this._currentScope.hasPotentiallyDynamicSymbolTable=!0),this._disableTrueFalseTargets(()=>{this.walk(e.d.leftExpr),T.getArgsByRuntimeOrder(e).forEach(e=>{this._currentFlowNode&&y.setFlowNode(e,this._currentFlowNode),this.walk(e)})}),T.isNodeContainedWithinNodeType(e,16)||this._isInAnnotatedAnnotation||this._createCallFlowNode(e),4===this._currentScope.type&&35===e.d.leftExpr.nodeType&&38===e.d.leftExpr.d.leftExpr.nodeType&&"__all__"===e.d.leftExpr.d.leftExpr.d.value){let t=!0;if("extend"===e.d.leftExpr.d.member.d.value&&1===e.d.args.length){let a=e.d.args[0].d.valueExpr;if(34===a.nodeType)a.d.items.every(e=>48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType&&(this._dunderAllNames?.push(e.d.strings[0].d.value),this._dunderAllStringNodes?.push(e.d.strings[0]),!0))&&(t=!1);else if(35===a.nodeType&&38===a.d.leftExpr.nodeType&&"__all__"===a.d.member.d.value){let e=this._getDunderAllNamesFromImport(a.d.leftExpr.d.value);e&&e.length>0&&e.forEach(e=>{this._dunderAllNames?.push(e)}),t=!1}}else if("remove"===e.d.leftExpr.d.member.d.value&&1===e.d.args.length){let a=e.d.args[0].d.valueExpr;48===a.nodeType&&1===a.d.strings.length&&49===a.d.strings[0].nodeType&&this._dunderAllNames&&(this._dunderAllNames=this._dunderAllNames.filter(e=>e!==a.d.strings[0].d.value),this._dunderAllStringNodes=this._dunderAllStringNodes.filter(e=>e.d.value!==a.d.strings[0].d.value),t=!1)}else if("append"===e.d.leftExpr.d.member.d.value&&1===e.d.args.length){let a=e.d.args[0].d.valueExpr;48===a.nodeType&&1===a.d.strings.length&&49===a.d.strings[0].nodeType&&(this._dunderAllNames?.push(a.d.strings[0].d.value),this._dunderAllStringNodes?.push(a.d.strings[0]),t=!1)}t&&(this._usesUnsupportedDunderAllForm=!0,this._addDiagnostic(l.DiagnosticRule.reportUnsupportedDunderAll,m.LocMessage.unsupportedDunderAllOperation(),e))}return!1}visitTypeParameterList(e){let t=new b.Scope(0,this._getNonClassParentScope(),this._currentScope);e.d.params.forEach(e=>{e.d.boundExpr&&this.walk(e.d.boundExpr)});let a=new Set;return e.d.params.forEach(n=>{let r=n.d.name,i=t.addSymbol(r.d.value,0),s={type:3,node:n,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};i.addDeclaration(s),y.setDeclaration(r,s),a.has(r.d.value)?this._addSyntaxError(m.LocMessage.typeParameterExistingTypeParameter().format({name:r.d.value}),r):a.add(r.d.value)}),e.d.params.forEach(e=>{e.d.defaultExpr&&this.walk(e.d.defaultExpr)}),y.setScope(e,t),!1}visitTypeAlias(e){let t;this._bindNameToScope(this._currentScope,e.d.name),this.walk(e.d.name),e.d.typeParams&&(this.walk(e.d.typeParams),t=y.getScope(e.d.typeParams));let a={type:4,node:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e.d.name,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite,docString:this._getVariableDocString(e.d.expr)},n=this._bindNameToScope(this._currentScope,e.d.name);n&&n.addDeclaration(a),y.setDeclaration(e,a),this._createAssignmentTargetFlowNodes(e.d.name,!0,!1);let r=this._currentScope;return this._currentScope=t??this._currentScope,this.walk(e.d.expr),this._currentScope=r,!1}visitAssignment(e){if(this._handleTypingStubAssignmentOrAnnotation(e))return!1;if(this._bindPossibleTupleNamedTarget(e.d.leftExpr),e.d.annotationComment&&(this.walk(e.d.annotationComment),this._addTypeDeclarationForVariable(e.d.leftExpr,e.d.annotationComment)),e.d.chainedAnnotationComment&&this._addDiagnostic(l.DiagnosticRule.reportInvalidTypeForm,m.LocMessage.annotationNotSupported(),e.d.chainedAnnotationComment),27===e.d.leftExpr.nodeType){let t=e.d.leftExpr;if(1===t.d.items.length&&!t.d.trailingComma&&48===t.d.items[0].d.valueExpr.nodeType&&(0,g.isCodeFlowSupportedForReference)(t.d.leftExpr)){let e=(0,g.createKeyForReference)(t.d.leftExpr);this._currentScopeCodeFlowExpressions.add(e)}}this.walk(e.d.rightExpr);let t=!0;if(T.getEnclosingFunction(e)||9===e.d.rightExpr.nodeType&&this._fileInfo.isTypingStubFile?t=!1:T.isWithinLoop(e)&&(t=!1),this._addInferredTypeAssignmentForVariable(e.d.leftExpr,e.d.rightExpr,t),this._createAssignmentTargetFlowNodes(e.d.leftExpr,!0,!1),(4===this._currentScope.type||5===this._currentScope.type)&&(38===e.d.leftExpr.nodeType&&"__all__"===e.d.leftExpr.d.value||54===e.d.leftExpr.nodeType&&38===e.d.leftExpr.d.valueExpr.nodeType&&"__all__"===e.d.leftExpr.d.valueExpr.d.value)){let t=e.d.rightExpr;this._dunderAllNames=[];let a=!1;34===t.nodeType?t.d.items.forEach(e=>{48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType?(this._dunderAllNames.push(e.d.strings[0].d.value),this._dunderAllStringNodes.push(e.d.strings[0])):a=!0}):52===t.nodeType?t.d.items.forEach(e=>{48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType?(this._dunderAllNames.push(e.d.strings[0].d.value),this._dunderAllStringNodes.push(e.d.strings[0])):a=!0}):a=!0,a&&(this._usesUnsupportedDunderAllForm=!0,this._addDiagnostic(l.DiagnosticRule.reportUnsupportedDunderAll,m.LocMessage.unsupportedDunderAllOperation(),e))}if(3===this._currentScope.type&&(38===e.d.leftExpr.nodeType&&"__slots__"===e.d.leftExpr.d.value||54===e.d.leftExpr.nodeType&&38===e.d.leftExpr.d.valueExpr.nodeType&&"__slots__"===e.d.leftExpr.d.valueExpr.d.value)){let t=e.d.rightExpr;this._dunderSlotsEntries=[];let a=!0;48===t.nodeType?this._dunderSlotsEntries.push(t):34===t.nodeType?t.d.items.forEach(e=>{48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType?this._dunderSlotsEntries.push(e):a=!1}):52===t.nodeType?t.d.items.forEach(e=>{48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType?this._dunderSlotsEntries.push(e):a=!1}):18===t.nodeType?t.d.items.forEach(e=>{20===e.nodeType&&48===e.d.keyExpr.nodeType&&1===e.d.keyExpr.d.strings.length&&49===e.d.keyExpr.d.strings[0].nodeType?this._dunderSlotsEntries.push(e.d.keyExpr):a=!1}):a=!1,this._currentScope.setHasNonEmptySlots(this._dunderSlotsEntries.some(e=>"__dict__"!==e.d.strings[0].d.value)),a||(this._dunderSlotsEntries=void 0)}return!1}visitAssignmentExpression(e){this._disableTrueFalseTargets(()=>{this.walk(e.d.rightExpr)});let t=T.getEvaluationNodeForAssignmentExpression(e);if(t){let a=y.getScope(t),n=this._currentScope;for(;n&&n!==a;){if(n.lookUpSymbol(e.d.name.d.value)){this._addSyntaxError(m.LocMessage.assignmentExprComprehension().format({name:e.d.name.d.value}),e.d.name);break}n=n.parent}this._bindNameToScope(a,e.d.name),this._addInferredTypeAssignmentForVariable(e.d.name,e.d.rightExpr),this._createAssignmentTargetFlowNodes(e.d.name,!0,!1)}else this._addSyntaxError(m.LocMessage.assignmentExprContext(),e),this.walk(e.d.name);return!1}visitAugmentedAssignment(e){if(this.walk(e.d.leftExpr),this.walk(e.d.rightExpr),this._bindPossibleTupleNamedTarget(e.d.destExpr),this._createAssignmentTargetFlowNodes(e.d.destExpr,!1,!1),this._addInferredTypeAssignmentForVariable(e.d.destExpr,e.d.rightExpr),1===e.d.operator&&4===this._currentScope.type&&38===e.d.leftExpr.nodeType&&"__all__"===e.d.leftExpr.d.value){let t=e.d.rightExpr,a=!0;if(34===t.nodeType)t.d.items.forEach(e=>{48===e.nodeType&&1===e.d.strings.length&&49===e.d.strings[0].nodeType&&(this._dunderAllNames?.push(e.d.strings[0].d.value),this._dunderAllStringNodes.push(e.d.strings[0]))}),a=!1;else if(35===t.nodeType&&38===t.d.leftExpr.nodeType&&"__all__"===t.d.member.d.value){let e=this._getDunderAllNamesFromImport(t.d.leftExpr.d.value);e&&(e.forEach(e=>{this._dunderAllNames?.push(e)}),a=!1)}a&&(this._usesUnsupportedDunderAllForm=!0,this._addDiagnostic(l.DiagnosticRule.reportUnsupportedDunderAll,m.LocMessage.unsupportedDunderAllOperation(),e))}return!1}visitDel(e){return e.d.targets.forEach(e=>{this._bindPossibleTupleNamedTarget(e),this.walk(e),this._createAssignmentTargetFlowNodes(e,!1,!0)}),!1}visitTypeAnnotation(e){if(this._handleTypingStubAssignmentOrAnnotation(e))return!1;let t=e.parent?.nodeType===3&&void 0!==T.getEnclosingClass(e,!0);t||this.walk(e.d.annotation),this._createVariableAnnotationFlowNode(),this._bindPossibleTupleNamedTarget(e.d.valueExpr),this._addTypeDeclarationForVariable(e.d.valueExpr,e.d.annotation),t&&this.walk(e.d.annotation);let a=[];return this._isNarrowingExpression(e.d.valueExpr,a)&&a.forEach(e=>{let t=(0,g.createKeyForReference)(e);this._currentScopeCodeFlowExpressions.add(t)}),this.walk(e.d.valueExpr),!1}visitFor(e){this._bindPossibleTupleNamedTarget(e.d.targetExpr),this._addInferredTypeAssignmentForVariable(e.d.targetExpr,e),this.walk(e.d.iterableExpr);let t=this._createLoopLabel(),a=this._createBranchLabel(),n=this._createBranchLabel(),r=this._isNonEmptyListOrTupleLiteral(e.d.iterableExpr);this._addAntecedent(t,this._currentFlowNode),this._currentFlowNode=t,r||this._addAntecedent(a,this._currentFlowNode);let i=this._trackCodeFlowExpressions(()=>{this._createAssignmentTargetFlowNodes(e.d.targetExpr,!0,!1)}),s=t.antecedents.length;if(this._bindLoopStatement(t,n,()=>{this.walk(e.d.forSuite),this._addAntecedent(t,this._currentFlowNode),i.forEach(e=>{this._currentScopeCodeFlowExpressions?.add(e)})}),r)if(this._currentFlowNode.flags&(g.FlowFlags.UnreachableStructural|g.FlowFlags.UnreachableStaticCondition)){if(t.antecedents.length>s){let e=this._currentFlowNode;this._currentFlowNode=t,this._addAntecedent(a,t),this._currentFlowNode=e}}else this._addAntecedent(a,this._currentFlowNode);if(this._currentFlowNode=this._finishFlowLabel(a),e.d.elseSuite&&this.walk(e.d.elseSuite),this._addAntecedent(n,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(n),e.d.asyncToken&&!this._fileInfo.ipythonMode){let t=T.getEnclosingFunction(e);t&&t.d.isAsync||this._addSyntaxError(m.LocMessage.asyncNotInAsyncFunction(),e.d.asyncToken)}return!1}visitContinue(e){return this._currentContinueTarget&&this._addAntecedent(this._currentContinueTarget,this._currentFlowNode),this._currentFlowNode=k._unreachableStructuralFlowNode,!1}visitBreak(e){return this._currentBreakTarget&&this._addAntecedent(this._currentBreakTarget,this._currentFlowNode),this._currentFlowNode=k._unreachableStructuralFlowNode,!1}visitReturn(e){return this._targetFunctionDeclaration&&(this._targetFunctionDeclaration.returnStatements||(this._targetFunctionDeclaration.returnStatements=[]),this._targetFunctionDeclaration.returnStatements.push(e)),e.d.expr&&(y.setFlowNode(e.d.expr,this._currentFlowNode),this.walk(e.d.expr)),y.setFlowNode(e,this._currentFlowNode),this._currentReturnTarget&&this._addAntecedent(this._currentReturnTarget,this._currentFlowNode),this._finallyTargets.forEach(e=>{this._addAntecedent(e,this._currentFlowNode)}),this._currentFlowNode=k._unreachableStructuralFlowNode,!1}visitYield(e){return this._isInComprehension(e,!0)&&this._addSyntaxError(m.LocMessage.yieldWithinComprehension(),e),this._bindYield(e),!1}visitYieldFrom(e){return this._isInComprehension(e,!0)&&this._addSyntaxError(m.LocMessage.yieldWithinComprehension(),e),this._bindYield(e),!1}visitMemberAccess(e){return this.walk(e.d.leftExpr),y.setFlowNode(e,this._currentFlowNode),!1}visitName(e){return y.setFlowNode(e,this._currentFlowNode),!1}visitIndex(e){y.setFlowNode(e,this._currentFlowNode),this.walk(e.d.leftExpr);let t=this._isInAnnotatedAnnotation;return this._isTypingAnnotation(e.d.leftExpr,"Annotated")&&(this._isInAnnotatedAnnotation=!0),e.d.items.forEach(e=>{this.walk(e)}),this._isInAnnotatedAnnotation=t,!1}visitIf(e){let t=this._currentFlowNode,a=this._createBranchLabel(),n=this._createBranchLabel(),r=this._createBranchLabel(t);return r.affectedExpressions=this._trackCodeFlowExpressions(()=>{let t=_.evaluateStaticBoolLikeExpression(e.d.testExpr,this._fileInfo.executionEnvironment,this._fileInfo.definedConstants,this._typingImportAliases,this._sysImportAliases);y.setStaticConditionValue(e,t),this._bindConditional(e.d.testExpr,a,n),this._currentFlowNode=!1===t?k._unreachableStaticConditionFlowNode:this._finishFlowLabel(a),this.walk(e.d.ifSuite),this._addAntecedent(r,this._currentFlowNode),this._currentFlowNode=!0===t?k._unreachableStaticConditionFlowNode:this._finishFlowLabel(n),e.d.elseSuite?this.walk(e.d.elseSuite):this._bindNeverCondition(e.d.testExpr,r,!1),this._addAntecedent(r,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(r)}),!1}visitWhile(e){let t=this._createBranchLabel(),a=this._createBranchLabel(),n=this._createBranchLabel(),r=_.evaluateStaticBoolLikeExpression(e.d.testExpr,this._fileInfo.executionEnvironment,this._fileInfo.definedConstants,this._typingImportAliases,this._sysImportAliases),i=this._createLoopLabel();return this._addAntecedent(i,this._currentFlowNode),this._currentFlowNode=i,this._bindConditional(e.d.testExpr,t,a),this._currentFlowNode=!1===r?k._unreachableStaticConditionFlowNode:this._finishFlowLabel(t),this._bindLoopStatement(i,n,()=>{this.walk(e.d.whileSuite)}),this._addAntecedent(i,this._currentFlowNode),this._currentFlowNode=!0===r?k._unreachableStaticConditionFlowNode:this._finishFlowLabel(a),e.d.elseSuite&&this.walk(e.d.elseSuite),this._addAntecedent(n,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(n),!1}visitAssert(e){let t=this._createBranchLabel(),a=this._createBranchLabel();return this._bindConditional(e.d.testExpr,t,a),e.d.exceptionExpr&&(this._currentFlowNode=this._finishFlowLabel(a),this.walk(e.d.exceptionExpr)),this._currentFlowNode=this._finishFlowLabel(t),!1}visitExcept(e){if(e.d.typeExpr&&this.walk(e.d.typeExpr),e.d.name){this.walk(e.d.name);let t=this._bindNameToScope(this._currentScope,e.d.name);if(this._createAssignmentTargetFlowNodes(e.d.name,!0,!1),t){let a={type:1,node:e.d.name,isConstant:(0,I.isConstantName)(e.d.name.d.value),inferredTypeSource:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e.d.name,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite,isExplicitBinding:void 0!==this._currentScope.getBindingType(e.d.name.d.value)};t.addDeclaration(a)}}let t=this._isInExceptSuite;return this._isInExceptSuite=!0,this.walk(e.d.exceptSuite),this._isInExceptSuite=t,e.d.name&&this._createFlowAssignment(e.d.name,!0),!1}visitRaise(e){return this._currentFlowNode&&this._addExceptTargets(this._currentFlowNode),this._targetFunctionDeclaration&&(this._targetFunctionDeclaration.raiseStatements||(this._targetFunctionDeclaration.raiseStatements=[]),this._targetFunctionDeclaration.raiseStatements.push(e)),e.d.expr&&this.walk(e.d.expr),e.d.fromExpr&&this.walk(e.d.fromExpr),this._finallyTargets.forEach(e=>{this._addAntecedent(e,this._currentFlowNode)}),this._currentFlowNode=k._unreachableStructuralFlowNode,!1}visitTry(e){let t=this._currentFlowNode,a=e.d.exceptClauses.map(()=>this._createBranchLabel()),n=this._createBranchLabel(t),r=!1,i=this._createBranchLabel(t),s={flags:g.FlowFlags.PreFinallyGate,id:this._getUniqueFlowNodeId(),antecedent:i};if(n.affectedExpressions=this._trackCodeFlowExpressions(()=>{e.d.finallySuite&&this._addAntecedent(n,s),e.d.exceptClauses.some(e=>!e.d.typeExpr)||a.push(i),a.forEach(e=>{this._addAntecedent(e,this._currentFlowNode)}),e.d.finallySuite&&this._finallyTargets.push(i),this._useExceptTargets(a,()=>{this.walk(e.d.trySuite)}),e.d.elseSuite&&this.walk(e.d.elseSuite),this._addAntecedent(n,this._currentFlowNode),this._isCodeUnreachable()||(r=!0),e.d.exceptClauses.forEach((e,t)=>{this._currentFlowNode=this._finishFlowLabel(a[t]),this.walk(e),this._addAntecedent(n,this._currentFlowNode),this._isCodeUnreachable()||(r=!0)}),e.d.finallySuite&&this._finallyTargets.pop(),this._currentFlowNode=this._finishFlowLabel(n)}),e.d.finallySuite){this.walk(e.d.finallySuite);let t={flags:g.FlowFlags.PostFinally,id:this._getUniqueFlowNodeId(),finallyNode:e.d.finallySuite,antecedent:this._currentFlowNode,preFinallyGate:s};this._currentFlowNode=r?t:k._unreachableStructuralFlowNode}return!1}visitAwait(e){let t=T.getExecutionScopeNode(e);if(t?.nodeType!==31||!t.d.isAsync){if(this._fileInfo.ipythonMode&&t?.nodeType===36)return!0;(e.parent?.nodeType!==11||e.parent?.parent?.nodeType===34||e.parent?.parent?.nodeType===45||e.parent?.parent?.nodeType===18)&&this._addSyntaxError(m.LocMessage.awaitNotInAsync(),e.d.awaitToken)}return!0}visitGlobal(e){let t=this._currentScope.getGlobalScope().scope;return e.d.targets.forEach(e=>{let a=e.d.value;0===this._currentScope.getBindingType(a)&&this._addSyntaxError(m.LocMessage.nonLocalRedefinition().format({name:a}),e);let n=this._currentScope.lookUpSymbolRecursive(a);n&&n.scope===this._currentScope&&this._addSyntaxError(m.LocMessage.globalReassignment().format({name:a}),e),this._bindNameToScope(t,e),this._currentScope!==t&&this._currentScope.setBindingType(a,1)}),!0}visitNonlocal(e){let t=this._currentScope.getGlobalScope().scope;return this._currentScope===t?this._addSyntaxError(m.LocMessage.nonLocalInModule(),e):e.d.targets.forEach(e=>{let a=e.d.value;1===this._currentScope.getBindingType(a)&&this._addSyntaxError(m.LocMessage.globalRedefinition().format({name:a}),e);let n=this._currentScope.lookUpSymbolRecursive(a);n&&n.scope===this._currentScope?this._addSyntaxError(m.LocMessage.nonLocalReassignment().format({name:a}),e):n&&n.scope!==t||this._addSyntaxError(m.LocMessage.nonLocalNoBinding().format({name:a}),e),n&&this._currentScope.setBindingType(a,0)}),!0}visitImportAs(e){if(e.d.module.d.nameParts.length>0){let t,a,n=e.d.module.d.nameParts[0].d.value;e.d.alias?(t=e.d.alias.d.value,a=e.d.alias):(t=n,a=e.d.module.d.nameParts[0]);let r=this._bindNameToScope(this._currentScope,a);r&&(4===this._currentScope.type||5===this._currentScope.type)&&(!e.d.alias||1!==e.d.module.d.nameParts.length||e.d.module.d.nameParts[0].d.value!==e.d.alias.d.value)&&(this._fileInfo.isStubFile||this._fileInfo.isInPyTypedPackage)&&this._potentialHiddenSymbols.set(t,r);let i=y.getImportInfo(e.d.module);(0,o.assert)(void 0!==i),r&&this._createAliasDeclarationForMultipartImportName(e,e.d.alias,i,r),this._createFlowAssignment(e.d.alias?e.d.alias:e.d.module.d.nameParts[0]),1===e.d.module.d.nameParts.length&&("typing"===n||"typing_extensions"===n?this._typingImportAliases.push(e.d.alias?.d.value??n):"sys"===n?this._sysImportAliases.push(e.d.alias?.d.value??n):"dataclasses"===n&&this._dataclassesImportAliases.push(e.d.alias?.d.value??n))}return!0}visitImportFrom(e){let t=["Final","ClassVar","Annotated"],a=["InitVar","KW_ONLY"],n=y.getImportInfo(e.d.module);y.setFlowNode(e,this._currentFlowNode);let r=u.Uri.empty();n&&n.isImportFound&&!n.isNativeLib&&(r=n.resolvedUris[n.resolvedUris.length-1]);let i=(0,p.stripFileExtension)(this._fileInfo.fileUri.fileName),s="__init__"===i&&1===e.d.module.d.leadingDots&&1===e.d.module.d.nameParts.length,o=!1,l=!1;if(1===e.d.module.d.nameParts.length){let t=e.d.module.d.nameParts[0].d.value;("typing"===t||"typing_extensions"===t)&&(o=!0),"dataclasses"===t&&(l=!0)}if(e.d.isWildcardImport){if((T.getEnclosingClass(e)||T.getEnclosingFunction(e))&&this._addSyntaxError(m.LocMessage.wildcardInFunction(),e),n){let i=[];this._currentScopeCodeFlowExpressions?.add(g.wildcardImportReferenceKey);let p=this._fileInfo.importLookup(r);if(p){let t=(0,f.getWildcardImportNames)(p);s&&(t.some(t=>t===e.d.module.d.nameParts[0].d.value)||this._addImplicitFromImport(e,n)),t.forEach(t=>{let a=this._bindNameValueToScope(this._currentScope,t);if(a){let s=p.symbolTable.get(t);if((4===this._currentScope.type||5===this._currentScope.type)&&this._fileInfo.isInPyTypedPackage&&!this._fileInfo.isStubFile&&this._potentialWildcardReexportSymbols.set(t,a),s)if(this._addWildcardImportedModuleAlias(e,a,s))i.push(t);else{let n={type:8,node:e,uri:r,loadSymbolsFromPath:!0,range:(0,c.getEmptyRange)(),usesLocalName:!1,symbolName:t,moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};a.addDeclaration(n),i.push(t)}else if(n&&n.filteredImplicitImports){let s=n.filteredImplicitImports.get(t);if(s){let n={type:8,node:e,uri:s.uri,loadSymbolsFromPath:!0,range:(0,c.getEmptyRange)(),usesLocalName:!1,moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite},o={type:8,node:e,uri:r,loadSymbolsFromPath:!0,usesLocalName:!1,symbolName:t,submoduleFallback:n,range:(0,c.getEmptyRange)(),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite};a.addDeclaration(o),i.push(t)}}o&&a.setTypingSymbolAlias(t)}})}this._createFlowWildcardImport(e,i),o&&t.forEach(e=>{this._typingSymbolAliases.set(e,e)}),l&&a.forEach(e=>{this._dataclassesSymbolAliases.set(e,e)})}}else s&&this._addImplicitFromImport(e,n),e.d.imports.forEach(s=>{let p=s.d.name.d.value,u=s.d.alias||s.d.name;y.setFlowNode(s,this._currentFlowNode);let m=this._bindNameToScope(this._currentScope,u);if(m){let y,g;e.d.module.d.nameParts.length>0&&(4===this._currentScope.type||5===this._currentScope.type)&&(!s.d.alias||s.d.alias.d.value!==s.d.name.d.value)&&(this._fileInfo.isStubFile||this._fileInfo.isInPyTypedPackage)&&this._potentialHiddenSymbols.set(u.d.value,m),n&&n.filteredImplicitImports&&(y=n.filteredImplicitImports.get(p));let h=!0;y&&(g={type:8,node:s,uri:y.uri,loadSymbolsFromPath:!0,range:(0,c.getEmptyRange)(),usesLocalName:!1,moduleName:this._formatModuleName(e.d.module),isInExceptSuite:this._isInExceptSuite,isLazy:e.d.isLazy||void 0},"__init__"===i&&(1===e.d.module.d.leadingDots&&0===e.d.module.d.nameParts.length?h=!1:r.equals(this._fileInfo.fileUri)&&(h=!1)));let f={type:8,node:s,uri:r,loadSymbolsFromPath:h,usesLocalName:!!s.d.alias,symbolName:p,submoduleFallback:g,range:(0,d.convertTextRangeToRange)(u,this._fileInfo.lines),moduleName:this._formatModuleName(e.d.module),isInExceptSuite:this._isInExceptSuite,isNativeLib:n?.isNativeLib,isLazy:e.d.isLazy||void 0};m.addDeclaration(f),this._createFlowAssignment(s.d.alias||s.d.name),o&&t.some(e=>e===s.d.name.d.value)&&(this._typingSymbolAliases.set(u.d.value,s.d.name.d.value),o&&m.setTypingSymbolAlias(u.d.value)),l&&a.some(e=>e===s.d.name.d.value)&&this._dataclassesSymbolAliases.set(u.d.value,s.d.name.d.value)}});return!0}visitWith(e){e.d.withItems.forEach(e=>{this.walk(e.d.expr),e.d.target&&(this._bindPossibleTupleNamedTarget(e.d.target),this._addInferredTypeAssignmentForVariable(e.d.target,e),this._createAssignmentTargetFlowNodes(e.d.target,!0,!1))});let t=this._createContextManagerLabel(e.d.withItems.map(e=>e.d.expr),!!e.d.isAsync,!1);this._addAntecedent(t,this._currentFlowNode);let a=this._createContextManagerLabel(e.d.withItems.map(e=>e.d.expr),!!e.d.isAsync,!0);this._currentExceptTargets.forEach(e=>{this._addAntecedent(e,a)});let n=this._currentFlowNode,r=this._createBranchLabel(n);return this._addAntecedent(r,t),r.affectedExpressions=this._trackCodeFlowExpressions(()=>{if(this._useExceptTargets([t,a],()=>{this.walk(e.d.suite)}),this._addAntecedent(r,this._currentFlowNode),this._currentFlowNode=r,this._isCodeUnreachable()||this._addExceptTargets(this._currentFlowNode),e.d.asyncToken&&!this._fileInfo.ipythonMode){let t=T.getEnclosingFunction(e);t&&t.d.isAsync||this._addSyntaxError(m.LocMessage.asyncNotInAsyncFunction(),e.d.asyncToken)}}),!1}visitTernary(e){let t=this._currentFlowNode,a=this._createBranchLabel(),n=this._createBranchLabel(),r=this._createBranchLabel(t);return r.affectedExpressions=this._trackCodeFlowExpressions(()=>{this._bindConditional(e.d.testExpr,a,n),this._currentFlowNode=this._finishFlowLabel(a),this.walk(e.d.ifExpr),this._addAntecedent(r,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(n),this.walk(e.d.elseExpr),this._addAntecedent(r,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(r)}),!1}visitUnaryOperation(e){return 38===e.d.operator&&this._currentFalseTarget&&this._currentTrueTarget?this._bindConditional(e.d.expr,this._currentFalseTarget,this._currentTrueTarget):this._disableTrueFalseTargets(()=>{this.walk(e.d.expr)}),!1}visitBinaryOperation(e){if(36===e.d.operator||37===e.d.operator){let t,a=this._currentTrueTarget,n=this._currentFalseTarget;a&&n||(a=n=t=this._createBranchLabel());let r=this._createBranchLabel();36===e.d.operator?this._bindConditional(e.d.leftExpr,r,n):this._bindConditional(e.d.leftExpr,a,r),this._currentFlowNode=this._finishFlowLabel(r),this._bindConditional(e.d.rightExpr,a,n),t&&(this._currentFlowNode=this._finishFlowLabel(t))}else this._disableTrueFalseTargets(()=>{this.walk(e.d.leftExpr),this.walk(e.d.rightExpr)});return!1}visitComprehension(e){let t=T.getEnclosingFunction(e);return e.d.forIfNodes.length>0&&12===e.d.forIfNodes[0].nodeType&&this.walk(e.d.forIfNodes[0].d.iterableExpr),this._createNewScope(1,this._getNonClassParentScope(),void 0,void 0,()=>{y.setScope(e,this._currentScope);let a=this._createBranchLabel();for(let a=0;a<e.d.forIfNodes.length;a++){let n=e.d.forIfNodes[a],r=new Map;12===n.nodeType&&(this._bindPossibleTupleNamedTarget(n.d.targetExpr,r),this._addInferredTypeAssignmentForVariable(n.d.targetExpr,n),!n.d.asyncToken||this._fileInfo.ipythonMode||t&&t.d.isAsync||e.parent?.nodeType!==34&&e.parent?.nodeType!==45&&e.parent?.nodeType!==18||this._addSyntaxError(m.LocMessage.asyncNotInAsyncFunction(),n.d.asyncToken))}for(let t=0;t<e.d.forIfNodes.length;t++){let n=e.d.forIfNodes[t];if(12===n.nodeType)0!==t&&this.walk(n.d.iterableExpr),this._createAssignmentTargetFlowNodes(n.d.targetExpr,!0,!1);else{let e=this._createBranchLabel();this._bindConditional(n.d.testExpr,e,a),this._currentFlowNode=this._finishFlowLabel(e)}}this.walk(e.d.expr),this._addAntecedent(a,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(a)}),!1}visitMatch(e){this.walk(e.d.expr);let t=[],a=this._isNarrowingExpression(e.d.expr,t);52===e.d.expr.nodeType&&e.d.expr.d.items.forEach(e=>{this._isNarrowingExpression(e,t)&&(a=!0)}),a&&t.forEach(e=>{let t=(0,g.createKeyForReference)(e);this._currentScopeCodeFlowExpressions.add(t)});let n=this._createBranchLabel(),r=!1;return e.d.cases.forEach(t=>{let a=this._createBranchLabel(),i=this._createBranchLabel(),s=this._createBranchLabel();this._addAntecedent(i,this._currentFlowNode),t.d.isIrrefutable?t.d.guardExpr||(r=!0):this._addAntecedent(a,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(i),this._currentMatchSubjExpr=e.d.expr,this.walk(t.d.pattern),this._currentMatchSubjExpr&&(this._createFlowNarrowForPattern(e.d.expr,t),this._currentMatchSubjExpr=void 0),t.d.guardExpr?this._bindConditional(t.d.guardExpr,s,a):this._addAntecedent(s,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(s),this.walk(t.d.suite),this._addAntecedent(n,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(a)}),a&&this._createFlowNarrowForPattern(e.d.expr,e),r||this._createFlowExhaustedMatch(e),this._addAntecedent(n,this._currentFlowNode),this._currentFlowNode=this._finishFlowLabel(n),!1}visitPatternAs(e){let t=this._createBranchLabel();if(e.d.orPatterns.forEach(e=>{this.walk(e),this._addAntecedent(t,this._currentFlowNode)}),this._currentFlowNode=this._finishFlowLabel(t),e.d.target){this.walk(e.d.target);let t=this._bindNameToScope(this._currentScope,e.d.target);if(this._createAssignmentTargetFlowNodes(e.d.target,!1,!1),t){let a={type:1,node:e.d.target,isConstant:(0,I.isConstantName)(e.d.target.d.value),inferredTypeSource:e,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e.d.target,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite,isExplicitBinding:void 0!==this._currentScope.getBindingType(e.d.target.d.value)};t.addDeclaration(a)}}return!1}visitPatternCapture(e){return e.d.isWildcard||this._addPatternCaptureTarget(e.d.target),!0}visitPatternMappingExpandEntry(e){return"_"!==e.d.target.d.value&&this._addPatternCaptureTarget(e.d.target),!0}_isNonEmptyListOrTupleLiteral(e){return 34===e.nodeType?e.d.items.length>0&&e.d.items.every(e=>56!==e.nodeType&&11!==e.nodeType):52===e.nodeType&&e.d.items.length>0&&e.d.items.every(e=>56!==e.nodeType)}_addTypingImportAliasesFromBuiltinsScope(){this._fileInfo.builtinsScope&&this._fileInfo.builtinsScope.symbolTable.forEach((e,t)=>{let a=e.getTypingSymbolAlias();a&&!e.isExternallyHidden()&&this._typingSymbolAliases.set(t,a)})}_formatModuleName(e){return".".repeat(e.d.leadingDots)+e.d.nameParts.map(e=>e.d.value).join(".")}_getNonClassParentScope(){let e=this._currentScope;for(;3===e.type;)e=e.parent;return e}_addSlotsToCurrentScope(e){(0,o.assert)(3===this._currentScope.type);let t=!1;for(let a of e){let e=a.d.strings[0].d.value;if("__dict__"===e){t=!0;continue}let n=this._currentScope.lookUpSymbol(e);if(n)n.setIsSlotsMember();else{n=this._currentScope.addSymbol(e,29);let t="none"!==this._fileInfo.diagnosticRuleSet.reportPrivateUsage;(0,I.isPrivateOrProtectedName)(e)&&t&&n.setIsPrivateMember()}let r={type:1,node:a,isConstant:(0,I.isConstantName)(e),isDefinedBySlots:!0,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(a,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite,isExplicitBinding:void 0!==this._currentScope.getBindingType(e)};n.addDeclaration(r)}t||this._currentScope.setSlotsNames(e.map(e=>e.d.strings[0].d.value))}_isInComprehension(e,t=!1){let a,n,r=e;for(;r;){if(11===r.nodeType){if(t&&r.d.forIfNodes.length>0){let e=r.d.forIfNodes[0];if(a===e&&12===e.nodeType&&n===e.d.iterableExpr)return!1}return!0}n=a,a=r,r=r.parent}return!1}_addPatternCaptureTarget(e){let t=this._bindNameToScope(this._currentScope,e);if(this._createAssignmentTargetFlowNodes(e,!1,!1),this._currentMatchSubjExpr&&(T.isMatchingExpression(e,this._currentMatchSubjExpr)||T.isPartialMatchingExpression(e,this._currentMatchSubjExpr))&&(this._currentMatchSubjExpr=void 0),t){let a={type:1,node:e,isConstant:(0,I.isConstantName)(e.d.value),inferredTypeSource:e.parent,uri:this._fileInfo.fileUri,range:(0,d.convertTextRangeToRange)(e,this._fileInfo.lines),moduleName:this._fileInfo.moduleName,isInExceptSuite:this._isInExceptSuite,isExplicitBinding:void 0!==this._currentScope.getBindingType(e.d.value)};t.addDeclaration(a)}}_useExceptTargets(e,t){let a=this._currentExceptTargets;this._currentExceptTargets=e,t(),this._currentExceptTargets=a}_getDunderAllNamesFromImport(e){let t=this._currentScope.lookUpSymbol(e);if(!t)return;let a=t.getDeclarations().find(e=>8===e.type),n=a?.uri&&!a.uri.isEmpty()&&a.loadSymbolsFromPath?a.uri:a?.submoduleFallback?.uri&&!a.submoduleFallback.uri.isEmpty()&&a.submoduleFallback.loadSymbolsFromPath?a.submoduleFallback.uri:void 0;if(!n)return;let r=this._fileInfo.importLookup(n);return r?.dunderAllNames?r.dunderAllNames:a?.submoduleFallback?.uri&&!a.submoduleFallback.uri.isEmpty()?(r=this._fileInfo.importLookup(a.submoduleFallback.uri),r?.dunderAllNames):void 0}_addImplicitFromImport(e,t){let a=e.d.module.d.nameParts[0].d.value,n=this._bindNameValueToScope(this._currentScope,a);n&&this._createAliasDeclarationForMultipartImportName(e,void 0,t,n),this._createFlowAssignment(e.d.module.d.nameParts[0])}_createAliasDeclarationForMultipartImportName(e,t,a,n){let r,i,s,o=e.d.module.d.nameParts[0].d.value;y.setFlowNode(e,this._currentFlowNode),a&&a.isImportFound&&!a.isNativeLib&&a.resolvedUris.length>0&&(r=a.resolvedUris[0]);let l=n.getDeclarations().find(e=>8===e.type&&e.firstNamePart===o&&(!r||r.equals(e.uri)));s=a&&a.isImportFound&&!a.isNativeLib