@zzzen/pyright-internal 1.2.0-dev.20261011 → 1.2.0-dev.20261101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/binder.js +28 -9
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +8 -3
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +76 -30
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/dataClasses.js +14 -5
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +1 -1
- package/dist/analyzer/decorators.js +22 -2
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +2 -1
- package/dist/analyzer/namedTuples.js +63 -35
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +45 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/overloadResultAdmission.js +115 -3
- package/dist/analyzer/overloadResultAdmission.js.map +1 -1
- package/dist/analyzer/overloadResultController.js +36 -10
- package/dist/analyzer/overloadResultController.js.map +1 -1
- package/dist/analyzer/overloadResultSelector.js +32 -12
- package/dist/analyzer/overloadResultSelector.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +3 -0
- package/dist/analyzer/parseTreeUtils.js +56 -0
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +67 -27
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +3 -0
- package/dist/analyzer/program.js +34 -9
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/sentinel.js +7 -1
- package/dist/analyzer/sentinel.js.map +1 -1
- package/dist/analyzer/service.js +6 -2
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceEnumerator.d.ts +3 -1
- package/dist/analyzer/sourceEnumerator.js +30 -11
- package/dist/analyzer/sourceEnumerator.js.map +1 -1
- package/dist/analyzer/sourceFile.js +13 -6
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +1 -0
- package/dist/analyzer/sourceMapper.js +10 -4
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/tupleComparison.d.ts +6 -0
- package/dist/analyzer/tupleComparison.js +731 -0
- package/dist/analyzer/tupleComparison.js.map +1 -0
- package/dist/analyzer/tuples.js +52 -10
- package/dist/analyzer/tuples.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +508 -63
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js +2 -3
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +6 -1
- package/dist/analyzer/typeGuards.js +373 -72
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubRenderer.d.ts +6 -1
- package/dist/analyzer/typeStubRenderer.js +19 -12
- package/dist/analyzer/typeStubRenderer.js.map +1 -1
- package/dist/analyzer/typeUtils.js +3 -0
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -1
- package/dist/analyzer/typedDicts.js +49 -10
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +14 -0
- package/dist/analyzer/types.js +215 -10
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +9 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/processUtils.d.ts +6 -0
- package/dist/common/processUtils.js +56 -1
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/textEditTracker.js +1 -1
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/windowsProcessTree.d.ts +2 -0
- package/dist/common/windowsProcessTree.js +23 -0
- package/dist/common/windowsProcessTree.js.map +1 -1
- package/dist/common/windowsProcessTree.json +273 -34
- package/dist/languageServerBase.d.ts +3 -0
- package/dist/languageServerBase.js +44 -12
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +6 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.js +3 -3
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +1 -1
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +2 -2
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/localization/localize.d.ts +2 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +8 -0
- package/dist/parser/parseTreeTokenReuse.d.ts +34 -0
- package/dist/parser/parseTreeTokenReuse.js +897 -0
- package/dist/parser/parseTreeTokenReuse.js.map +1 -0
- package/dist/parser/tokenizer.d.ts +10 -1
- package/dist/parser/tokenizer.js +184 -130
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +58 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/config.test.js +126 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +35 -0
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourslash/hover.typedDict.get.fourslash.js +11 -0
- package/dist/tests/fourslash/hover.typedDict.get.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +14 -4
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/languageServer.test.js +15 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +6 -6
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/mypyPrimerAnalysis.test.js +133 -0
- package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
- package/dist/tests/overloadResultController.test.js +379 -1
- package/dist/tests/overloadResultController.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +34 -0
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceEnumeratorSymlink.test.js +98 -13
- package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +143 -0
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +22 -3
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +54 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -3
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/typeEvaluator6.test.js +55 -0
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +30 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +1293 -2
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/types.test.js +55 -0
- package/dist/tests/types.test.js.map +1 -1
- package/dist/typeServer/programWrapper.js +8 -2
- package/dist/typeServer/programWrapper.js.map +1 -1
- package/dist/typeServer/server.d.ts +12 -2
- package/dist/typeServer/server.js +97 -0
- package/dist/typeServer/server.js.map +1 -1
- package/package.json +3 -3
package/dist/analyzer/binder.js
CHANGED
|
@@ -2634,20 +2634,31 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
2634
2634
|
allowDiscriminatedNarrowing: true,
|
|
2635
2635
|
});
|
|
2636
2636
|
}
|
|
2637
|
-
// Look for
|
|
2638
|
-
|
|
2639
|
-
|
|
2637
|
+
// Look for type(X) on either side without skipping references in the other operand.
|
|
2638
|
+
let isLeftNarrowing;
|
|
2639
|
+
if (expression.d.leftExpr.nodeType === 9 /* ParseNodeType.Call */ &&
|
|
2640
2640
|
expression.d.leftExpr.d.leftExpr.nodeType === 38 /* ParseNodeType.Name */ &&
|
|
2641
2641
|
expression.d.leftExpr.d.leftExpr.d.value === 'type' &&
|
|
2642
2642
|
expression.d.leftExpr.d.args.length === 1 &&
|
|
2643
2643
|
expression.d.leftExpr.d.args[0].d.argCategory === 0 /* ArgCategory.Simple */) {
|
|
2644
|
-
|
|
2644
|
+
isLeftNarrowing = this._isNarrowingExpression(expression.d.leftExpr.d.args[0].d.valueExpr, expressionList, { ...options, isComplexExpression: true });
|
|
2645
|
+
}
|
|
2646
|
+
else {
|
|
2647
|
+
isLeftNarrowing = this._isNarrowingExpression(expression.d.leftExpr, expressionList, {
|
|
2648
|
+
...options,
|
|
2649
|
+
isComplexExpression: true,
|
|
2650
|
+
allowDiscriminatedNarrowing: true,
|
|
2651
|
+
});
|
|
2652
|
+
}
|
|
2653
|
+
// Look for "Y is type(X)", "Y is not type(X)", "Y == type(X)" or "Y != type(X)".
|
|
2654
|
+
if (expression.d.rightExpr.nodeType === 9 /* ParseNodeType.Call */ &&
|
|
2655
|
+
expression.d.rightExpr.d.leftExpr.nodeType === 38 /* ParseNodeType.Name */ &&
|
|
2656
|
+
expression.d.rightExpr.d.leftExpr.d.value === 'type' &&
|
|
2657
|
+
expression.d.rightExpr.d.args.length === 1 &&
|
|
2658
|
+
expression.d.rightExpr.d.args[0].d.argCategory === 0 /* ArgCategory.Simple */) {
|
|
2659
|
+
const isRightNarrowing = this._isNarrowingExpression(expression.d.rightExpr.d.args[0].d.valueExpr, expressionList, { ...options, isComplexExpression: true });
|
|
2660
|
+
return isLeftNarrowing || isRightNarrowing;
|
|
2645
2661
|
}
|
|
2646
|
-
const isLeftNarrowing = this._isNarrowingExpression(expression.d.leftExpr, expressionList, {
|
|
2647
|
-
...options,
|
|
2648
|
-
isComplexExpression: true,
|
|
2649
|
-
allowDiscriminatedNarrowing: true,
|
|
2650
|
-
});
|
|
2651
2662
|
// Look for "X is Y" or "X is not Y".
|
|
2652
2663
|
// Look for X == <literal> or X != <literal>
|
|
2653
2664
|
// Look for len(X) == <literal> or len(X) != <literal>
|
|
@@ -2790,6 +2801,10 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
2790
2801
|
_createCallFlowNode(node) {
|
|
2791
2802
|
if (!this._isCodeUnreachable()) {
|
|
2792
2803
|
this._addExceptTargets(this._currentFlowNode);
|
|
2804
|
+
const deletionCall = ParseTreeUtils.getTypedDictKeyDeletionCall(node);
|
|
2805
|
+
if (deletionCall && (0, codeFlowTypes_1.isCodeFlowSupportedForReference)(deletionCall.d.leftExpr)) {
|
|
2806
|
+
this._currentScopeCodeFlowExpressions.add((0, codeFlowTypes_1.createKeyForReference)(deletionCall.d.leftExpr));
|
|
2807
|
+
}
|
|
2793
2808
|
const flowNode = {
|
|
2794
2809
|
flags: codeFlowTypes_1.FlowFlags.Call,
|
|
2795
2810
|
id: this._getUniqueFlowNodeId(),
|
|
@@ -2838,6 +2853,10 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
2838
2853
|
if (isSupportedReference) {
|
|
2839
2854
|
this._currentScopeCodeFlowExpressions.add((0, codeFlowTypes_1.createKeyForReference)(node));
|
|
2840
2855
|
}
|
|
2856
|
+
// Key presence changes the containing TypedDict's narrowed type.
|
|
2857
|
+
if (node.nodeType === 27 /* ParseNodeType.Index */ && (0, codeFlowTypes_1.isCodeFlowSupportedForReference)(node.d.leftExpr)) {
|
|
2858
|
+
this._currentScopeCodeFlowExpressions.add((0, codeFlowTypes_1.createKeyForReference)(node.d.leftExpr));
|
|
2859
|
+
}
|
|
2841
2860
|
if (unbound) {
|
|
2842
2861
|
flowNode.flags |= codeFlowTypes_1.FlowFlags.Unbind;
|
|
2843
2862
|
}
|