@zzzen/pyright-internal 1.2.0-dev.20260920 → 1.2.0-dev.20260927

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.
Files changed (150) hide show
  1. package/dist/analyzer/checker.d.ts +2 -1
  2. package/dist/analyzer/checker.js +15 -1
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/codeFlowEngine.js +9 -3
  5. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  6. package/dist/analyzer/operations.js +1 -1
  7. package/dist/analyzer/operations.js.map +1 -1
  8. package/dist/analyzer/overloadResult.d.ts +15 -0
  9. package/dist/analyzer/overloadResult.js +233 -0
  10. package/dist/analyzer/overloadResult.js.map +1 -0
  11. package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
  12. package/dist/analyzer/overloadResultAdmission.js +448 -0
  13. package/dist/analyzer/overloadResultAdmission.js.map +1 -0
  14. package/dist/analyzer/overloadResultController.d.ts +227 -0
  15. package/dist/analyzer/overloadResultController.js +904 -0
  16. package/dist/analyzer/overloadResultController.js.map +1 -0
  17. package/dist/analyzer/overloadResultSelector.d.ts +24 -0
  18. package/dist/analyzer/overloadResultSelector.js +131 -0
  19. package/dist/analyzer/overloadResultSelector.js.map +1 -0
  20. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  21. package/dist/analyzer/parseTreeUtils.js +4 -0
  22. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  23. package/dist/analyzer/program.d.ts +13 -2
  24. package/dist/analyzer/program.js +98 -46
  25. package/dist/analyzer/program.js.map +1 -1
  26. package/dist/analyzer/protocols.d.ts +1 -0
  27. package/dist/analyzer/protocols.js +286 -6
  28. package/dist/analyzer/protocols.js.map +1 -1
  29. package/dist/analyzer/sourceFile.d.ts +6 -2
  30. package/dist/analyzer/sourceFile.js +9 -3
  31. package/dist/analyzer/sourceFile.js.map +1 -1
  32. package/dist/analyzer/tracePrinter.js +4 -0
  33. package/dist/analyzer/tracePrinter.js.map +1 -1
  34. package/dist/analyzer/typeCacheUtils.d.ts +4 -0
  35. package/dist/analyzer/typeCacheUtils.js +36 -0
  36. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  37. package/dist/analyzer/typeComplexity.js +2 -0
  38. package/dist/analyzer/typeComplexity.js.map +1 -1
  39. package/dist/analyzer/typeEvaluator.d.ts +10 -1
  40. package/dist/analyzer/typeEvaluator.js +351 -11
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +30 -1
  43. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  44. package/dist/analyzer/typeGuards.d.ts +1 -1
  45. package/dist/analyzer/typePrinter.js +8 -0
  46. package/dist/analyzer/typePrinter.js.map +1 -1
  47. package/dist/analyzer/typeUtils.d.ts +1 -1
  48. package/dist/analyzer/typeUtils.js +29 -26
  49. package/dist/analyzer/typeUtils.js.map +1 -1
  50. package/dist/analyzer/typeWalker.d.ts +2 -1
  51. package/dist/analyzer/typeWalker.js +12 -0
  52. package/dist/analyzer/typeWalker.js.map +1 -1
  53. package/dist/analyzer/typedDicts.js +1 -0
  54. package/dist/analyzer/typedDicts.js.map +1 -1
  55. package/dist/analyzer/types.d.ts +16 -2
  56. package/dist/analyzer/types.js +94 -2
  57. package/dist/analyzer/types.js.map +1 -1
  58. package/dist/common/configOptions.d.ts +1 -0
  59. package/dist/common/configOptions.js +2 -0
  60. package/dist/common/configOptions.js.map +1 -1
  61. package/dist/languageServerBase.js +2 -2
  62. package/dist/languageServerBase.js.map +1 -1
  63. package/dist/languageService/callHierarchyProvider.js +3 -2
  64. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  65. package/dist/languageService/completionProvider.js +4 -1
  66. package/dist/languageService/completionProvider.js.map +1 -1
  67. package/dist/tests/config.test.js +48 -0
  68. package/dist/tests/config.test.js.map +1 -1
  69. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
  70. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
  71. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
  72. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
  73. package/dist/tests/harness/fourslash/testState.js +10 -9
  74. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  75. package/dist/tests/languageServer.test.js +129 -0
  76. package/dist/tests/languageServer.test.js.map +1 -1
  77. package/dist/tests/overloadResult.test.d.ts +1 -0
  78. package/dist/tests/overloadResult.test.js +182 -0
  79. package/dist/tests/overloadResult.test.js.map +1 -0
  80. package/dist/tests/overloadResultController.test.d.ts +1 -0
  81. package/dist/tests/overloadResultController.test.js +2146 -0
  82. package/dist/tests/overloadResultController.test.js.map +1 -0
  83. package/dist/tests/protocolRequirement.test.d.ts +1 -0
  84. package/dist/tests/protocolRequirement.test.js +122 -0
  85. package/dist/tests/protocolRequirement.test.js.map +1 -0
  86. package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
  87. package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
  88. package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
  89. package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
  90. package/dist/tests/protocolRequirementBoundary.test.js +119 -0
  91. package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
  92. package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
  93. package/dist/tests/protocolRequirementComplexity.test.js +159 -0
  94. package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
  95. package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
  96. package/dist/tests/protocolRequirementCycles.test.js +160 -0
  97. package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
  98. package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
  99. package/dist/tests/protocolRequirementGeneral.test.js +120 -0
  100. package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
  101. package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
  102. package/dist/tests/protocolRequirementInstances.test.js +164 -0
  103. package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
  104. package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
  105. package/dist/tests/protocolRequirementListStub.test.js +244 -0
  106. package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
  107. package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
  108. package/dist/tests/protocolRequirementPopulated.test.js +172 -0
  109. package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
  110. package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
  111. package/dist/tests/protocolRequirementRecursive.test.js +118 -0
  112. package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
  113. package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
  114. package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
  115. package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
  116. package/dist/tests/protocolRequirementState.test.d.ts +1 -0
  117. package/dist/tests/protocolRequirementState.test.js +161 -0
  118. package/dist/tests/protocolRequirementState.test.js.map +1 -0
  119. package/dist/tests/testState.test.js +64 -0
  120. package/dist/tests/testState.test.js.map +1 -1
  121. package/dist/tests/testUtils.d.ts +6 -1
  122. package/dist/tests/testUtils.js +11 -6
  123. package/dist/tests/testUtils.js.map +1 -1
  124. package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
  125. package/dist/tests/typeCacheIsolation.test.js +109 -0
  126. package/dist/tests/typeCacheIsolation.test.js.map +1 -0
  127. package/dist/tests/typeCacheUtils.test.js +59 -0
  128. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  129. package/dist/tests/typeEvaluator1.test.js +5 -1
  130. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  131. package/dist/tests/typeEvaluator4.test.js +6 -2
  132. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator5.test.js +25 -0
  134. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator6.test.js +7 -23
  136. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator7.test.js +237 -2
  138. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  139. package/dist/tests/typeServer/typeServer.inProc.test.js +86 -0
  140. package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
  141. package/dist/tests/typeUtils.test.js +36 -0
  142. package/dist/tests/typeUtils.test.js.map +1 -1
  143. package/dist/trace/nativeAdapter.js +1 -5
  144. package/dist/trace/nativeAdapter.js.map +1 -1
  145. package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
  146. package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
  147. package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
  148. package/dist/typeServer/typeServerConversionUtils.js +9 -0
  149. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  150. package/package.json +1 -1
@@ -42,9 +42,15 @@ var __importStar = (this && this.__importStar) || (function () {
42
42
  };
43
43
  })();
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
+ const assert = __importStar(require("assert"));
46
+ const constraintTracker_1 = require("../analyzer/constraintTracker");
47
+ const protocols_1 = require("../analyzer/protocols");
48
+ const types_1 = require("../analyzer/types");
45
49
  const configOptions_1 = require("../common/configOptions");
50
+ const diagnostic_1 = require("../common/diagnostic");
46
51
  const pythonVersion_1 = require("../common/pythonVersion");
47
52
  const uri_1 = require("../common/uri/uri");
53
+ const testState_1 = require("./harness/fourslash/testState");
48
54
  const TestUtils = __importStar(require("./testUtils"));
49
55
  test('GenericType1', () => {
50
56
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['genericType1.py']);
@@ -376,7 +382,236 @@ test('Protocol35', () => {
376
382
  });
377
383
  test('Protocol36', () => {
378
384
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['protocol36.py']);
379
- TestUtils.validateResults(analysisResults, 0);
385
+ TestUtils.validateResults(analysisResults, 7);
386
+ const protocolErrors = analysisResults[0].errors.filter((error) => error.message.includes('FullNestedSequence[SupportsArray]'));
387
+ expect(protocolErrors).toHaveLength(4);
388
+ const unionCallError = protocolErrors.filter((error) => error.message.startsWith('Argument of type'));
389
+ expect(unionCallError).toHaveLength(1);
390
+ expect(unionCallError[0].message).toContain('__getitem__');
391
+ expect(unionCallError[0].message).not.toContain('__iter__');
392
+ expect(protocolErrors.some((error) => error.message.includes('__iter__'))).toBe(true);
393
+ expect(protocolErrors.some((error) => error.message.includes('__reversed__'))).toBe(true);
394
+ });
395
+ test('Protocol36Overloads', () => {
396
+ const analysisResults = TestUtils.typeAnalyzeSampleFiles(['protocol36Overloads.py']);
397
+ TestUtils.validateResults(analysisResults, 0);
398
+ });
399
+ test('Protocol36Slice', () => {
400
+ const analysisResults = TestUtils.typeAnalyzeSampleFiles(['protocol36Slice.py']);
401
+ TestUtils.validateResults(analysisResults, 0);
402
+ });
403
+ test('Protocol36UncertainElementType', () => {
404
+ const code = `
405
+ // @filename: test.py
406
+ //// from collections.abc import Iterator
407
+ //// from typing import Any, cast, Protocol, TypeVar
408
+ ////
409
+ //// T_co = TypeVar("T_co", covariant=True)
410
+ ////
411
+ //// class SupportsArray(Protocol):
412
+ //// def __array__(self) -> object: ...
413
+ ////
414
+ //// class FullNestedSequence(Protocol[T_co]):
415
+ //// def __len__(self, /) -> int: ...
416
+ //// def __getitem__(self, index: int, /) -> T_co | "FullNestedSequence[T_co]": ...
417
+ //// def __contains__(self, value: object, /) -> bool: ...
418
+ //// def __iter__(self, /) -> Iterator[T_co | "FullNestedSequence[T_co]"]: ...
419
+ //// def __reversed__(self, /) -> Iterator[T_co | "FullNestedSequence[T_co]"]: ...
420
+ //// def count(self, value: Any, /) -> int: ...
421
+ //// def index(self, value: Any, /) -> int: ...
422
+ ////
423
+ //// def identity[T](value: T) -> T:
424
+ //// return value
425
+ ////
426
+ //// def check[T](value: T):
427
+ //// source = /*source*/[value]
428
+ //// nested_source = /*nestedSource*/[[value]]
429
+ //// concrete_source = /*concreteSource*/[1]
430
+ //// generic_callable_source = /*genericCallableSource*/[identity]
431
+ //// destination = /*destination*/cast(FullNestedSequence[SupportsArray], None)
432
+ `;
433
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
434
+ const sourceNode = (0, testState_1.getNodeAtMarker)(state, 'source');
435
+ const nestedSourceNode = (0, testState_1.getNodeAtMarker)(state, 'nestedSource');
436
+ const concreteSourceNode = (0, testState_1.getNodeAtMarker)(state, 'concreteSource');
437
+ const genericCallableSourceNode = (0, testState_1.getNodeAtMarker)(state, 'genericCallableSource');
438
+ const destinationNode = (0, testState_1.getNodeAtMarker)(state, 'destination');
439
+ assert.strictEqual(sourceNode.nodeType, 34 /* ParseNodeType.List */);
440
+ assert.strictEqual(nestedSourceNode.nodeType, 34 /* ParseNodeType.List */);
441
+ assert.strictEqual(concreteSourceNode.nodeType, 34 /* ParseNodeType.List */);
442
+ assert.strictEqual(genericCallableSourceNode.nodeType, 34 /* ParseNodeType.List */);
443
+ assert.strictEqual(destinationNode.nodeType, 38 /* ParseNodeType.Name */);
444
+ assert.strictEqual(destinationNode.parent?.nodeType, 9 /* ParseNodeType.Call */);
445
+ const sourceType = state.program.evaluator.getTypeOfExpression(sourceNode).type;
446
+ const nestedSourceType = state.program.evaluator.getTypeOfExpression(nestedSourceNode).type;
447
+ const concreteSourceType = state.program.evaluator.getTypeOfExpression(concreteSourceNode).type;
448
+ const genericCallableSourceType = state.program.evaluator.getTypeOfExpression(genericCallableSourceNode).type;
449
+ const destinationType = state.program.evaluator.getTypeOfExpression(destinationNode.parent).type;
450
+ assert.ok((0, types_1.isClassInstance)(sourceType));
451
+ assert.ok((0, types_1.isClassInstance)(nestedSourceType));
452
+ assert.ok((0, types_1.isClassInstance)(concreteSourceType));
453
+ assert.ok((0, types_1.isClassInstance)(genericCallableSourceType));
454
+ assert.ok((0, types_1.isClassInstance)(destinationType));
455
+ const typeVar = types_1.TypeVarType.cloneAsUnificationVar(types_1.TypeVarType.createInstance('T'));
456
+ const sourceWithUnificationTypeVar = types_1.ClassType.specialize(concreteSourceType, [typeVar]);
457
+ const listOfAny = types_1.ClassType.specialize(concreteSourceType, [types_1.AnyType.create()]);
458
+ const listOfUnknown = types_1.ClassType.specialize(concreteSourceType, [types_1.UnknownType.create()]);
459
+ const uncertainSources = [sourceType, sourceWithUnificationTypeVar, listOfAny, listOfUnknown];
460
+ for (const uncertainSource of uncertainSources) {
461
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, destinationType, uncertainSource, undefined, 0 /* AssignTypeFlags.Default */, 0), undefined);
462
+ }
463
+ const uncertainElements = [sourceType.priv.typeArgs[0], typeVar, types_1.AnyType.create(), types_1.UnknownType.create()];
464
+ for (const uncertainElement of uncertainElements) {
465
+ const constraints = new constraintTracker_1.ConstraintTracker();
466
+ constraints.setBounds(typeVar, concreteSourceType.priv.typeArgs[0]);
467
+ const originalConstraints = constraints.clone();
468
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, types_1.ClassType.specialize(destinationType, [uncertainElement]), concreteSourceType, constraints, 0 /* AssignTypeFlags.Default */, 0), undefined);
469
+ assert.ok(constraints.isSame(originalConstraints));
470
+ }
471
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, destinationType, concreteSourceType, undefined, 0 /* AssignTypeFlags.Default */, 0), '__getitem__');
472
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, destinationType, nestedSourceType, undefined, 0 /* AssignTypeFlags.Default */, 0), '__getitem__');
473
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, destinationType, genericCallableSourceType, undefined, 0 /* AssignTypeFlags.Default */, 0), '__getitem__');
474
+ const getFastCacheEntryCount = () => {
475
+ const protocolCache = concreteSourceType.shared.protocolCompatibility;
476
+ return protocolCache
477
+ ? Array.from(protocolCache.values()).reduce((count, entries) => count + entries.filter((entry) => entry.isFastRejection).length, 0)
478
+ : 0;
479
+ };
480
+ assert.strictEqual((0, protocols_1.assignClassToProtocol)(state.program.evaluator, types_1.ClassType.cloneAsInstantiable(destinationType), concreteSourceType, undefined, undefined, 0 /* AssignTypeFlags.Default */, 0), false);
481
+ assert.strictEqual(getFastCacheEntryCount(), 1);
482
+ assert.strictEqual((0, protocols_1.assignClassToProtocol)(state.program.evaluator, types_1.ClassType.cloneAsInstantiable(destinationType), concreteSourceType, new diagnostic_1.DiagnosticAddendum(), undefined, 0 /* AssignTypeFlags.Default */, 0), false);
483
+ assert.strictEqual(getFastCacheEntryCount(), 0);
484
+ for (const gradualList of [listOfAny, listOfUnknown]) {
485
+ const nestedList = types_1.ClassType.specialize(concreteSourceType, [gradualList]);
486
+ const originalTypeText = state.program.evaluator.printType(nestedList);
487
+ assert.strictEqual((0, protocols_1.tryFastRejectSequenceProtocol)(state.program.evaluator, destinationType, nestedList, undefined, 0 /* AssignTypeFlags.Default */, 0), undefined);
488
+ assert.strictEqual((0, protocols_1.assignClassToProtocol)(state.program.evaluator, types_1.ClassType.cloneAsInstantiable(destinationType), nestedList, new diagnostic_1.DiagnosticAddendum(), undefined, 0 /* AssignTypeFlags.Default */, 0), true);
489
+ assert.strictEqual(state.program.evaluator.printType(nestedList), originalTypeText);
490
+ }
491
+ });
492
+ test.each([false, true])('Protocol36CacheReuse positiveFirst=%s', (positiveFirst) => {
493
+ const code = `
494
+ // @filename: test.py
495
+ //// from collections.abc import Iterator
496
+ //// from typing import Protocol, TypeVar
497
+ ////
498
+ //// T_co = TypeVar("T_co", covariant=True)
499
+ ////
500
+ //// class NestedSequence(Protocol[T_co]):
501
+ //// def __len__(self, /) -> int: ...
502
+ //// def __getitem__(self, index: int, /) -> T_co | "NestedSequence[T_co]": ...
503
+ //// def __iter__(self, /) -> Iterator[T_co | "NestedSequence[T_co]"]: ...
504
+ ////
505
+ //// def check(source: list[int], destination: NestedSequence[str]):
506
+ //// /*source*/source
507
+ //// /*destination*/destination
508
+ `;
509
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
510
+ const evaluator = state.program.evaluator;
511
+ const sourceNode = (0, testState_1.getNodeAtMarker)(state, 'source');
512
+ const destinationNode = (0, testState_1.getNodeAtMarker)(state, 'destination');
513
+ assert.strictEqual(sourceNode.nodeType, 38 /* ParseNodeType.Name */);
514
+ assert.strictEqual(destinationNode.nodeType, 38 /* ParseNodeType.Name */);
515
+ const sourceType = evaluator.getTypeOfExpression(sourceNode).type;
516
+ const destinationType = evaluator.getTypeOfExpression(destinationNode).type;
517
+ assert.ok((0, types_1.isClassInstance)(sourceType));
518
+ assert.ok((0, types_1.isClassInstance)(destinationType));
519
+ const elementType = sourceType.priv.typeArgs[0];
520
+ const rejectedType = types_1.ClassType.cloneAsInstantiable(destinationType);
521
+ const acceptedType = types_1.ClassType.specialize(rejectedType, [elementType]);
522
+ const typeParam = destinationType.shared.typeParams[0];
523
+ const genericType = types_1.ClassType.specialize(rejectedType, [typeParam]);
524
+ const constraints = new constraintTracker_1.ConstraintTracker();
525
+ constraints.setBounds(typeParam, elementType);
526
+ const originalConstraints = constraints.clone();
527
+ const assign = (destination, diag, tracker = constraints) => (0, protocols_1.assignClassToProtocol)(evaluator, destination, sourceType, diag, tracker, 0 /* AssignTypeFlags.Default */, 0);
528
+ if (positiveFirst) {
529
+ assert.strictEqual(assign(acceptedType), true);
530
+ }
531
+ assert.strictEqual(assign(rejectedType), false);
532
+ assert.ok(constraints.isSame(originalConstraints));
533
+ assert.strictEqual(assign(rejectedType), false);
534
+ assert.ok(constraints.isSame(originalConstraints));
535
+ assert.strictEqual(assign(acceptedType), true);
536
+ const diagnostics = new diagnostic_1.DiagnosticAddendum();
537
+ assert.strictEqual(assign(rejectedType, diagnostics), false);
538
+ expect(diagnostics.getString()).toContain('"int" is not assignable to "str"');
539
+ assert.ok(constraints.isSame(originalConstraints));
540
+ assert.strictEqual(assign(rejectedType), false);
541
+ assert.strictEqual(assign(acceptedType), true);
542
+ for (let attempt = 0; attempt < 2; attempt++) {
543
+ const inferredConstraints = new constraintTracker_1.ConstraintTracker();
544
+ assert.strictEqual(assign(genericType, undefined, inferredConstraints), true);
545
+ assert.strictEqual(evaluator.printType(evaluator.solveAndApplyConstraints(typeParam, inferredConstraints)), 'int');
546
+ }
547
+ });
548
+ test.each([
549
+ ['list[int]', false],
550
+ ['list[list[int]]', false],
551
+ ['list[ArrayImpl]', true],
552
+ ['list[list[ArrayImpl]]', true],
553
+ ['list[list[Any]]', true],
554
+ ['list[Callable[[int], int]]', false],
555
+ ['list[Callable[[T], T]]', false],
556
+ ['list[tuple[T, int]]', false],
557
+ ])('Protocol36StructuralComparison %s', (annotation, expected) => {
558
+ const compare = (withDiagnostics) => {
559
+ const code = `
560
+ // @filename: test.py
561
+ //// from collections.abc import Callable, Iterator
562
+ //// from typing import Any, Protocol, TypeVar
563
+ ////
564
+ //// T_co = TypeVar("T_co", covariant=True)
565
+ ////
566
+ //// class SupportsArray(Protocol):
567
+ //// def __array__(self) -> object: ...
568
+ ////
569
+ //// class ArrayImpl:
570
+ //// def __array__(self) -> object: ...
571
+ ////
572
+ //// class NestedSequence(Protocol[T_co]):
573
+ //// def __len__(self, /) -> int: ...
574
+ //// def __getitem__(self, index: int, /) -> T_co | "NestedSequence[T_co]": ...
575
+ //// def __iter__(self, /) -> Iterator[T_co | "NestedSequence[T_co]"]: ...
576
+ ////
577
+ //// def check[T](source: ${annotation}, destination: NestedSequence[SupportsArray], valid: list[ArrayImpl]):
578
+ //// /*source*/source
579
+ //// /*destination*/destination
580
+ //// /*valid*/valid
581
+ `;
582
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
583
+ const evaluator = state.program.evaluator;
584
+ const types = ['source', 'destination', 'valid'].map((marker) => {
585
+ const node = (0, testState_1.getNodeAtMarker)(state, marker);
586
+ assert.strictEqual(node.nodeType, 38 /* ParseNodeType.Name */);
587
+ const type = evaluator.getTypeOfExpression(node).type;
588
+ assert.ok((0, types_1.isClassInstance)(type));
589
+ return type;
590
+ });
591
+ const [sourceType, destinationType, validType] = types;
592
+ const destination = types_1.ClassType.cloneAsInstantiable(destinationType);
593
+ const typeParam = destination.shared.typeParams[0];
594
+ const constraints = new constraintTracker_1.ConstraintTracker();
595
+ const originalConstraints = constraints.clone();
596
+ assert.strictEqual(evaluator.isSpeculativeModeInUse(undefined), false);
597
+ const diagnostics = withDiagnostics ? new diagnostic_1.DiagnosticAddendum() : undefined;
598
+ const compatible = (0, protocols_1.assignClassToProtocol)(evaluator, destination, sourceType, diagnostics, constraints, 0 /* AssignTypeFlags.Default */, 0);
599
+ assert.strictEqual(compatible, expected);
600
+ assert.ok(constraints.isSame(originalConstraints));
601
+ if (diagnostics && !expected) {
602
+ expect(diagnostics.getString()).not.toBe('');
603
+ }
604
+ const genericDestination = types_1.ClassType.specialize(destination, [typeParam]);
605
+ const inferredTypes = [];
606
+ for (let attempt = 0; attempt < 2; attempt++) {
607
+ const inferredConstraints = new constraintTracker_1.ConstraintTracker();
608
+ assert.strictEqual((0, protocols_1.assignClassToProtocol)(evaluator, genericDestination, validType, undefined, inferredConstraints, 0 /* AssignTypeFlags.Default */, 0), true);
609
+ inferredTypes.push(evaluator.printType(evaluator.solveAndApplyConstraints(typeParam, inferredConstraints)));
610
+ }
611
+ expect(inferredTypes).toEqual(['ArrayImpl', 'ArrayImpl']);
612
+ return { compatible, inferredTypes };
613
+ };
614
+ expect(compare(false)).toEqual(compare(true));
380
615
  });
381
616
  test('Protocol37', () => {
382
617
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['protocol37.py']);
@@ -771,7 +1006,7 @@ test('exceptionGroup1', () => {
771
1006
  const configOptions = new configOptions_1.ConfigOptions(uri_1.Uri.empty());
772
1007
  configOptions.defaultPythonVersion = pythonVersion_1.pythonVersion3_10;
773
1008
  const analysisResults1 = TestUtils.typeAnalyzeSampleFiles(['exceptionGroup1.py'], configOptions);
774
- TestUtils.validateResults(analysisResults1, 34);
1009
+ TestUtils.validateResults(analysisResults1, 46);
775
1010
  configOptions.defaultPythonVersion = pythonVersion_1.pythonVersion3_11;
776
1011
  const analysisResults2 = TestUtils.typeAnalyzeSampleFiles(['exceptionGroup1.py'], configOptions);
777
1012
  TestUtils.validateResults(analysisResults2, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"typeEvaluator7.test.js","sourceRoot":"","sources":["../../../../../src/tests/typeEvaluator7.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeEvaluator7.test.js","sourceRoot":"","sources":["../../../../../src/tests/typeEvaluator7.test.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  const assert_1 = __importDefault(require("assert"));
23
+ const types_1 = require("../../analyzer/types");
24
+ const parseNodes_1 = require("../../parser/parseNodes");
25
+ const programWrapper_1 = require("../../typeServer/programWrapper");
23
26
  const typeServerProtocol_1 = require("../../typeServer/protocol/typeServerProtocol");
27
+ const typeServerConversionUtils_1 = require("../../typeServer/typeServerConversionUtils");
28
+ const testState_1 = require("../harness/fourslash/testState");
24
29
  const inProcTypeServerTestUtils_1 = require("./inProcTypeServerTestUtils");
25
30
  jest.setTimeout(120000);
26
31
  /** Extract the class name from a protocol Type, if it's a ClassType with a regular declaration. */
@@ -34,6 +39,13 @@ function getClassTypeName(type) {
34
39
  }
35
40
  return undefined;
36
41
  }
42
+ function getListElement(type) {
43
+ (0, assert_1.default)(type.kind === 3 /* TypeServerProtocol.TypeKind.Class */);
44
+ assert_1.default.strictEqual(getClassTypeName(type), 'list');
45
+ assert_1.default.strictEqual(type.flags, 2 /* TypeServerProtocol.TypeFlags.Instance */ | 32 /* TypeServerProtocol.TypeFlags.Generic */);
46
+ (0, assert_1.default)(type.typeArgs && type.typeArgs.length === 1);
47
+ return type.typeArgs[0];
48
+ }
37
49
  describe('TypeServer in-proc protocol', () => {
38
50
  beforeAll(async () => {
39
51
  await (0, inProcTypeServerTestUtils_1.initializeDependenciesForInProcTests)();
@@ -173,6 +185,80 @@ describe('TypeServer in-proc protocol', () => {
173
185
  assert_1.default.strictEqual(getClassTypeName(type), 'int');
174
186
  });
175
187
  });
188
+ test('getComputedType serializes automatically retained overload alternatives', async () => {
189
+ const code = `
190
+ // @filename: main.py
191
+ //// from typing import Any, overload
192
+ ////
193
+ //// @overload
194
+ //// def choose(value: list[int]) -> list[list[int]]: ...
195
+ //// @overload
196
+ //// def choose(value: list[str]) -> list[list[str]]: ...
197
+ //// def choose(value: Any) -> Any: ...
198
+ ////
199
+ //// def ambiguous(value: list[Any]):
200
+ //// [|/*ambiguous*/result|] = choose(value)
201
+ ////
202
+ //// def concrete(value: list[int]):
203
+ //// [|/*concrete*/result|] = choose(value)
204
+ `;
205
+ await (0, inProcTypeServerTestUtils_1.withInProcTypeServer)(code, async (context) => {
206
+ await context.openFileForMarker('ambiguous');
207
+ await context.refreshSnapshot();
208
+ const type = await context.sendRequestWithSnapshot(typeServerProtocol_1.TypeServerProtocol.GetComputedTypeRequest.type, {
209
+ arg: context.getNodeForMarker('ambiguous'),
210
+ });
211
+ (0, assert_1.default)(type?.kind === 10 /* TypeServerProtocol.TypeKind.OverloadResult */, JSON.stringify(type));
212
+ assert_1.default.strictEqual(type.flags, 2 /* TypeServerProtocol.TypeFlags.Instance */);
213
+ assert_1.default.strictEqual(type.uncertaintyKind, 'any');
214
+ assert_1.default.strictEqual(type.candidates.length, 2);
215
+ assert_1.default.deepStrictEqual(type.candidates.map((candidate) => getClassTypeName(getListElement(getListElement(candidate)))), ['int', 'str']);
216
+ (0, assert_1.default)(type.baselineType.kind === 9 /* TypeServerProtocol.TypeKind.TypeReference */);
217
+ assert_1.default.strictEqual(type.baselineType.typeReferenceId, type.candidates[0].id);
218
+ const concrete = await context.sendRequestWithSnapshot(typeServerProtocol_1.TypeServerProtocol.GetComputedTypeRequest.type, {
219
+ arg: context.getNodeForMarker('concrete'),
220
+ });
221
+ (0, assert_1.default)(concrete);
222
+ assert_1.default.strictEqual(getClassTypeName(getListElement(getListElement(concrete))), 'int');
223
+ });
224
+ });
225
+ test('ProtocolTypeFactory preserves nested unknown alternatives and shared references', () => {
226
+ const state = (0, testState_1.parseAndGetTestState)(`
227
+ // @filename: main.py
228
+ //// def example(integers: list[int], strings: list[str]):
229
+ //// /*integers*/integers
230
+ //// /*strings*/strings
231
+ `).state;
232
+ try {
233
+ state.program.analyze();
234
+ const integersNode = (0, testState_1.getNodeAtMarker)(state, 'integers');
235
+ const stringsNode = (0, testState_1.getNodeAtMarker)(state, 'strings');
236
+ (0, assert_1.default)((0, parseNodes_1.isExpressionNode)(integersNode) && (0, parseNodes_1.isExpressionNode)(stringsNode));
237
+ const evaluator = state.program.evaluator;
238
+ (0, assert_1.default)(evaluator);
239
+ const integers = evaluator.getType(integersNode);
240
+ const strings = evaluator.getType(stringsNode);
241
+ (0, assert_1.default)(integers && (0, types_1.isClass)(integers) && strings && (0, types_1.isClass)(strings));
242
+ // Unknown ambiguity is transportable without widening automatic Any-only admission.
243
+ const carrier = types_1.OverloadResultType.create([integers, strings], integers, 1 /* TypeCategory.Unknown */);
244
+ const nested = types_1.ClassType.specialize(integers, [carrier]);
245
+ const factory = new typeServerConversionUtils_1.ProtocolTypeFactory((0, programWrapper_1.makeProgram)(state.program), state.configOptions.getDefaultExecEnvironment().pythonVersion, integersNode);
246
+ const type = getListElement(factory.getType(nested));
247
+ (0, assert_1.default)(type.kind === 10 /* TypeServerProtocol.TypeKind.OverloadResult */);
248
+ assert_1.default.strictEqual(type.flags, 2 /* TypeServerProtocol.TypeFlags.Instance */);
249
+ assert_1.default.strictEqual(type.uncertaintyKind, 'unknown');
250
+ assert_1.default.strictEqual(type.candidates.length, 2);
251
+ assert_1.default.deepStrictEqual(type.candidates.map((candidate) => getClassTypeName(getListElement(candidate))), ['int', 'str']);
252
+ (0, assert_1.default)(type.baselineType.kind === 9 /* TypeServerProtocol.TypeKind.TypeReference */);
253
+ assert_1.default.strictEqual(type.baselineType.typeReferenceId, type.candidates[0].id);
254
+ const repeated = factory.getType(carrier);
255
+ (0, assert_1.default)(repeated.kind === 9 /* TypeServerProtocol.TypeKind.TypeReference */);
256
+ assert_1.default.strictEqual(repeated.typeReferenceId, type.id);
257
+ }
258
+ finally {
259
+ state.dispose();
260
+ }
261
+ });
176
262
  test('getExpectedType returns a type for a node', async () => {
177
263
  const code = `
178
264
  // @filename: main.py
@@ -1 +1 @@
1
- {"version":3,"file":"typeServer.inProc.test.js","sourceRoot":"","sources":["../../../../../../src/tests/typeServer/typeServer.inProc.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeServer.inProc.test.js","sourceRoot":"","sources":["../../../../../../src/tests/typeServer/typeServer.inProc.test.ts"],"names":[],"mappings":"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"}