@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.
- package/dist/analyzer/checker.d.ts +2 -1
- package/dist/analyzer/checker.js +15 -1
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +9 -3
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/operations.js +1 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/overloadResult.d.ts +15 -0
- package/dist/analyzer/overloadResult.js +233 -0
- package/dist/analyzer/overloadResult.js.map +1 -0
- package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
- package/dist/analyzer/overloadResultAdmission.js +448 -0
- package/dist/analyzer/overloadResultAdmission.js.map +1 -0
- package/dist/analyzer/overloadResultController.d.ts +227 -0
- package/dist/analyzer/overloadResultController.js +904 -0
- package/dist/analyzer/overloadResultController.js.map +1 -0
- package/dist/analyzer/overloadResultSelector.d.ts +24 -0
- package/dist/analyzer/overloadResultSelector.js +131 -0
- package/dist/analyzer/overloadResultSelector.js.map +1 -0
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +4 -0
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/program.d.ts +13 -2
- package/dist/analyzer/program.js +98 -46
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -0
- package/dist/analyzer/protocols.js +286 -6
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +6 -2
- package/dist/analyzer/sourceFile.js +9 -3
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +4 -0
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +4 -0
- package/dist/analyzer/typeCacheUtils.js +36 -0
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeComplexity.js +2 -0
- package/dist/analyzer/typeComplexity.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +10 -1
- package/dist/analyzer/typeEvaluator.js +351 -11
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +30 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +8 -0
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +29 -26
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.d.ts +2 -1
- package/dist/analyzer/typeWalker.js +12 -0
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +1 -0
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +16 -2
- package/dist/analyzer/types.js +94 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +2 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +3 -2
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +4 -1
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/tests/config.test.js +48 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +10 -9
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/languageServer.test.js +129 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/overloadResult.test.d.ts +1 -0
- package/dist/tests/overloadResult.test.js +182 -0
- package/dist/tests/overloadResult.test.js.map +1 -0
- package/dist/tests/overloadResultController.test.d.ts +1 -0
- package/dist/tests/overloadResultController.test.js +2146 -0
- package/dist/tests/overloadResultController.test.js.map +1 -0
- package/dist/tests/protocolRequirement.test.d.ts +1 -0
- package/dist/tests/protocolRequirement.test.js +122 -0
- package/dist/tests/protocolRequirement.test.js.map +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
- package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
- package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
- package/dist/tests/protocolRequirementBoundary.test.js +119 -0
- package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
- package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
- package/dist/tests/protocolRequirementComplexity.test.js +159 -0
- package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
- package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
- package/dist/tests/protocolRequirementCycles.test.js +160 -0
- package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
- package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
- package/dist/tests/protocolRequirementGeneral.test.js +120 -0
- package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
- package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
- package/dist/tests/protocolRequirementInstances.test.js +164 -0
- package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
- package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
- package/dist/tests/protocolRequirementListStub.test.js +244 -0
- package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
- package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
- package/dist/tests/protocolRequirementPopulated.test.js +172 -0
- package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
- package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
- package/dist/tests/protocolRequirementRecursive.test.js +118 -0
- package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
- package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
- package/dist/tests/protocolRequirementState.test.d.ts +1 -0
- package/dist/tests/protocolRequirementState.test.js +161 -0
- package/dist/tests/protocolRequirementState.test.js.map +1 -0
- package/dist/tests/testState.test.js +64 -0
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +6 -1
- package/dist/tests/testUtils.js +11 -6
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
- package/dist/tests/typeCacheIsolation.test.js +109 -0
- package/dist/tests/typeCacheIsolation.test.js.map +1 -0
- package/dist/tests/typeCacheUtils.test.js +59 -0
- package/dist/tests/typeCacheUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +5 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +6 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +25 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +7 -23
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +237 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeServer/typeServer.inProc.test.js +86 -0
- package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
- package/dist/tests/typeUtils.test.js +36 -0
- package/dist/tests/typeUtils.test.js.map +1 -1
- package/dist/trace/nativeAdapter.js +1 -5
- package/dist/trace/nativeAdapter.js.map +1 -1
- package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
- package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
- package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
- package/dist/typeServer/typeServerConversionUtils.js +9 -0
- package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
- 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,
|
|
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,
|
|
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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"}
|