@zzzen/pyright-internal 1.2.0-dev.20231231 → 1.2.0-dev.20240107

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 (54) hide show
  1. package/dist/analyzer/binder.js +12 -3
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +2 -0
  4. package/dist/analyzer/checker.js +133 -28
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +4 -4
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/constraintSolver.js +5 -1
  9. package/dist/analyzer/constraintSolver.js.map +1 -1
  10. package/dist/analyzer/namedTuples.js +13 -5
  11. package/dist/analyzer/namedTuples.js.map +1 -1
  12. package/dist/analyzer/protocols.d.ts +2 -0
  13. package/dist/analyzer/protocols.js +72 -3
  14. package/dist/analyzer/protocols.js.map +1 -1
  15. package/dist/analyzer/scopeUtils.d.ts +1 -0
  16. package/dist/analyzer/scopeUtils.js +12 -1
  17. package/dist/analyzer/scopeUtils.js.map +1 -1
  18. package/dist/analyzer/typeEvaluator.js +175 -94
  19. package/dist/analyzer/typeEvaluator.js.map +1 -1
  20. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  21. package/dist/analyzer/typeEvaluatorTypes.js +2 -0
  22. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  23. package/dist/analyzer/typeGuards.js +8 -4
  24. package/dist/analyzer/typeGuards.js.map +1 -1
  25. package/dist/analyzer/typePrinter.js +4 -2
  26. package/dist/analyzer/typePrinter.js.map +1 -1
  27. package/dist/analyzer/typeUtils.js +6 -1
  28. package/dist/analyzer/typeUtils.js.map +1 -1
  29. package/dist/analyzer/types.d.ts +1 -1
  30. package/dist/analyzer/types.js +3 -3
  31. package/dist/analyzer/types.js.map +1 -1
  32. package/dist/backgroundAnalysisBase.js +4 -3
  33. package/dist/backgroundAnalysisBase.js.map +1 -1
  34. package/dist/backgroundThreadBase.d.ts +1 -0
  35. package/dist/backgroundThreadBase.js +8 -1
  36. package/dist/backgroundThreadBase.js.map +1 -1
  37. package/dist/common/realFileSystem.js +44 -12
  38. package/dist/common/realFileSystem.js.map +1 -1
  39. package/dist/localization/localize.d.ts +27 -0
  40. package/dist/localization/localize.js +12 -0
  41. package/dist/localization/localize.js.map +1 -1
  42. package/dist/localization/package.nls.en-us.json +13 -1
  43. package/dist/tests/localizer.test.js +1 -1
  44. package/dist/tests/localizer.test.js.map +1 -1
  45. package/dist/tests/typeEvaluator1.test.js +1 -1
  46. package/dist/tests/typeEvaluator2.test.js +15 -3
  47. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  48. package/dist/tests/typeEvaluator3.test.js +3 -3
  49. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  50. package/dist/tests/typeEvaluator4.test.js +6 -2
  51. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  52. package/dist/tests/uri.test.js +7 -0
  53. package/dist/tests/uri.test.js.map +1 -1
  54. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export declare function getBuiltInScope(currentScope: Scope): Scope;
4
4
  export declare function getScopeForNode(node: ParseNode): Scope | undefined;
5
5
  export declare function getScopeHierarchy(node: ParseNode, stopScope?: Scope): Scope[] | undefined;
6
6
  export declare function findTopNodeInScope(node: ParseNode, scope: Scope): ParseNode | undefined;
7
+ export declare function isScopeContainedWithin(scope: Scope, potentialParentScope: Scope): boolean;
@@ -9,7 +9,7 @@
9
9
  * symbol tables.
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.findTopNodeInScope = exports.getScopeHierarchy = exports.getScopeForNode = exports.getBuiltInScope = void 0;
12
+ exports.isScopeContainedWithin = exports.findTopNodeInScope = exports.getScopeHierarchy = exports.getScopeForNode = exports.getBuiltInScope = void 0;
13
13
  const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
14
14
  const parseTreeUtils_1 = require("./parseTreeUtils");
15
15
  function getBuiltInScope(currentScope) {
@@ -70,4 +70,15 @@ function findTopNodeInScope(node, scope) {
70
70
  return undefined;
71
71
  }
72
72
  exports.findTopNodeInScope = findTopNodeInScope;
73
+ function isScopeContainedWithin(scope, potentialParentScope) {
74
+ let curScope = scope;
75
+ while (curScope) {
76
+ if (curScope.parent === potentialParentScope) {
77
+ return true;
78
+ }
79
+ curScope = curScope.parent;
80
+ }
81
+ return false;
82
+ }
83
+ exports.isScopeContainedWithin = isScopeContainedWithin;
73
84
  //# sourceMappingURL=scopeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scopeUtils.js","sourceRoot":"","sources":["../../../src/analyzer/scopeUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,yDAA8C;AAC9C,qDAA0D;AAG1D,SAAgB,eAAe,CAAC,YAAmB;IAC/C,uEAAuE;IACvE,0BAA0B;IAC1B,IAAI,YAAY,GAAG,YAAY,CAAC;IAEhC,OAAO,YAAY,CAAC,IAAI,8BAAsB,EAAE;QAC5C,YAAY,GAAG,YAAY,CAAC,MAAO,CAAC;KACvC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAVD,0CAUC;AAED,yEAAyE;AACzE,SAAgB,eAAe,CAAC,IAAe;IAC3C,MAAM,SAAS,GAAG,IAAA,uCAAsB,EAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAA,2BAAQ,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAHD,0CAGC;AAED,4EAA4E;AAC5E,gEAAgE;AAChE,+CAA+C;AAC/C,SAAgB,iBAAiB,CAAC,IAAe,EAAE,SAAiB;IAChE,MAAM,cAAc,GAAY,EAAE,CAAC;IACnC,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,OAAO,OAAO,EAAE;QACZ,MAAM,SAAS,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAA,2BAAQ,EAAC,SAAS,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACvF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;KAC9B;IAED,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;AAClD,CAAC;AAxBD,8CAwBC;AAED,4EAA4E;AAC5E,kCAAkC;AAClC,SAAgB,kBAAkB,CAAC,IAAe,EAAE,KAAY;IAC5D,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,QAA+B,CAAC;IACpC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,OAAO,EAAE;QACZ,IAAI,IAAA,2BAAQ,EAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YAC7B,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,UAAU,EAAE;YACnB,OAAO,QAAQ,CAAC;SACnB;QAED,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;KAC5B;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAjBD,gDAiBC"}
1
+ {"version":3,"file":"scopeUtils.js","sourceRoot":"","sources":["../../../src/analyzer/scopeUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,yDAA8C;AAC9C,qDAA0D;AAG1D,SAAgB,eAAe,CAAC,YAAmB;IAC/C,uEAAuE;IACvE,0BAA0B;IAC1B,IAAI,YAAY,GAAG,YAAY,CAAC;IAEhC,OAAO,YAAY,CAAC,IAAI,8BAAsB,EAAE;QAC5C,YAAY,GAAG,YAAY,CAAC,MAAO,CAAC;KACvC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAVD,0CAUC;AAED,yEAAyE;AACzE,SAAgB,eAAe,CAAC,IAAe;IAC3C,MAAM,SAAS,GAAG,IAAA,uCAAsB,EAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAA,2BAAQ,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAHD,0CAGC;AAED,4EAA4E;AAC5E,gEAAgE;AAChE,+CAA+C;AAC/C,SAAgB,iBAAiB,CAAC,IAAe,EAAE,SAAiB;IAChE,MAAM,cAAc,GAAY,EAAE,CAAC;IACnC,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,OAAO,OAAO,EAAE;QACZ,MAAM,SAAS,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAA,2BAAQ,EAAC,SAAS,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACvF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;KAC9B;IAED,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;AAClD,CAAC;AAxBD,8CAwBC;AAED,4EAA4E;AAC5E,kCAAkC;AAClC,SAAgB,kBAAkB,CAAC,IAAe,EAAE,KAAY;IAC5D,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,QAA+B,CAAC;IACpC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,OAAO,EAAE;QACZ,IAAI,IAAA,2BAAQ,EAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YAC7B,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,UAAU,EAAE;YACnB,OAAO,QAAQ,CAAC;SACnB;QAED,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;KAC5B;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAjBD,gDAiBC;AAED,SAAgB,sBAAsB,CAAC,KAAY,EAAE,oBAA2B;IAC5E,IAAI,QAAQ,GAAsB,KAAK,CAAC;IAExC,OAAO,QAAQ,EAAE;QACb,IAAI,QAAQ,CAAC,MAAM,KAAK,oBAAoB,EAAE;YAC1C,OAAO,IAAI,CAAC;SACf;QAED,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;KAC9B;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAZD,wDAYC"}
@@ -4383,6 +4383,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4383
4383
  }
4384
4384
  return indexTypeResult;
4385
4385
  }
4386
+ // If the list of type parameters includes a TypeVarTuple, we may need to adjust
4387
+ // the supplied type arguments to map to the type parameter list.
4386
4388
  function adjustTypeArgumentsForVariadicTypeVar(typeArgs, typeParameters, errorNode) {
4387
4389
  const variadicIndex = typeParameters.findIndex((param) => (0, types_1.isVariadicTypeVar)(param));
4388
4390
  // Do we need to adjust the type arguments to map to a variadic type
@@ -4485,26 +4487,24 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4485
4487
  ];
4486
4488
  }
4487
4489
  }
4488
- if (!typeParameters.some((typeVar) => typeVar.details.isVariadic && !typeVar.isVariadicInUnion)) {
4489
- let minTypeArgCount = typeParameters.length;
4490
- const firstNonDefaultParam = typeParameters.findIndex((param) => !!param.details.defaultType);
4491
- if (firstNonDefaultParam >= 0) {
4492
- minTypeArgCount = firstNonDefaultParam;
4493
- }
4494
- if (typeArgs.length > typeParameters.length) {
4495
- addError(localize_1.Localizer.Diagnostic.typeArgsTooMany().format({
4496
- name: printType(baseType),
4497
- expected: typeParameters.length,
4498
- received: typeArgs.length,
4499
- }), typeArgs[typeParameters.length].node);
4500
- }
4501
- else if (typeArgs.length < minTypeArgCount) {
4502
- addError(localize_1.Localizer.Diagnostic.typeArgsTooFew().format({
4503
- name: printType(baseType),
4504
- expected: typeParameters.length,
4505
- received: typeArgs.length,
4506
- }), node.items[node.items.length - 1]);
4507
- }
4490
+ let minTypeArgCount = typeParameters.length;
4491
+ const firstDefaultParamIndex = typeParameters.findIndex((param) => !!param.details.defaultType);
4492
+ if (firstDefaultParamIndex >= 0) {
4493
+ minTypeArgCount = firstDefaultParamIndex;
4494
+ }
4495
+ if (typeArgs.length > typeParameters.length) {
4496
+ addError(localize_1.Localizer.Diagnostic.typeArgsTooMany().format({
4497
+ name: printType(baseType),
4498
+ expected: typeParameters.length,
4499
+ received: typeArgs.length,
4500
+ }), typeArgs[typeParameters.length].node);
4501
+ }
4502
+ else if (typeArgs.length < minTypeArgCount) {
4503
+ addError(localize_1.Localizer.Diagnostic.typeArgsTooFew().format({
4504
+ name: printType(baseType),
4505
+ expected: typeParameters.length,
4506
+ received: typeArgs.length,
4507
+ }), node.items[node.items.length - 1]);
4508
4508
  }
4509
4509
  // Handle the mypy_extensions.FlexibleAlias type specially.
4510
4510
  if ((0, types_1.isInstantiableClass)(baseType) &&
@@ -4520,7 +4520,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4520
4520
  const typeList = typeArgs[index].typeList;
4521
4521
  if (typeList) {
4522
4522
  const functionType = types_1.FunctionType.createSynthesizedInstance('', 65536 /* FunctionTypeFlags.ParamSpecValue */);
4523
- types_1.TypeBase.setSpecialForm(functionType);
4524
4523
  typeList.forEach((paramType, paramIndex) => {
4525
4524
  types_1.FunctionType.addParameter(functionType, {
4526
4525
  category: 0 /* ParameterCategory.Simple */,
@@ -4530,7 +4529,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4530
4529
  hasDeclaredType: true,
4531
4530
  });
4532
4531
  });
4533
- types_1.FunctionType.addPositionOnlyParameterSeparator(functionType);
4532
+ if (typeList.length > 0) {
4533
+ types_1.FunctionType.addPositionOnlyParameterSeparator(functionType);
4534
+ }
4534
4535
  (0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, param, functionType, diag, typeVarContext, 256 /* AssignTypeFlags.RetainLiteralsForTypeVar */);
4535
4536
  }
4536
4537
  else if ((0, types_1.isParamSpec)(typeArgType)) {
@@ -4566,7 +4567,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4566
4567
  }
4567
4568
  else if ((0, typeUtils_1.isEllipsisType)(typeArgType)) {
4568
4569
  const functionType = types_1.FunctionType.createSynthesizedInstance('', 65536 /* FunctionTypeFlags.ParamSpecValue */ | 32768 /* FunctionTypeFlags.SkipArgsKwargsCompatibilityCheck */);
4569
- types_1.TypeBase.setSpecialForm(functionType);
4570
4570
  types_1.FunctionType.addDefaultParameters(functionType);
4571
4571
  (0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, param, functionType, diag, typeVarContext);
4572
4572
  }
@@ -4602,6 +4602,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4602
4602
  }
4603
4603
  }
4604
4604
  }
4605
+ if ((0, types_1.isUnpacked)(typeArgType) && !(0, types_1.isVariadicTypeVar)(param)) {
4606
+ const messageDiag = diag.createAddendum();
4607
+ messageDiag.addMessage(localize_1.Localizer.Diagnostic.unpackedArgInTypeArgument());
4608
+ messageDiag.addTextRange(typeArgs[index].node);
4609
+ typeArgType = types_1.UnknownType.create();
4610
+ }
4605
4611
  (0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, param, typeArgType, diag, typeVarContext, 256 /* AssignTypeFlags.RetainLiteralsForTypeVar */);
4606
4612
  }
4607
4613
  });
@@ -4917,7 +4923,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4917
4923
  }), node.baseExpression);
4918
4924
  return { type: types_1.UnknownType.create() };
4919
4925
  }
4920
- // Handle the special case where the object is a Tuple and
4926
+ // Handle the special case where the object is a tuple and
4921
4927
  // the index is a constant number (integer) or a slice with integer
4922
4928
  // start and end values. In these cases, we can determine
4923
4929
  // the exact type by indexing into the tuple type array.
@@ -4950,39 +4956,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4950
4956
  }
4951
4957
  else if ((0, types_1.isClassInstance)(valueType) && types_1.ClassType.isBuiltIn(valueType, 'slice')) {
4952
4958
  const tupleType = (0, typeUtils_1.getSpecializedTupleType)(baseType);
4953
- if (tupleType && tupleType.tupleTypeArguments && !(0, typeUtils_1.isUnboundedTupleClass)(tupleType)) {
4954
- if (index0Expr.nodeType === 46 /* ParseNodeType.Slice */ && !index0Expr.stepValue) {
4955
- // Create a local helper function to evaluate the slice parameters.
4956
- const getSliceParameter = (expression, defaultValue) => {
4957
- let value = defaultValue;
4958
- if (expression) {
4959
- const valType = getTypeOfExpression(expression).type;
4960
- if ((0, types_1.isClassInstance)(valType) &&
4961
- types_1.ClassType.isBuiltIn(valType, 'int') &&
4962
- (0, typeUtils_1.isLiteralType)(valType) &&
4963
- typeof valType.literalValue === 'number') {
4964
- value = valType.literalValue;
4965
- if (value < 0) {
4966
- value = tupleType.tupleTypeArguments.length + value;
4967
- }
4968
- }
4969
- else {
4970
- value = -1;
4971
- }
4972
- }
4973
- return value;
4974
- };
4975
- const startValue = getSliceParameter(index0Expr.startValue, 0);
4976
- const endValue = getSliceParameter(index0Expr.endValue, tupleType.tupleTypeArguments.length);
4977
- if (startValue >= 0 &&
4978
- endValue > 0 &&
4979
- endValue <= tupleType.tupleTypeArguments.length &&
4980
- tupleClassType &&
4981
- (0, types_1.isInstantiableClass)(tupleClassType)) {
4982
- return {
4983
- type: types_1.ClassType.cloneAsInstance((0, typeUtils_1.specializeTupleClass)(tupleClassType, tupleType.tupleTypeArguments.slice(startValue, endValue))),
4984
- };
4985
- }
4959
+ if (tupleType && index0Expr.nodeType === 46 /* ParseNodeType.Slice */) {
4960
+ const slicedTupleType = getSlicedTupleType(tupleType, index0Expr);
4961
+ if (slicedTupleType) {
4962
+ return { type: slicedTupleType };
4986
4963
  }
4987
4964
  }
4988
4965
  }
@@ -5102,6 +5079,51 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5102
5079
  isIncomplete: !!callResult.isTypeIncomplete,
5103
5080
  };
5104
5081
  }
5082
+ // Given a tuple type and a slice expression, determines the resulting
5083
+ // type if it can be determined. If not, it returns undefined.
5084
+ function getSlicedTupleType(tupleType, sliceNode) {
5085
+ // We don't handle step values.
5086
+ if (sliceNode.stepValue || !tupleType.tupleTypeArguments) {
5087
+ return undefined;
5088
+ }
5089
+ const tupleTypeArgs = tupleType.tupleTypeArguments;
5090
+ const startValue = getTupleSliceParameter(sliceNode.startValue, 0, tupleTypeArgs);
5091
+ const endValue = getTupleSliceParameter(sliceNode.endValue, tupleTypeArgs.length, tupleTypeArgs);
5092
+ if (startValue === undefined || endValue === undefined || endValue < startValue) {
5093
+ return undefined;
5094
+ }
5095
+ const slicedTypeArgs = tupleTypeArgs.slice(startValue, endValue);
5096
+ return types_1.ClassType.cloneAsInstance((0, typeUtils_1.specializeTupleClass)(tupleType, slicedTypeArgs));
5097
+ }
5098
+ function getTupleSliceParameter(expression, defaultValue, tupleTypeArgs) {
5099
+ let value = defaultValue;
5100
+ if (expression) {
5101
+ const valType = getTypeOfExpression(expression).type;
5102
+ if (!(0, types_1.isClassInstance)(valType) || !types_1.ClassType.isBuiltIn(valType, 'int') || !(0, typeUtils_1.isLiteralType)(valType)) {
5103
+ return undefined;
5104
+ }
5105
+ value = valType.literalValue;
5106
+ const unboundedIndex = tupleTypeArgs.findIndex((typeArg) => typeArg.isUnbounded || (0, types_1.isVariadicTypeVar)(typeArg.type));
5107
+ if (value < 0) {
5108
+ value = tupleTypeArgs.length + value;
5109
+ if (value < 0) {
5110
+ return undefined;
5111
+ }
5112
+ else if (unboundedIndex >= 0 && value <= unboundedIndex) {
5113
+ return undefined;
5114
+ }
5115
+ }
5116
+ else {
5117
+ if (value >= tupleTypeArgs.length) {
5118
+ return undefined;
5119
+ }
5120
+ else if (unboundedIndex >= 0 && value > unboundedIndex) {
5121
+ return undefined;
5122
+ }
5123
+ }
5124
+ }
5125
+ return value;
5126
+ }
5105
5127
  function getTypeArgs(node, flags, options) {
5106
5128
  const typeArgs = [];
5107
5129
  let adjFlags = flags;
@@ -5117,7 +5139,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5117
5139
  if (!(options === null || options === void 0 ? void 0 : options.isAnnotatedClass)) {
5118
5140
  adjFlags |= 131072 /* EvaluatorFlags.DisallowClassVar */ | 16 /* EvaluatorFlags.DisallowFinal */;
5119
5141
  }
5120
- adjFlags |= 2097152 /* EvaluatorFlags.AllowUnpackedTupleOrTypeVarTuple */;
5142
+ adjFlags |= 2097152 /* EvaluatorFlags.AllowUnpackedTupleOrTypeVarTuple */ | 134217728 /* EvaluatorFlags.AllowConcatenate */;
5121
5143
  }
5122
5144
  // Create a local function that validates a single type argument.
5123
5145
  const getTypeArgTypeResult = (expr, argIndex) => {
@@ -5181,6 +5203,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5181
5203
  (0, typeUtils_1.isTupleClass)(typeResult.type)) {
5182
5204
  typeResult.type = types_1.ClassType.cloneForUnpacked(typeResult.type);
5183
5205
  }
5206
+ else {
5207
+ addError(localize_1.Localizer.Diagnostic.unpackNotAllowed(), arg.valueExpression);
5208
+ }
5184
5209
  }
5185
5210
  }
5186
5211
  if (arg.name) {
@@ -5836,9 +5861,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5836
5861
  resultType = types_1.UnknownType.create();
5837
5862
  }
5838
5863
  return {
5839
- type: resultIsInstance ? (0, typeUtils_1.convertToInstance)(resultType) : resultType,
5864
+ type: resultIsInstance ? (0, typeUtils_1.convertToInstance)(resultType, /* includeSubclasses */ false) : resultType,
5840
5865
  bindToSelfType: bindToType
5841
- ? types_1.TypeBase.cloneForCondition((0, typeUtils_1.synthesizeTypeVarForSelfCls)(bindToType, /* isClsParam */ false), bindToType.condition)
5866
+ ? types_1.TypeBase.cloneForCondition((0, typeUtils_1.synthesizeTypeVarForSelfCls)(types_1.ClassType.cloneIncludeSubclasses(bindToType, /* includeSubclasses */ false),
5867
+ /* isClsParam */ false), bindToType.condition)
5842
5868
  : undefined,
5843
5869
  };
5844
5870
  }
@@ -6430,18 +6456,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6430
6456
  }), errorNode);
6431
6457
  return { returnType: undefined, argumentErrors: true };
6432
6458
  }
6433
- // Check for an attempt to invoke an abstract static or class method.
6434
- if (expandedCallType.boundToType &&
6435
- (0, types_1.isInstantiableClass)(expandedCallType.boundToType) &&
6436
- !expandedCallType.boundToType.includeSubclasses) {
6437
- if (types_1.FunctionType.isAbstractMethod(expandedCallType)) {
6438
- if (types_1.FunctionType.isStaticMethod(expandedCallType) || types_1.FunctionType.isClassMethod(expandedCallType)) {
6439
- addDiagnostic(AnalyzerNodeInfo.getFileInfo(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.abstractMethodInvocation().format({
6440
- method: expandedCallType.details.name,
6441
- }), errorNode.nodeType === 9 /* ParseNodeType.Call */ ? errorNode.leftExpression : errorNode);
6442
- }
6443
- }
6444
- }
6445
6459
  let effectiveTypeVarContext = typeVarContext;
6446
6460
  if (!effectiveTypeVarContext) {
6447
6461
  // If a typeVarContext wasn't provided by the caller, allocate one here.
@@ -6494,6 +6508,41 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6494
6508
  specializedInitSelfType: functionResult.specializedInitSelfType,
6495
6509
  };
6496
6510
  }
6511
+ function isMethodUnimplementedAbstract(functionType) {
6512
+ let isAbstract = false;
6513
+ // If the function is part of a protocol, it's automatically considered abstract
6514
+ // unless it's located in a stub, in which case it must be explicitly marked as
6515
+ // abstract.
6516
+ if (types_1.FunctionType.isAbstractMethod(functionType)) {
6517
+ isAbstract = true;
6518
+ }
6519
+ else if (functionType.details.methodClass &&
6520
+ types_1.ClassType.isProtocolClass(functionType.details.methodClass) &&
6521
+ functionType.details.declaration &&
6522
+ !AnalyzerNodeInfo.getFileInfo(functionType.details.declaration.node).isStubFile) {
6523
+ isAbstract = true;
6524
+ }
6525
+ if (!isAbstract) {
6526
+ return false;
6527
+ }
6528
+ // Determine if the method is unimplemented by looking at whether its
6529
+ // body contains a "trivial" implementation.
6530
+ let implementation = functionType;
6531
+ // If this is an overloaded method, consider the implementation.
6532
+ if (functionType.overloaded) {
6533
+ implementation = types_1.OverloadedFunctionType.getImplementation(functionType.overloaded);
6534
+ // If there is no implementation and it's in a stub file, assume it's not abstract.
6535
+ if (!implementation) {
6536
+ return (functionType.details.declaration !== undefined &&
6537
+ !AnalyzerNodeInfo.getFileInfo(functionType.details.declaration.node).isStubFile);
6538
+ }
6539
+ }
6540
+ if (!implementation.details.declaration) {
6541
+ return false;
6542
+ }
6543
+ const decl = implementation.details.declaration;
6544
+ return ParseTreeUtils.isSuiteEmpty(decl.node.suite) || methodAlwaysRaisesNotImplemented(decl);
6545
+ }
6497
6546
  function validateCallForOverloadedFunction(errorNode, argList, expandedCallType, isCallTypeIncomplete, typeVarContext, skipUnknownArgCheck, inferenceContext) {
6498
6547
  var _a, _b;
6499
6548
  // Handle the 'cast' call as a special case.
@@ -7727,6 +7776,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7727
7776
  let specializedInitSelfType;
7728
7777
  let anyOrUnknownArgument;
7729
7778
  const typeCondition = (0, typeUtils_1.getTypeCondition)(type);
7779
+ // Check for an attempt to invoke an unimplemented abstract method.
7780
+ if (type.boundToType && !type.boundToType.includeSubclasses && isMethodUnimplementedAbstract(type)) {
7781
+ addDiagnostic(AnalyzerNodeInfo.getFileInfo(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.abstractMethodInvocation().format({
7782
+ method: type.details.name,
7783
+ }), errorNode.nodeType === 9 /* ParseNodeType.Call */ ? errorNode.leftExpression : errorNode);
7784
+ }
7730
7785
  if (type.boundTypeVarScopeId) {
7731
7786
  // If the function was bound to a class or object and was a constructor, a
7732
7787
  // static method or a class method, it's possible that some of that class's
@@ -8593,6 +8648,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8593
8648
  addError(localize_1.Localizer.Diagnostic.typeVarTupleUnknownParam().format({ name: ((_a = argList[i].name) === null || _a === void 0 ? void 0 : _a.value) || '?' }), ((_b = argList[i].node) === null || _b === void 0 ? void 0 : _b.name) || argList[i].valueExpression || errorNode);
8594
8649
  }
8595
8650
  }
8651
+ else {
8652
+ addError(localize_1.Localizer.Diagnostic.typeVarTupleConstraints(), argList[i].valueExpression || errorNode);
8653
+ }
8596
8654
  }
8597
8655
  return typeVar;
8598
8656
  }
@@ -8653,7 +8711,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8653
8711
  }
8654
8712
  function getParamSpecDefaultType(node) {
8655
8713
  const functionType = types_1.FunctionType.createSynthesizedInstance('', 32768 /* FunctionTypeFlags.SkipArgsKwargsCompatibilityCheck */ | 65536 /* FunctionTypeFlags.ParamSpecValue */);
8656
- types_1.TypeBase.setSpecialForm(functionType);
8657
8714
  if (node.nodeType === 18 /* ParseNodeType.Ellipsis */) {
8658
8715
  types_1.FunctionType.addDefaultParameters(functionType);
8659
8716
  return functionType;
@@ -8669,6 +8726,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8669
8726
  type: (0, typeUtils_1.convertToInstance)(typeResult.type),
8670
8727
  });
8671
8728
  });
8729
+ if (node.entries.length > 0) {
8730
+ types_1.FunctionType.addPositionOnlyParameterSeparator(functionType);
8731
+ }
8672
8732
  // Update the type cache so we don't attempt to re-evaluate this node.
8673
8733
  // The type doesn't matter, so use Any.
8674
8734
  writeTypeCache(node, { type: types_1.AnyType.create() }, /* flags */ undefined);
@@ -10451,7 +10511,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10451
10511
  }
10452
10512
  return typeArgs[0].type;
10453
10513
  }
10454
- function createConcatenateType(errorNode, classType, typeArgs) {
10514
+ function createConcatenateType(errorNode, classType, typeArgs, flags) {
10515
+ if ((flags & 134217728 /* EvaluatorFlags.AllowConcatenate */) === 0) {
10516
+ addError(localize_1.Localizer.Diagnostic.concatenateContext(), errorNode);
10517
+ return types_1.AnyType.create();
10518
+ }
10455
10519
  if (!typeArgs || typeArgs.length === 0) {
10456
10520
  addError(localize_1.Localizer.Diagnostic.concatenateTypeArgsMissing(), errorNode);
10457
10521
  }
@@ -10608,7 +10672,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10608
10672
  }
10609
10673
  // Unpacks the index expression for a "Union[X, Y, Z]" type annotation.
10610
10674
  function createUnionType(classType, errorNode, typeArgs, flags) {
10675
+ const fileInfo = AnalyzerNodeInfo.getFileInfo(errorNode);
10611
10676
  const types = [];
10677
+ let allowSingleTypeArg = false;
10612
10678
  if (!typeArgs) {
10613
10679
  // If no type arguments are provided, the resulting type
10614
10680
  // depends on whether we're evaluating a type annotation or
@@ -10630,15 +10696,29 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10630
10696
  }
10631
10697
  // If this is an unpacked tuple, explode out the individual items.
10632
10698
  if ((0, types_1.isUnpackedClass)(typeArg.type) && typeArg.type.tupleTypeArguments) {
10633
- typeArg.type.tupleTypeArguments.forEach((tupleTypeArg) => {
10634
- types.push((0, typeUtils_1.convertToInstantiable)(tupleTypeArg.type));
10635
- });
10699
+ if (fileInfo.diagnosticRuleSet.enableExperimentalFeatures) {
10700
+ typeArg.type.tupleTypeArguments.forEach((tupleTypeArg) => {
10701
+ types.push((0, typeUtils_1.convertToInstantiable)(tupleTypeArg.type));
10702
+ });
10703
+ allowSingleTypeArg = true;
10704
+ }
10705
+ else {
10706
+ addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.unionUnpackedTuple(), errorNode);
10707
+ types.push(types_1.UnknownType.create());
10708
+ }
10636
10709
  }
10637
10710
  else {
10638
- // If this is an unpacked TypeVar, note that it is in a union so we can differentiate
10639
- // between Unpack[Vs] and Union[Unpack[Vs]].
10640
10711
  if ((0, types_1.isTypeVar)(typeArgType) && (0, types_1.isUnpackedVariadicTypeVar)(typeArgType)) {
10641
- typeArgType = types_1.TypeVarType.cloneForUnpacked(typeArgType, /* isInUnion */ true);
10712
+ if (fileInfo.diagnosticRuleSet.enableExperimentalFeatures) {
10713
+ // If this is an unpacked TypeVar, note that it is in a union so we can
10714
+ // differentiate between Unpack[Vs] and Union[Unpack[Vs]].
10715
+ typeArgType = types_1.TypeVarType.cloneForUnpacked(typeArgType, /* isInUnion */ true);
10716
+ allowSingleTypeArg = true;
10717
+ }
10718
+ else {
10719
+ addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.unionUnpackedTypeVarTuple(), errorNode);
10720
+ typeArgType = types_1.UnknownType.create();
10721
+ }
10642
10722
  }
10643
10723
  types.push(typeArgType);
10644
10724
  }
@@ -10646,10 +10726,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10646
10726
  // Validate that we received at least two type arguments. One type argument
10647
10727
  // is allowed if it's an unpacked variadic type var or tuple. None is also allowed
10648
10728
  // since it is used to define NoReturn in typeshed stubs).
10649
- if (types.length === 1) {
10650
- if (!(0, types_1.isVariadicTypeVar)(types[0]) && !(0, types_1.isUnpacked)(types[0]) && !(0, typeUtils_1.isNoneInstance)(types[0])) {
10651
- addError(localize_1.Localizer.Diagnostic.unionTypeArgCount(), errorNode);
10652
- }
10729
+ if (types.length === 1 && !allowSingleTypeArg && !(0, typeUtils_1.isNoneInstance)(types[0])) {
10730
+ addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.unionTypeArgCount(), errorNode);
10653
10731
  }
10654
10732
  const unionType = (0, types_1.combineTypes)(types);
10655
10733
  if ((0, types_1.isUnion)(unionType)) {
@@ -11005,7 +11083,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11005
11083
  // only if the evaluated type is an instantiable type.
11006
11084
  if (!isSpeculativeTypeAlias || isLegalImplicitTypeAliasType(rightHandType)) {
11007
11085
  // If this is a type alias, record its name based on the assignment target.
11008
- rightHandType = transformTypeForTypeAlias(rightHandType, typeAliasNameNode, node.rightExpression,
11086
+ rightHandType = transformTypeForTypeAlias(rightHandType, typeAliasNameNode, typeAliasNameNode,
11009
11087
  /* isPep695Syntax */ false,
11010
11088
  /* isPep695TypeVarType */ false);
11011
11089
  (0, debug_1.assert)(typeAliasTypeVar !== undefined);
@@ -11106,7 +11184,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11106
11184
  if (aliasTypeResult.isIncomplete) {
11107
11185
  isIncomplete = true;
11108
11186
  }
11109
- aliasType = transformTypeForTypeAlias(aliasType, nameNode, valueNode, isPep695Syntax,
11187
+ aliasType = transformTypeForTypeAlias(aliasType, nameNode, nameNode, isPep695Syntax,
11110
11188
  /* isPep695TypeVarType */ true, typeParameters, typeParamNodes);
11111
11189
  if ((0, typeUtils_1.isTypeAliasRecursive)(typeAliasTypeVar, aliasType)) {
11112
11190
  addDiagnostic(AnalyzerNodeInfo.getFileInfo(valueNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeAliasIsRecursiveDirect().format({
@@ -13784,7 +13862,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13784
13862
  return createAnnotatedType(errorNode, typeArgs);
13785
13863
  }
13786
13864
  case 'Concatenate': {
13787
- return { type: createConcatenateType(errorNode, classType, typeArgs) };
13865
+ return { type: createConcatenateType(errorNode, classType, typeArgs, flags) };
13788
13866
  }
13789
13867
  case 'TypeGuard': {
13790
13868
  return { type: createTypeGuardType(errorNode, classType, typeArgs, flags) };
@@ -13857,9 +13935,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13857
13935
  const variadicTypeParamIndex = typeParameters.findIndex((param) => (0, types_1.isVariadicTypeVar)(param));
13858
13936
  if (typeArgs) {
13859
13937
  let minTypeArgCount = typeParameters.length;
13860
- const firstNonDefaultParam = typeParameters.findIndex((param) => !!param.details.defaultType);
13861
- if (firstNonDefaultParam >= 0) {
13862
- minTypeArgCount = firstNonDefaultParam;
13938
+ const firstDefaultParamIndex = typeParameters.findIndex((param) => !!param.details.defaultType);
13939
+ if (firstDefaultParamIndex >= 0) {
13940
+ minTypeArgCount = firstDefaultParamIndex;
13863
13941
  }
13864
13942
  // Classes that accept inlined type dict type args allow only one.
13865
13943
  if (typeArgs[0].inlinedTypeDict) {
@@ -13957,7 +14035,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13957
14035
  if (typeParam.details.isParamSpec) {
13958
14036
  const typeArg = typeArgs[index];
13959
14037
  const functionType = types_1.FunctionType.createSynthesizedInstance('', 65536 /* FunctionTypeFlags.ParamSpecValue */);
13960
- types_1.TypeBase.setSpecialForm(functionType);
13961
14038
  if ((0, typeUtils_1.isEllipsisType)(typeArg.type)) {
13962
14039
  types_1.FunctionType.addDefaultParameters(functionType);
13963
14040
  functionType.details.flags |= 32768 /* FunctionTypeFlags.SkipArgsKwargsCompatibilityCheck */;
@@ -13975,6 +14052,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13975
14052
  hasDeclaredType: true,
13976
14053
  });
13977
14054
  });
14055
+ if (typeArg.typeList.length > 0) {
14056
+ types_1.FunctionType.addPositionOnlyParameterSeparator(functionType);
14057
+ }
13978
14058
  typeArgTypes.push(functionType);
13979
14059
  typeVarContext.setTypeVarType(typeParam, (0, typeUtils_1.convertTypeToParamSpecValue)(functionType));
13980
14060
  return;
@@ -15713,7 +15793,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15713
15793
  function assignClassToSelf(destType, srcType, ignoreBaseClassVariance = true, recursionCount = 0) {
15714
15794
  (0, debug_1.assert)(types_1.ClassType.isSameGenericClass(destType, srcType));
15715
15795
  (0, debug_1.assert)(destType.details.typeParameters.length > 0);
15716
- const diag = new diagnostic_1.DiagnosticAddendum();
15717
15796
  const typeVarContext = new typeVarContext_1.TypeVarContext();
15718
15797
  let isAssignable = true;
15719
15798
  destType.details.fields.forEach((symbol, name) => {
@@ -15734,7 +15813,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15734
15813
  types_1.ClassType.isPropertyClass(destMemberType) &&
15735
15814
  (0, types_1.isClassInstance)(srcMemberType) &&
15736
15815
  types_1.ClassType.isPropertyClass(srcMemberType)) {
15737
- if (!(0, properties_1.assignProperty)(evaluatorInterface, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), destType, srcType, diag, typeVarContext,
15816
+ if (!(0, properties_1.assignProperty)(evaluatorInterface, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), destType, srcType,
15817
+ /* diag */ undefined, typeVarContext,
15738
15818
  /* selfTypeVarContext */ undefined, recursionCount)) {
15739
15819
  isAssignable = false;
15740
15820
  }
@@ -15753,7 +15833,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15753
15833
  flags |= 1 /* AssignTypeFlags.EnforceInvariance */;
15754
15834
  }
15755
15835
  }
15756
- if (!assignType(destMemberType, srcMemberType, diag, typeVarContext,
15836
+ if (!assignType(destMemberType, srcMemberType,
15837
+ /* diag */ undefined, typeVarContext,
15757
15838
  /* srcTypeVarContext */ undefined, flags, recursionCount)) {
15758
15839
  isAssignable = false;
15759
15840
  }