@zzzen/pyright-internal 1.2.0-dev.20230416 → 1.2.0-dev.20230423

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 (90) hide show
  1. package/dist/analyzer/binder.js +1 -3
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/codeFlowEngine.js +17 -0
  4. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  5. package/dist/analyzer/commentUtils.d.ts +1 -1
  6. package/dist/analyzer/commentUtils.js +18 -3
  7. package/dist/analyzer/commentUtils.js.map +1 -1
  8. package/dist/analyzer/docStringConversion.js +2 -3
  9. package/dist/analyzer/docStringConversion.js.map +1 -1
  10. package/dist/analyzer/patternMatching.d.ts +6 -2
  11. package/dist/analyzer/patternMatching.js +108 -2
  12. package/dist/analyzer/patternMatching.js.map +1 -1
  13. package/dist/analyzer/program.d.ts +9 -7
  14. package/dist/analyzer/program.js +29 -24
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/service.d.ts +2 -2
  17. package/dist/analyzer/service.js +5 -5
  18. package/dist/analyzer/service.js.map +1 -1
  19. package/dist/analyzer/sourceFile.d.ts +1 -3
  20. package/dist/analyzer/sourceFile.js +1 -9
  21. package/dist/analyzer/sourceFile.js.map +1 -1
  22. package/dist/analyzer/typeEvaluator.js +44 -12
  23. package/dist/analyzer/typeEvaluator.js.map +1 -1
  24. package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -1
  25. package/dist/analyzer/typeEvaluatorTypes.js +0 -2
  26. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  27. package/dist/analyzer/typeGuards.d.ts +2 -0
  28. package/dist/analyzer/typeGuards.js +172 -175
  29. package/dist/analyzer/typeGuards.js.map +1 -1
  30. package/dist/analyzer/typeUtils.js +9 -9
  31. package/dist/analyzer/typeUtils.js.map +1 -1
  32. package/dist/analyzer/types.js +10 -2
  33. package/dist/analyzer/types.js.map +1 -1
  34. package/dist/common/extensibility.d.ts +7 -4
  35. package/dist/common/extensibility.js.map +1 -1
  36. package/dist/languageServerBase.js +3 -2
  37. package/dist/languageServerBase.js.map +1 -1
  38. package/dist/languageService/callHierarchyProvider.js +17 -4
  39. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  40. package/dist/languageService/completionProvider.js +119 -10
  41. package/dist/languageService/completionProvider.js.map +1 -1
  42. package/dist/languageService/hoverProvider.d.ts +28 -28
  43. package/dist/languageService/hoverProvider.js +142 -120
  44. package/dist/languageService/hoverProvider.js.map +1 -1
  45. package/dist/languageService/importAdder.d.ts +13 -2
  46. package/dist/languageService/importAdder.js +73 -26
  47. package/dist/languageService/importAdder.js.map +1 -1
  48. package/dist/languageService/indentationUtils.js +6 -1
  49. package/dist/languageService/indentationUtils.js.map +1 -1
  50. package/dist/localization/localize.d.ts +2 -0
  51. package/dist/localization/localize.js +2 -0
  52. package/dist/localization/localize.js.map +1 -1
  53. package/dist/localization/package.nls.en-us.json +2 -0
  54. package/dist/tests/checker.test.js +1 -1
  55. package/dist/tests/completions.test.js +173 -0
  56. package/dist/tests/completions.test.js.map +1 -1
  57. package/dist/tests/docStringConversion.test.js +11 -1
  58. package/dist/tests/docStringConversion.test.js.map +1 -1
  59. package/dist/tests/fourslash/completions.override2.fourslash.js +15 -0
  60. package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
  61. package/dist/tests/fourslash/fourslash.d.ts +11 -1
  62. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +5 -6
  63. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
  64. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js +1 -4
  65. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js.map +1 -1
  66. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +10 -9
  67. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
  68. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.d.ts +1 -0
  69. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js +54 -0
  70. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js.map +1 -0
  71. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.d.ts +1 -0
  72. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js +46 -0
  73. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js.map +1 -0
  74. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.d.ts +1 -0
  75. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js +39 -0
  76. package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js.map +1 -0
  77. package/dist/tests/harness/fourslash/testState.d.ts +6 -1
  78. package/dist/tests/harness/fourslash/testState.js +38 -6
  79. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  80. package/dist/tests/importAdder.test.js +69 -1
  81. package/dist/tests/importAdder.test.js.map +1 -1
  82. package/dist/tests/indentationUtils.ptvs.test.js +2 -2
  83. package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
  84. package/dist/tests/indentationUtils.test.js +18 -0
  85. package/dist/tests/indentationUtils.test.js.map +1 -1
  86. package/dist/tests/typeEvaluator3.test.js +6 -0
  87. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  88. package/dist/tests/typeEvaluator4.test.js +5 -1
  89. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  90. package/package.json +1 -1
@@ -77,12 +77,16 @@ class CallHierarchyProvider {
77
77
  (0, cancellationUtils_1.throwIfCancellationRequested)(token);
78
78
  // Find the parse node root corresponding to the function or class.
79
79
  let parseRoot;
80
- if (declaration.type === 5 /* Function */) {
81
- parseRoot = declaration.node;
80
+ const resolvedDecl = evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ true);
81
+ if (!resolvedDecl) {
82
+ return undefined;
83
+ }
84
+ if (resolvedDecl.type === 5 /* Function */) {
85
+ parseRoot = resolvedDecl.node;
82
86
  }
83
- else if (declaration.type === 6 /* Class */) {
87
+ else if (resolvedDecl.type === 6 /* Class */) {
84
88
  // Look up the __init__ method for this class.
85
- const classType = (_a = evaluator.getTypeForDeclaration(declaration)) === null || _a === void 0 ? void 0 : _a.type;
89
+ const classType = (_a = evaluator.getTypeForDeclaration(resolvedDecl)) === null || _a === void 0 ? void 0 : _a.type;
86
90
  if (classType && (0, types_1.isInstantiableClass)(classType)) {
87
91
  // Don't perform a recursive search of parent classes in this
88
92
  // case because we don't want to find an inherited __init__
@@ -131,6 +135,9 @@ class CallHierarchyProvider {
131
135
  }
132
136
  }
133
137
  let symbolName;
138
+ // Although the LSP specification requires a URI, we are using a file path
139
+ // here because it is converted to the proper URI in LanguageServerBase.
140
+ // This simplifies our code and ensures compatibility with the LSP specification.
134
141
  let callItemUri;
135
142
  if (targetDecl.type === 8 /* Alias */) {
136
143
  symbolName = referencesResult.nodeAtOffset.value;
@@ -212,6 +219,7 @@ class FindOutgoingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
212
219
  return true;
213
220
  }
214
221
  _addOutgoingCallForDeclaration(nameNode, declaration) {
222
+ var _a;
215
223
  const resolvedDecl = this._evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ true);
216
224
  if (!resolvedDecl) {
217
225
  return;
@@ -236,6 +244,11 @@ class FindOutgoingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
236
244
  };
237
245
  this._outgoingCalls.push(outgoingCall);
238
246
  }
247
+ if (outgoingCall && outgoingCall.to.name !== nameNode.value) {
248
+ // If both the function and its alias are called in the same function,
249
+ // the name of the call item will be the resolved declaration name, not the alias.
250
+ outgoingCall.to.name = (_a = DeclarationUtils.getNameFromDeclaration(resolvedDecl)) !== null && _a !== void 0 ? _a : nameNode.value;
251
+ }
239
252
  const fromRange = (0, positionUtils_1.convertOffsetsToRange)(nameNode.start, nameNode.start + nameNode.length, this._parseResults.tokenizerOutput.lines);
240
253
  outgoingCall.fromRanges.push(fromRange);
241
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callHierarchyProvider.js","sourceRoot":"","sources":["../../../src/languageService/callHierarchyProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callHierarchyProvider.js","sourceRoot":"","sources":["../../../src/languageService/callHierarchyProvider.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ const docStringConversion_1 = require("../analyzer/docStringConversion");
37
37
  const parameterUtils_1 = require("../analyzer/parameterUtils");
38
38
  const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
39
39
  const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
40
+ const pythonPathUtils_1 = require("../analyzer/pythonPathUtils");
40
41
  const scopeUtils_1 = require("../analyzer/scopeUtils");
41
42
  const sourceMapper_1 = require("../analyzer/sourceMapper");
42
43
  const SymbolNameUtils = __importStar(require("../analyzer/symbolNameUtils"));
@@ -51,6 +52,7 @@ const collectionUtils_1 = require("../common/collectionUtils");
51
52
  const debug = __importStar(require("../common/debug"));
52
53
  const debug_1 = require("../common/debug");
53
54
  const lspUtils_1 = require("../common/lspUtils");
55
+ const pathUtils_1 = require("../common/pathUtils");
54
56
  const positionUtils_1 = require("../common/positionUtils");
55
57
  const pythonVersion_1 = require("../common/pythonVersion");
56
58
  const StringUtils = __importStar(require("../common/stringUtils"));
@@ -62,6 +64,7 @@ const parseNodes_1 = require("../parser/parseNodes");
62
64
  const autoImporter_1 = require("./autoImporter");
63
65
  const completionProviderUtils_1 = require("./completionProviderUtils");
64
66
  const documentSymbolCollector_1 = require("./documentSymbolCollector");
67
+ const importAdder_1 = require("./importAdder");
65
68
  const tooltipUtils_1 = require("./tooltipUtils");
66
69
  var Keywords;
67
70
  (function (Keywords) {
@@ -822,6 +825,8 @@ class CompletionProvider {
822
825
  }
823
826
  const staticmethod = (_a = decorators === null || decorators === void 0 ? void 0 : decorators.some((d) => this._checkDecorator(d, 'staticmethod'))) !== null && _a !== void 0 ? _a : false;
824
827
  const classmethod = (_b = decorators === null || decorators === void 0 ? void 0 : decorators.some((d) => this._checkDecorator(d, 'classmethod'))) !== null && _b !== void 0 ? _b : false;
828
+ const fallbackPath = (0, pythonPathUtils_1.getTypeShedFallbackPath)(this._importResolver.fileSystem);
829
+ const typingFilePath = fallbackPath ? (0, pathUtils_1.combinePaths)(fallbackPath, 'stdlib/typing.pyi') : undefined;
825
830
  const appendMember = (map, member, name) => {
826
831
  if (!(0, types_1.isInstantiableClass)(member.classType) ||
827
832
  member.classType.details === classResults.classType.details ||
@@ -868,22 +873,28 @@ class CompletionProvider {
868
873
  if (!funcType || !funcType.details.declaration) {
869
874
  return;
870
875
  }
871
- const methodSignature = this._printMethodSignature(classResults.classType, funcType);
876
+ const importAdder = new importAdder_1.ImportAdder(this._configOptions, this._importResolver, this._evaluator);
877
+ const result = this._printMethodSignature(importAdder, classResults.classType, funcType, typingFilePath);
872
878
  let text;
873
879
  if ((0, sourceMapper_1.isStubFile)(this._filePath)) {
874
- text = `${methodSignature}: ...`;
880
+ text = `${result.methodSignature}: ...`;
875
881
  }
876
882
  else {
877
883
  const methodBody = this._printOverriddenMethodBody(classResults.classType, isDeclaredStaticMethod, isProperty, decl);
878
- text = `${methodSignature}:\n${methodBody}`;
884
+ text = `${result.methodSignature}:\n${methodBody}`;
879
885
  }
880
886
  const textEdit = this._createReplaceEdits(priorWord, partialName, text);
887
+ // This will add new import statements, but for now, it won't add new
888
+ // `TypeVar` statement such as TypeVar, TypeVarTuple, ParamSpec even if
889
+ // the overridden method uses them.
890
+ const additionalTextEdits = importAdder.applyImports(result.importData, this._filePath, this._parseResults, this._parseResults.parseTree.length, "absolute" /* Absolute */, this._cancellationToken);
881
891
  this._addSymbol(name, symbol, partialName.value, map, {
882
892
  // method signature already contains ()
883
893
  funcParensDisabled: true,
884
894
  edits: {
885
895
  format: this._options.snippet ? vscode_languageserver_1.InsertTextFormat.Snippet : undefined,
886
896
  textEdit,
897
+ additionalTextEdits,
887
898
  },
888
899
  });
889
900
  };
@@ -907,14 +918,14 @@ class CompletionProvider {
907
918
  };
908
919
  return vscode_languageserver_1.TextEdit.replace(range, text);
909
920
  }
910
- _printMethodSignature(classType, funcType) {
911
- const decl = funcType.details.declaration;
921
+ _printMethodSignature(importAdder, classType, funcType, typingFilePath) {
922
+ const declaration = funcType.details.declaration;
912
923
  let ellipsisForDefault;
913
924
  if ((0, sourceMapper_1.isStubFile)(this._filePath)) {
914
925
  // In stubs, always use "...".
915
926
  ellipsisForDefault = true;
916
927
  }
917
- else if (classType.details.moduleName === decl.moduleName) {
928
+ else if (classType.details.moduleName === declaration.moduleName) {
918
929
  // In the same file, always print the full default.
919
930
  ellipsisForDefault = false;
920
931
  }
@@ -933,6 +944,7 @@ class CompletionProvider {
933
944
  ? mainType
934
945
  : fallbackType;
935
946
  };
947
+ const importData = createImportData(importAdder, funcType, declaration, typingFilePath, (t) => this._sourceMapper.findClassDeclarationsByType(this._filePath, t), this._cancellationToken);
936
948
  const paramList = funcType.details.parameters.map((param, index) => {
937
949
  let paramString = '';
938
950
  if (param.category === 1 /* VarArgList */) {
@@ -944,8 +956,6 @@ class CompletionProvider {
944
956
  if (param.name) {
945
957
  paramString += param.name;
946
958
  }
947
- // Currently, we don't automatically add import if the type used in the annotation is not imported
948
- // in current file.
949
959
  if (param.typeAnnotation) {
950
960
  const originalType = funcType.details.parameters[index].type;
951
961
  const typeToPrint = getTypeToPrint(types_1.FunctionType.getEffectiveParameterType(funcType, index), originalType);
@@ -982,12 +992,111 @@ class CompletionProvider {
982
992
  if (strReturnType) {
983
993
  methodSignature += ' -> ' + strReturnType;
984
994
  }
985
- return methodSignature;
995
+ return { methodSignature, importData };
996
+ function createImportData(importAdder, funcType, declaration, typingFilePath, declarationGetter, token) {
997
+ var _a, _b;
998
+ // Handle regular case. In this case, we can get import info from
999
+ // import used in the file where the function is declared.
1000
+ const ranges = [];
1001
+ (0, collectionUtils_1.addIfNotNull)(ranges, textRange_2.TextRange.combine(declaration.node.parameters));
1002
+ (0, collectionUtils_1.addIfNotNull)(ranges, declaration.node.returnTypeAnnotation);
1003
+ (0, collectionUtils_1.addIfNotNull)(ranges, declaration.node.functionAnnotationComment);
1004
+ const moduleNode = ParseTreeUtils.getModuleNode(declaration.node);
1005
+ const importData = importAdder.collectImportsForSymbolsUsed(moduleNode, ranges, token);
1006
+ // Handle special case where function has type arguments. In this case,
1007
+ // we can't use the file the function is declared in because it doesn't
1008
+ // have those type arguments. It just has the type vars.
1009
+ // We could walk the mro to discover imports for the type arguments, but
1010
+ // for now, instead, this creates import statement out of type arguments itself.
1011
+ const effectiveTypes = [];
1012
+ funcType.details.parameters.forEach((param, index) => {
1013
+ if (!param.typeAnnotation) {
1014
+ return;
1015
+ }
1016
+ const originalType = funcType.details.parameters[index].type;
1017
+ if (!(0, types_1.isTypeVar)(originalType)) {
1018
+ return;
1019
+ }
1020
+ const effectiveType = types_1.FunctionType.getEffectiveParameterType(funcType, index);
1021
+ effectiveTypes.push([effectiveType, param.typeAnnotation]);
1022
+ });
1023
+ const node = declaration.node;
1024
+ const originalType = funcType.details.declaredReturnType;
1025
+ if (originalType &&
1026
+ (0, types_1.isTypeVar)(originalType) &&
1027
+ (node.returnTypeAnnotation || ((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation))) {
1028
+ effectiveTypes.push([
1029
+ types_1.FunctionType.getSpecializedReturnType(funcType),
1030
+ (_b = node.returnTypeAnnotation) !== null && _b !== void 0 ? _b : node.functionAnnotationComment.returnTypeAnnotation,
1031
+ ]);
1032
+ }
1033
+ const visited = new Set();
1034
+ const addImport = (t, n) => {
1035
+ var _a, _b;
1036
+ if (visited.has(t)) {
1037
+ return;
1038
+ }
1039
+ visited.add(t);
1040
+ // We need to special case `Any` since we can't get decl from `Any`.
1041
+ if ((0, types_1.isAny)(t)) {
1042
+ if (!typingFilePath) {
1043
+ return;
1044
+ }
1045
+ importAdder.addImportInfo({ filePath: typingFilePath, nameInfo: { name: 'Any' } }, importData);
1046
+ }
1047
+ if (!(0, types_1.isClass)(t)) {
1048
+ return;
1049
+ }
1050
+ // We need to special case `List`, `Dict` and `Tuple` since user might have
1051
+ // used typing.List or typing.Dict in the code, but we internally already
1052
+ // converted them to built-in `list` and `dict`.
1053
+ // We could avoid doing this if class type holds onto decl it was created from
1054
+ // if it is not synthesized like func type.
1055
+ if (typingFilePath && types_1.ClassType.isBuiltIn(t)) {
1056
+ const name = (_a = t.aliasName) !== null && _a !== void 0 ? _a : t.details.name;
1057
+ if (t.details.moduleName === 'typing' && name) {
1058
+ importAdder.addImportInfo({
1059
+ filePath: typingFilePath,
1060
+ nameInfo: { name },
1061
+ }, importData);
1062
+ }
1063
+ else if (t.details.moduleName === 'builtins' && t.aliasName) {
1064
+ importAdder.addImportInfo({
1065
+ filePath: typingFilePath,
1066
+ nameInfo: { name },
1067
+ }, importData);
1068
+ }
1069
+ }
1070
+ else {
1071
+ const decls = declarationGetter(t);
1072
+ if (decls.length === 0) {
1073
+ return;
1074
+ }
1075
+ importAdder.addDeclaration(decls[0], n, importData);
1076
+ }
1077
+ if (t.isTypeArgumentExplicit) {
1078
+ (_b = t.typeArguments) === null || _b === void 0 ? void 0 : _b.forEach((ta) => {
1079
+ addImport(ta, n);
1080
+ (0, typeUtils_1.doForEachSubtype)(ta, (subtype) => {
1081
+ addImport(subtype, n);
1082
+ });
1083
+ });
1084
+ }
1085
+ };
1086
+ effectiveTypes.forEach(([t, n]) => {
1087
+ addImport(t, n);
1088
+ (0, typeUtils_1.doForEachSubtype)(t, (subtype) => {
1089
+ addImport(subtype, n);
1090
+ });
1091
+ });
1092
+ return importData;
1093
+ }
986
1094
  function getReturnTypeStr(evaluator, funcType, printFlags) {
1095
+ var _a;
987
1096
  const originalType = funcType.details.declaredReturnType;
988
1097
  const typeToPrint = getTypeToPrint(types_1.FunctionType.getSpecializedReturnType(funcType), originalType);
989
1098
  const node = funcType.details.declaration.node;
990
- if (!node.returnTypeAnnotation && !node.functionAnnotationComment) {
1099
+ if (!node.returnTypeAnnotation && !((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation)) {
991
1100
  return undefined;
992
1101
  }
993
1102
  if (typeToPrint && isTypeUsableForPrint(typeToPrint, originalType)) {