@zzzen/pyright-internal 1.2.0-dev.20220821 → 1.2.0-dev.20220911

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 (74) hide show
  1. package/dist/analyzer/binder.js +18 -25
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +1 -0
  4. package/dist/analyzer/checker.js +30 -0
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/importResolver.d.ts +6 -1
  7. package/dist/analyzer/importResolver.js +76 -28
  8. package/dist/analyzer/importResolver.js.map +1 -1
  9. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  10. package/dist/analyzer/parseTreeUtils.js +54 -7
  11. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  12. package/dist/analyzer/patternMatching.js +10 -0
  13. package/dist/analyzer/patternMatching.js.map +1 -1
  14. package/dist/analyzer/program.d.ts +1 -0
  15. package/dist/analyzer/program.js +16 -2
  16. package/dist/analyzer/program.js.map +1 -1
  17. package/dist/analyzer/scope.js +5 -3
  18. package/dist/analyzer/scope.js.map +1 -1
  19. package/dist/analyzer/service.d.ts +1 -1
  20. package/dist/analyzer/service.js +21 -7
  21. package/dist/analyzer/service.js.map +1 -1
  22. package/dist/analyzer/sourceFile.d.ts +2 -1
  23. package/dist/analyzer/sourceFile.js +4 -3
  24. package/dist/analyzer/sourceFile.js.map +1 -1
  25. package/dist/analyzer/typeEvaluator.js +89 -47
  26. package/dist/analyzer/typeEvaluator.js.map +1 -1
  27. package/dist/analyzer/typeGuards.js +6 -5
  28. package/dist/analyzer/typeGuards.js.map +1 -1
  29. package/dist/analyzer/typePrinter.d.ts +3 -3
  30. package/dist/analyzer/typePrinter.js +24 -20
  31. package/dist/analyzer/typePrinter.js.map +1 -1
  32. package/dist/analyzer/typeUtils.d.ts +1 -1
  33. package/dist/analyzer/typeUtils.js +2 -2
  34. package/dist/analyzer/typeUtils.js.map +1 -1
  35. package/dist/common/commandLineOptions.d.ts +2 -0
  36. package/dist/common/commandLineOptions.js +7 -0
  37. package/dist/common/commandLineOptions.js.map +1 -1
  38. package/dist/common/debug.js +7 -1
  39. package/dist/common/debug.js.map +1 -1
  40. package/dist/common/envVarUtils.d.ts +1 -0
  41. package/dist/common/envVarUtils.js +34 -0
  42. package/dist/common/envVarUtils.js.map +1 -0
  43. package/dist/common/realFileSystem.js +1 -1
  44. package/dist/common/realFileSystem.js.map +1 -1
  45. package/dist/languageServerBase.d.ts +4 -2
  46. package/dist/languageServerBase.js +22 -39
  47. package/dist/languageServerBase.js.map +1 -1
  48. package/dist/languageService/analyzerServiceExecutor.js +4 -1
  49. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  50. package/dist/localization/localize.d.ts +5 -3
  51. package/dist/localization/localize.js +2 -1
  52. package/dist/localization/localize.js.map +1 -1
  53. package/dist/localization/package.nls.en-us.json +2 -1
  54. package/dist/parser/parser.js +8 -0
  55. package/dist/parser/parser.js.map +1 -1
  56. package/dist/parser/tokenizer.js +2 -1
  57. package/dist/parser/tokenizer.js.map +1 -1
  58. package/dist/server.js +6 -5
  59. package/dist/server.js.map +1 -1
  60. package/dist/tests/checker.test.js +2 -2
  61. package/dist/tests/ipythonMode.test.js +118 -0
  62. package/dist/tests/ipythonMode.test.js.map +1 -1
  63. package/dist/tests/parseTreeUtils.test.js +8 -2
  64. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  65. package/dist/tests/typeEvaluator1.test.js +9 -1
  66. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  67. package/dist/tests/typeEvaluator2.test.js +5 -1
  68. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  69. package/dist/tests/typeEvaluator3.test.js +7 -1
  70. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  71. package/dist/tests/typeEvaluator4.test.js +4 -0
  72. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  73. package/dist/tests/typeEvaluator5.test.js +2 -2
  74. package/package.json +5 -5
@@ -67,6 +67,7 @@ export declare class Checker extends ParseTreeWalker {
67
67
  private _validateExhaustiveMatch;
68
68
  private _suppressUnboundCheck;
69
69
  private _validateIllegalDefaultParamInitializer;
70
+ private _validateStandardCollectionInstantiation;
70
71
  private _validateContainmentTypes;
71
72
  private _validateComparisonTypes;
72
73
  private _isTypeComparable;
@@ -440,6 +440,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
440
440
  var _a;
441
441
  this._validateIsInstanceCall(node);
442
442
  this._validateIllegalDefaultParamInitializer(node);
443
+ this._validateStandardCollectionInstantiation(node);
443
444
  if (this._fileInfo.diagnosticRuleSet.reportUnusedCallResult !== 'none' ||
444
445
  this._fileInfo.diagnosticRuleSet.reportUnusedCoroutine !== 'none') {
445
446
  if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 47 /* StatementList */) {
@@ -948,8 +949,21 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
948
949
  40 /* Number */,
949
950
  11 /* Constant */,
950
951
  38 /* Name */,
952
+ 52 /* Tuple */,
951
953
  ];
954
+ let reportAsUnused = false;
952
955
  if (simpleExpressionTypes.some((nodeType) => nodeType === node.nodeType)) {
956
+ reportAsUnused = true;
957
+ }
958
+ else if (node.nodeType === 31 /* List */ ||
959
+ node.nodeType === 45 /* Set */ ||
960
+ node.nodeType === 15 /* Dictionary */) {
961
+ // Exclude comprehensions.
962
+ if (!node.entries.some((entry) => entry.nodeType === 32 /* ListComprehension */)) {
963
+ reportAsUnused = true;
964
+ }
965
+ }
966
+ if (reportAsUnused) {
953
967
  this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnusedExpression, diagnosticRules_1.DiagnosticRule.reportUnusedExpression, localize_1.Localizer.Diagnostic.unusedExpression(), node);
954
968
  }
955
969
  }
@@ -987,6 +1001,22 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
987
1001
  }
988
1002
  }
989
1003
  }
1004
+ _validateStandardCollectionInstantiation(node) {
1005
+ const leftType = this._evaluator.getType(node.leftExpression);
1006
+ if (leftType &&
1007
+ (0, types_1.isInstantiableClass)(leftType) &&
1008
+ types_1.ClassType.isBuiltIn(leftType) &&
1009
+ !leftType.includeSubclasses &&
1010
+ leftType.aliasName) {
1011
+ const nonInstantiable = ['List', 'Set', 'Dict', 'Tuple'];
1012
+ if (nonInstantiable.some((name) => name === leftType.aliasName)) {
1013
+ this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.collectionAliasInstantiation().format({
1014
+ type: leftType.aliasName,
1015
+ alias: leftType.details.name,
1016
+ }), node.leftExpression);
1017
+ }
1018
+ }
1019
+ }
990
1020
  _validateContainmentTypes(node) {
991
1021
  const leftType = this._evaluator.getType(node.leftExpression);
992
1022
  const containerType = this._evaluator.getType(node.rightExpression);