@zzzen/pyright-internal 1.2.0-dev.20260621 → 1.2.0-dev.20260705

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 (130) hide show
  1. package/dist/analyzer/binder.js +51 -5
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +12 -2
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/codeFlowEngine.js +6 -0
  6. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  7. package/dist/analyzer/dataClasses.js +7 -0
  8. package/dist/analyzer/dataClasses.js.map +1 -1
  9. package/dist/analyzer/docStringUtils.d.ts +1 -0
  10. package/dist/analyzer/docStringUtils.js +78 -0
  11. package/dist/analyzer/docStringUtils.js.map +1 -1
  12. package/dist/analyzer/importResolver.js +69 -4
  13. package/dist/analyzer/importResolver.js.map +1 -1
  14. package/dist/analyzer/importStatementUtils.js +19 -1
  15. package/dist/analyzer/importStatementUtils.js.map +1 -1
  16. package/dist/analyzer/parseTreeUtils.js +8 -0
  17. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  18. package/dist/analyzer/patternMatching.js +44 -0
  19. package/dist/analyzer/patternMatching.js.map +1 -1
  20. package/dist/analyzer/program.js +6 -1
  21. package/dist/analyzer/program.js.map +1 -1
  22. package/dist/analyzer/pythonPathUtils.js +2 -2
  23. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  24. package/dist/analyzer/staticExpressions.js +91 -19
  25. package/dist/analyzer/staticExpressions.js.map +1 -1
  26. package/dist/analyzer/typeEvaluator.js +53 -61
  27. package/dist/analyzer/typeEvaluator.js.map +1 -1
  28. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  29. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  30. package/dist/analyzer/typeGuards.js +52 -4
  31. package/dist/analyzer/typeGuards.js.map +1 -1
  32. package/dist/analyzer/typeUtils.js +10 -4
  33. package/dist/analyzer/typeUtils.js.map +1 -1
  34. package/dist/common/docStringService.d.ts +2 -0
  35. package/dist/common/docStringService.js +5 -1
  36. package/dist/common/docStringService.js.map +1 -1
  37. package/dist/common/fullAccessHost.d.ts +2 -1
  38. package/dist/common/fullAccessHost.js +43 -9
  39. package/dist/common/fullAccessHost.js.map +1 -1
  40. package/dist/common/host.d.ts +2 -2
  41. package/dist/common/host.js +1 -1
  42. package/dist/common/host.js.map +1 -1
  43. package/dist/common/uri/fileUri.d.ts +1 -0
  44. package/dist/common/uri/fileUri.js +20 -0
  45. package/dist/common/uri/fileUri.js.map +1 -1
  46. package/dist/common/uri/memoization.js +5 -1
  47. package/dist/common/uri/memoization.js.map +1 -1
  48. package/dist/common/uri/uriUtils.d.ts +2 -0
  49. package/dist/common/uri/uriUtils.js +22 -0
  50. package/dist/common/uri/uriUtils.js.map +1 -1
  51. package/dist/languageServerBase.js +6 -1
  52. package/dist/languageServerBase.js.map +1 -1
  53. package/dist/languageService/completionProvider.d.ts +6 -0
  54. package/dist/languageService/completionProvider.js +194 -46
  55. package/dist/languageService/completionProvider.js.map +1 -1
  56. package/dist/languageService/completionProviderUtils.d.ts +2 -0
  57. package/dist/languageService/completionProviderUtils.js.map +1 -1
  58. package/dist/languageService/documentSymbolCollector.d.ts +15 -1
  59. package/dist/languageService/documentSymbolCollector.js +64 -41
  60. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  61. package/dist/languageService/hoverProvider.js +22 -0
  62. package/dist/languageService/hoverProvider.js.map +1 -1
  63. package/dist/languageService/importStatementCandidates.d.ts +16 -0
  64. package/dist/languageService/importStatementCandidates.js +100 -0
  65. package/dist/languageService/importStatementCandidates.js.map +1 -0
  66. package/dist/languageService/referencesProvider.d.ts +16 -9
  67. package/dist/languageService/referencesProvider.js +188 -32
  68. package/dist/languageService/referencesProvider.js.map +1 -1
  69. package/dist/languageService/renameProvider.d.ts +7 -2
  70. package/dist/languageService/renameProvider.js +45 -17
  71. package/dist/languageService/renameProvider.js.map +1 -1
  72. package/dist/localization/localize.d.ts +9 -0
  73. package/dist/localization/localize.js +5 -0
  74. package/dist/localization/localize.js.map +1 -1
  75. package/dist/localization/package.nls.en-us.json +4 -0
  76. package/dist/parser/parser.js +9 -0
  77. package/dist/parser/parser.js.map +1 -1
  78. package/dist/readonlyAugmentedFileSystem.js +13 -6
  79. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  80. package/dist/tests/checker.test.js +4 -0
  81. package/dist/tests/checker.test.js.map +1 -1
  82. package/dist/tests/completions.test.js +118 -9
  83. package/dist/tests/completions.test.js.map +1 -1
  84. package/dist/tests/docStringReturnExtraction.test.d.ts +1 -0
  85. package/dist/tests/docStringReturnExtraction.test.js +125 -0
  86. package/dist/tests/docStringReturnExtraction.test.js.map +1 -0
  87. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.d.ts +1 -0
  88. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js +35 -0
  89. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js.map +1 -0
  90. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.d.ts +1 -0
  91. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js +86 -0
  92. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js.map +1 -0
  93. package/dist/tests/fourslash/completions.qualname.fourslash.d.ts +1 -0
  94. package/dist/tests/fourslash/completions.qualname.fourslash.js +34 -0
  95. package/dist/tests/fourslash/completions.qualname.fourslash.js.map +1 -0
  96. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.d.ts +1 -0
  97. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js +122 -0
  98. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js.map +1 -0
  99. package/dist/tests/fourslash/import.multipartModuleClassShadow.fourslash.d.ts +1 -0
  100. package/dist/tests/fourslash/import.multipartModuleClassShadow.fourslash.js +39 -0
  101. package/dist/tests/fourslash/import.multipartModuleClassShadow.fourslash.js.map +1 -0
  102. package/dist/tests/harness/testAccessHost.d.ts +1 -1
  103. package/dist/tests/harness/testAccessHost.js +1 -1
  104. package/dist/tests/harness/testAccessHost.js.map +1 -1
  105. package/dist/tests/importResolver.test.js +33 -0
  106. package/dist/tests/importResolver.test.js.map +1 -1
  107. package/dist/tests/importStatementUtils.test.js +92 -0
  108. package/dist/tests/importStatementUtils.test.js.map +1 -1
  109. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  110. package/dist/tests/lsp/languageServerTestUtils.js +1 -1
  111. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  112. package/dist/tests/parser.test.js +18 -0
  113. package/dist/tests/parser.test.js.map +1 -1
  114. package/dist/tests/pyrightFileSystem.test.js +25 -0
  115. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  116. package/dist/tests/signatureHelp.test.js +73 -0
  117. package/dist/tests/signatureHelp.test.js.map +1 -1
  118. package/dist/tests/typeEvaluator1.test.js +4 -0
  119. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  120. package/dist/tests/typeEvaluator2.test.js +6 -0
  121. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  122. package/dist/tests/typeEvaluator3.test.js +1 -1
  123. package/dist/tests/typeEvaluator4.test.js +23 -1
  124. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  125. package/dist/tests/typeEvaluator6.test.js +20 -0
  126. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  127. package/dist/tests/typeEvaluator8.test.js +23 -21
  128. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  129. package/dist/types.d.ts +1 -0
  130. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"languageServerBase.js","sourceRoot":"","sources":["../../../../src/languageServerBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"languageServerBase.js","sourceRoot":"","sources":["../../../../src/languageServerBase.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,9 @@ export interface CompletionOptions {
27
27
  readonly snippet: boolean;
28
28
  readonly lazyEdit: boolean;
29
29
  readonly triggerCharacter?: string;
30
+ readonly completionItemDataDefault?: boolean;
30
31
  }
32
+ export declare function hoistCompletionItemDataDefault(list: CompletionList, fileUri: Uri, position: Position): void;
31
33
  export declare const autoImportDetail: string;
32
34
  export declare const indexValueDetail: string;
33
35
  export declare class CompletionProvider {
@@ -44,11 +46,14 @@ export declare class CompletionProvider {
44
46
  protected itemToResolve: CompletionItem | undefined;
45
47
  constructor(program: ProgramView, fileUri: Uri, position: Position, options: CompletionOptions, cancellationToken: CancellationToken);
46
48
  getCompletions(): CompletionList | null;
49
+ static feedsMru(kind: CompletionItemKind | undefined, hasSymbolLabel: boolean): boolean;
50
+ static recordCompletionAccepted(label: string, autoImportText: string): void;
47
51
  resolveCompletionItem(completionItem: CompletionItem): void;
48
52
  protected get evaluator(): TypeEvaluator;
49
53
  protected get importResolver(): ImportResolver;
50
54
  protected get configOptions(): import("../common/configOptions").ConfigOptions;
51
55
  protected getCompletionItemData(item: CompletionItem): CompletionItemData;
56
+ protected createCompletionItemData(data: Partial<CompletionItemData>): any;
52
57
  protected addAdditionalExpressionCompletions(parseNode: ParseNode, priorWord: string, completionMap: CompletionMap): void;
53
58
  protected getMethodOverrideCompletions(priorWord: string, partialName: NameNode, decorators?: DecoratorNode[]): CompletionMap | undefined;
54
59
  protected printOverriddenMethodBody(classType: ClassType, isStaticMethod: boolean, isProperty: boolean, decl: FunctionDeclaration, insertAwait?: boolean): string;
@@ -81,6 +86,7 @@ export declare class CompletionProvider {
81
86
  private _getMethodOverloadsCompletions;
82
87
  private _printMethodSignature;
83
88
  private _getStatementCompletions;
89
+ private _isExpressionOnlySlot;
84
90
  private _getExpressionCompletions;
85
91
  private _isIndexArgument;
86
92
  private _addCallArgumentCompletions;
@@ -43,7 +43,9 @@ var __importStar = (this && this.__importStar) || (function () {
43
43
  })();
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.CompletionMap = exports.CompletionProvider = exports.indexValueDetail = exports.autoImportDetail = void 0;
46
+ exports.hoistCompletionItemDataDefault = hoistCompletionItemDataDefault;
46
47
  const vscode_languageserver_1 = require("vscode-languageserver");
48
+ const vscode_languageserver_types_1 = require("vscode-languageserver-types");
47
49
  const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
48
50
  const declaration_1 = require("../analyzer/declaration");
49
51
  const declarationUtils_1 = require("../analyzer/declarationUtils");
@@ -79,6 +81,7 @@ const tokenizer_1 = require("../parser/tokenizer");
79
81
  const autoImporter_1 = require("./autoImporter");
80
82
  const completionProviderUtils_1 = require("./completionProviderUtils");
81
83
  const documentSymbolCollector_1 = require("./documentSymbolCollector");
84
+ const importStatementCandidates_1 = require("./importStatementCandidates");
82
85
  const tooltipUtils_1 = require("./tooltipUtils");
83
86
  var Keywords;
84
87
  (function (Keywords) {
@@ -135,6 +138,45 @@ var Keywords;
135
138
  return base;
136
139
  }
137
140
  Keywords.forVersion = forVersion;
141
+ // Keywords that can only begin a statement and can never begin an expression,
142
+ // so they are suppressed in the expression-only slots recognized here. (Some
143
+ // of these, like `from`, can still appear *within* an expression form such as
144
+ // `yield from <expr>`, but never as the start of one.) Keywords like `if`,
145
+ // `else`, `for`, `in`, `lambda`, `yield`, and `await` are intentionally
146
+ // excluded because they can appear inside expressions (ternaries,
147
+ // comprehensions, lambdas, etc.).
148
+ // Keep in sync with the counterpart in
149
+ // pylance-internal/src/languageService/asyncCompletionProvider.ts.
150
+ const statementOnlyKeywords = new Set([
151
+ 'assert',
152
+ 'break',
153
+ 'case',
154
+ 'class',
155
+ 'continue',
156
+ 'def',
157
+ 'del',
158
+ 'elif',
159
+ 'except',
160
+ 'finally',
161
+ 'from',
162
+ 'global',
163
+ 'import',
164
+ 'match',
165
+ 'nonlocal',
166
+ 'pass',
167
+ 'raise',
168
+ 'return',
169
+ 'try',
170
+ 'type',
171
+ 'while',
172
+ 'with',
173
+ ]);
174
+ // Returns the version-appropriate keywords that are valid in an expression
175
+ // context (i.e. the full keyword set minus the statement-only keywords).
176
+ function expressionKeywordsForVersion(version) {
177
+ return forVersion(version).filter((keyword) => !statementOnlyKeywords.has(keyword));
178
+ }
179
+ Keywords.expressionKeywordsForVersion = expressionKeywordsForVersion;
138
180
  })(Keywords || (Keywords = {}));
139
181
  var SortCategory;
140
182
  (function (SortCategory) {
@@ -158,16 +200,48 @@ var SortCategory;
158
200
  SortCategory[SortCategory["Keyword"] = 7] = "Keyword";
159
201
  // An enum member.
160
202
  SortCategory[SortCategory["EnumMember"] = 8] = "EnumMember";
203
+ // A symbol declared directly on the object or class being accessed.
204
+ SortCategory[SortCategory["DeclaredSymbol"] = 9] = "DeclaredSymbol";
205
+ // A private symbol declared directly on the object or class being accessed.
206
+ SortCategory[SortCategory["DeclaredPrivateSymbol"] = 10] = "DeclaredPrivateSymbol";
161
207
  // A normal symbol.
162
- SortCategory[SortCategory["NormalSymbol"] = 9] = "NormalSymbol";
208
+ SortCategory[SortCategory["NormalSymbol"] = 11] = "NormalSymbol";
163
209
  // A symbol that starts with _ or __ (used only when there is
164
210
  // no matching filter).
165
- SortCategory[SortCategory["PrivateSymbol"] = 10] = "PrivateSymbol";
211
+ SortCategory[SortCategory["PrivateSymbol"] = 12] = "PrivateSymbol";
166
212
  // A symbol with a dunder name (e.g. __init__).
167
- SortCategory[SortCategory["DunderSymbol"] = 11] = "DunderSymbol";
213
+ SortCategory[SortCategory["DunderSymbol"] = 13] = "DunderSymbol";
168
214
  // An auto-import symbol.
169
- SortCategory[SortCategory["AutoImport"] = 12] = "AutoImport";
215
+ SortCategory[SortCategory["AutoImport"] = 14] = "AutoImport";
170
216
  })(SortCategory || (SortCategory = {}));
217
+ // Publishes the shared completion item `data` fields (uri/position) once via
218
+ // `CompletionList.itemDefaults.data` and requests a shallow merge via `CompletionList.applyKind`,
219
+ // so each item only needs to carry its per-item data. Items are built without the shared fields in
220
+ // the first place (see `createCompletionItemData`), so there is nothing to strip here. The client
221
+ // reconstructs the full `data` (merging the defaults back in) before issuing a resolve request, so
222
+ // the resolve handler is unaffected.
223
+ //
224
+ // The caller must only invoke this when the client advertises both
225
+ // `completionList.itemDefaults` containing `data` and `completionList.applyKindSupport`.
226
+ //
227
+ // Note: `applyKind` only configures `data` (Merge); other itemDefaults (e.g. a future
228
+ // `commitCharacters` default) would fall back to the client default of `Replace` unless this
229
+ // object is extended. For data-less items (keywords, string literals) the shared `itemDefaults.data`
230
+ // still applies via the client merge, but they have nothing to resolve. The resolve dispatch
231
+ // short-circuits them by item kind so the merge doesn't drag them into a needless resolve
232
+ // round-trip: keywords are identified by `CompletionItemKind.Keyword`, and string literals by
233
+ // `CompletionItemKind.Constant` with no `symbolLabel` (data-bearing name completions always carry
234
+ // a `symbolLabel`). Named-parameter items (`Variable`, no `symbolLabel`) are not kind-short-circuited
235
+ // and may still reach resolve via the merge, but resolve is a no-op for them; the MRU is updated only
236
+ // when a completion is accepted.
237
+ function hoistCompletionItemDataDefault(list, fileUri, position) {
238
+ if (list.items.length === 0) {
239
+ return;
240
+ }
241
+ const sharedData = { uri: fileUri.toString(), position };
242
+ list.itemDefaults = { ...list.itemDefaults, data: (0, lspUtils_1.toLSPAny)(sharedData) };
243
+ list.applyKind = { ...list.applyKind, data: vscode_languageserver_types_1.ApplyKind.Merge };
244
+ }
171
245
  exports.autoImportDetail = localize_1.Localizer.Completion.autoImportDetail();
172
246
  exports.indexValueDetail = localize_1.Localizer.Completion.indexValueDetail();
173
247
  // We'll use a somewhat-arbitrary cutoff value here to determine
@@ -194,24 +268,32 @@ class CompletionProvider {
194
268
  return null;
195
269
  }
196
270
  const completionMap = this._getCompletions();
197
- return vscode_languageserver_1.CompletionList.create(completionMap?.toArray());
198
- }
199
- // When the user selects a completion, this callback is invoked,
200
- // allowing us to record what was selected. This allows us to
201
- // build our MRU cache so we can better predict entries.
202
- resolveCompletionItem(completionItem) {
203
- (0, cancellationUtils_1.throwIfCancellationRequested)(this.cancellationToken);
204
- const completionItemData = this.getCompletionItemData(completionItem);
205
- const label = completionItem.label;
206
- let autoImportText = '';
207
- if (completionItemData.autoImportText) {
208
- autoImportText = completionItemData.autoImportText;
209
- }
271
+ const completionList = vscode_languageserver_1.CompletionList.create(completionMap?.toArray());
272
+ if (this.options.completionItemDataDefault) {
273
+ hoistCompletionItemDataDefault(completionList, this.fileUri, this.position);
274
+ }
275
+ return completionList;
276
+ }
277
+ // Single source of truth for which completion item kinds participate in the MRU cache.
278
+ // Keyword items and data-less string-literal `Constant` items (no `symbolLabel`) carry no
279
+ // server-side identity: they are never resolved and were never recorded in the MRU. Every other
280
+ // kind can feed the MRU when accepted. Both the resolve short-circuit (languageService.ts) and the
281
+ // accept-command attach gate (asynchronousFeatures.ts) key off this predicate so MRU membership is
282
+ // defined in one place instead of as two hand-synced inverse checks.
283
+ static feedsMru(kind, hasSymbolLabel) {
284
+ return kind !== vscode_languageserver_1.CompletionItemKind.Keyword && !(kind === vscode_languageserver_1.CompletionItemKind.Constant && !hasSymbolLabel);
285
+ }
286
+ // Records an accepted completion in the MRU cache so we can better predict entries.
287
+ // This is called when a completion is actually committed (via the accept command), not when
288
+ // it is merely highlighted/previewed. Recording on highlight would let an inline preview that
289
+ // resolves on every keystroke reorder the list and make results oscillate.
290
+ static recordCompletionAccepted(label, autoImportText) {
210
291
  const curIndex = CompletionProvider._mostRecentCompletions.findIndex((item) => item.label === label && item.autoImportText === autoImportText);
211
292
  if (curIndex > 0) {
212
293
  // If there's an existing entry with the same name that's not at the
213
- // beginning of the array, remove it.
214
- CompletionProvider._mostRecentCompletions = CompletionProvider._mostRecentCompletions.splice(curIndex, 1);
294
+ // beginning of the array, remove it in place. (Array.splice mutates the
295
+ // array and returns the removed elements, so it must not be reassigned.)
296
+ CompletionProvider._mostRecentCompletions.splice(curIndex, 1);
215
297
  }
216
298
  if (curIndex !== 0) {
217
299
  // Add to the start of the array.
@@ -221,6 +303,13 @@ class CompletionProvider {
221
303
  // Prevent the MRU list from growing indefinitely.
222
304
  CompletionProvider._mostRecentCompletions.pop();
223
305
  }
306
+ }
307
+ // When the user highlights/previews a completion, this callback is invoked so we can fill in
308
+ // additional details (documentation, auto-import edits). It must NOT mutate the MRU cache; MRU
309
+ // updates happen only when a completion is accepted (see recordCompletionAccepted).
310
+ resolveCompletionItem(completionItem) {
311
+ (0, cancellationUtils_1.throwIfCancellationRequested)(this.cancellationToken);
312
+ const completionItemData = this.getCompletionItemData(completionItem);
224
313
  if (!completionItemData.symbolLabel) {
225
314
  return;
226
315
  }
@@ -278,6 +367,17 @@ class CompletionProvider {
278
367
  getCompletionItemData(item) {
279
368
  return (0, lspUtils_1.fromLSPAny)(item.data);
280
369
  }
370
+ // Builds the `data` payload for a completion item. When the client supports `itemDefaults.data`
371
+ // (completionItemDataDefault), the shared `uri`/`position` live once in
372
+ // `CompletionList.itemDefaults.data` (see hoistCompletionItemDataDefault), so we never write them
373
+ // per item in the first place (rather than writing then stripping them); an item left with no
374
+ // per-item fields carries no `data` at all. Otherwise we inline `uri`/`position` on each item.
375
+ createCompletionItemData(data) {
376
+ if (!this.options.completionItemDataDefault) {
377
+ return (0, lspUtils_1.toLSPAny)({ uri: this.fileUri.toString(), position: this.position, ...data });
378
+ }
379
+ return Object.keys(data).length > 0 ? (0, lspUtils_1.toLSPAny)(data) : undefined;
380
+ }
281
381
  addAdditionalExpressionCompletions(parseNode, priorWord, completionMap) {
282
382
  // Default implementation is a no-op.
283
383
  // Subclasses can override to inject additional completion items that are not produced by the
@@ -497,6 +597,7 @@ class CompletionProvider {
497
597
  }
498
598
  this.addNameToCompletions(detail.autoImportAlias ?? name, itemKind, priorWord, completionMap, {
499
599
  autoImportText,
600
+ declaredOnBoundObjectOrClass: detail.declaredOnBoundObjectOrClass,
500
601
  extraCommitChars: detail.extraCommitChars,
501
602
  funcParensDisabled: detail.funcParensDisabled,
502
603
  edits: detail.edits,
@@ -508,6 +609,7 @@ class CompletionProvider {
508
609
  if (synthesizedType) {
509
610
  const itemKind = this._convertTypeToItemKind(synthesizedType);
510
611
  this.addNameToCompletions(name, itemKind, priorWord, completionMap, {
612
+ declaredOnBoundObjectOrClass: detail.declaredOnBoundObjectOrClass,
511
613
  extraCommitChars: detail.extraCommitChars,
512
614
  funcParensDisabled: detail.funcParensDisabled,
513
615
  edits: detail.edits,
@@ -641,17 +743,13 @@ class CompletionProvider {
641
743
  if (detail?.extraCommitChars) {
642
744
  this.addExtraCommitChar(completionItem);
643
745
  }
644
- const completionItemData = {
645
- uri: this.fileUri.toString(),
646
- position: this.position,
647
- };
746
+ const completionItemData = {};
648
747
  if (detail?.funcParensDisabled || !this.options.snippet) {
649
748
  completionItemData.funcParensDisabled = true;
650
749
  }
651
750
  if (detail?.moduleUri) {
652
751
  completionItemData.moduleUri = detail.moduleUri.toString();
653
752
  }
654
- completionItem.data = (0, lspUtils_1.toLSPAny)(completionItemData);
655
753
  if (detail?.sortText || detail?.itemDetail) {
656
754
  completionItem.sortText = detail.sortText;
657
755
  completionItem.detail = detail.itemDetail;
@@ -677,7 +775,10 @@ class CompletionProvider {
677
775
  // Distinguish between normal and private symbols only if there is
678
776
  // currently no filter text. Once we get a single character to filter
679
777
  // upon, we'll no longer differentiate.
680
- completionItem.sortText = this._makeSortText(SortCategory.PrivateSymbol, name);
778
+ completionItem.sortText = this._makeSortText(detail?.declaredOnBoundObjectOrClass ? SortCategory.DeclaredPrivateSymbol : SortCategory.PrivateSymbol, name);
779
+ }
780
+ else if (filter === '' && detail?.declaredOnBoundObjectOrClass) {
781
+ completionItem.sortText = this._makeSortText(SortCategory.DeclaredSymbol, name);
681
782
  }
682
783
  else {
683
784
  completionItem.sortText = this._makeSortText(SortCategory.NormalSymbol, name);
@@ -753,6 +854,7 @@ class CompletionProvider {
753
854
  }
754
855
  }
755
856
  }
857
+ completionItem.data = this.createCompletionItemData(completionItemData);
756
858
  completionMap.set(completionItem);
757
859
  }
758
860
  getAutoImportText(importName, importFrom, importAlias) {
@@ -1480,6 +1582,50 @@ class CompletionProvider {
1480
1582
  // For now, use the same logic for expressions and statements.
1481
1583
  return this._getExpressionCompletions(parseNode, priorWord, priorText, postText);
1482
1584
  }
1585
+ // Returns true when `node` occupies a slot that can only contain an
1586
+ // expression (never the start of a statement), so statement-only keywords
1587
+ // must be suppressed. Biased toward a superset: only well-understood
1588
+ // expression slots return true; anything uncertain returns false so the
1589
+ // full keyword set is offered (it's better to leak a wrong keyword than to
1590
+ // drop a valid one). Keep in sync with the counterpart in
1591
+ // pylance-internal/src/languageService/asyncCompletionProvider.ts.
1592
+ _isExpressionOnlySlot(node) {
1593
+ const parent = node.parent;
1594
+ if (!parent) {
1595
+ return false;
1596
+ }
1597
+ switch (parent.nodeType) {
1598
+ case 29 /* ParseNodeType.For */:
1599
+ // The iterable of `for target in <iterable>` (but not the target).
1600
+ return parent.d.iterableExpr === node;
1601
+ case 12 /* ParseNodeType.ComprehensionFor */:
1602
+ // The iterable of a comprehension `... for target in <iterable>`.
1603
+ return parent.d.iterableExpr === node;
1604
+ case 3 /* ParseNodeType.Assignment */:
1605
+ // The right-hand side of `target = <value>` (but not the target).
1606
+ return parent.d.rightExpr === node;
1607
+ case 4 /* ParseNodeType.AssignmentExpression */:
1608
+ // The right-hand side of a walrus `name := <value>`.
1609
+ return parent.d.rightExpr === node;
1610
+ case 1 /* ParseNodeType.Argument */:
1611
+ // Any `ArgumentNode` slot: call arguments, subscript index items,
1612
+ // class bases, and decorator arguments. A statement-only keyword
1613
+ // is never valid in any of these, so suppressing it is always safe.
1614
+ return true;
1615
+ case 44 /* ParseNodeType.Return */:
1616
+ // The value of `return <expr>`.
1617
+ return parent.d.expr === node;
1618
+ case 57 /* ParseNodeType.While */:
1619
+ // The condition of `while <expr>:`.
1620
+ return parent.d.testExpr === node;
1621
+ case 22 /* ParseNodeType.If */:
1622
+ // The condition of `if <expr>:` / `elif <expr>:` (elif is a
1623
+ // nested `IfNode`).
1624
+ return parent.d.testExpr === node;
1625
+ default:
1626
+ return false;
1627
+ }
1628
+ }
1483
1629
  _getExpressionCompletions(parseNode, priorWord, priorText, postText) {
1484
1630
  const isIndexArgument = this._isIndexArgument(parseNode);
1485
1631
  // If the user typed a "." as part of a number, don't present
@@ -1508,8 +1654,13 @@ class CompletionProvider {
1508
1654
  // Add symbols that are in scope.
1509
1655
  this._addSymbols(parseNode, priorWord, completionMap);
1510
1656
  this.addAdditionalExpressionCompletions(parseNode, priorWord, completionMap);
1511
- // Add keywords.
1512
- this._findMatchingKeywords(Keywords.forVersion(this.execEnv.pythonVersion), priorWord).map((keyword) => {
1657
+ // Add keywords. In slots that can only contain an expression, suppress
1658
+ // keywords that are only valid at the start of a statement (e.g. don't
1659
+ // offer `raise` in the iterable of a `for ... in`).
1660
+ const keywords = this._isExpressionOnlySlot(parseNode)
1661
+ ? Keywords.expressionKeywordsForVersion(this.execEnv.pythonVersion)
1662
+ : Keywords.forVersion(this.execEnv.pythonVersion);
1663
+ this._findMatchingKeywords(keywords, priorWord).map((keyword) => {
1513
1664
  if (completionMap.has(keyword)) {
1514
1665
  return;
1515
1666
  }
@@ -2215,21 +2366,18 @@ class CompletionProvider {
2215
2366
  }
2216
2367
  // Access the imported module information, which is hanging
2217
2368
  // off the ImportFromNode.
2218
- const importInfo = AnalyzerNodeInfo.getImportInfo(importFromNode.d.module);
2369
+ const importFromTarget = (0, importStatementCandidates_1.getImportFromTarget)(this.program, importFromNode);
2370
+ const importInfo = importFromTarget.importInfo;
2219
2371
  if (!importInfo) {
2220
2372
  return undefined;
2221
2373
  }
2222
2374
  const completionMap = new CompletionMap();
2223
- const resolvedPath = importInfo.resolvedUris.length > 0
2224
- ? importInfo.resolvedUris[importInfo.resolvedUris.length - 1]
2225
- : uri_1.Uri.empty();
2226
- const parseResults = this.program.getParseResults(resolvedPath);
2227
- if (!parseResults) {
2375
+ if (!importFromTarget.hasParseResults) {
2228
2376
  // Add the implicit imports.
2229
2377
  this._addImplicitImportsToCompletion(importInfo, importFromNode, priorWord, completionMap);
2230
2378
  return completionMap;
2231
2379
  }
2232
- const symbolTable = AnalyzerNodeInfo.getScope(parseResults.parserOutput.parseTree)?.symbolTable;
2380
+ const symbolTable = importFromTarget.symbolTable;
2233
2381
  if (!symbolTable) {
2234
2382
  return completionMap;
2235
2383
  }
@@ -2294,11 +2442,7 @@ class CompletionProvider {
2294
2442
  }
2295
2443
  const completionItem = vscode_languageserver_1.CompletionItem.create(label);
2296
2444
  completionItem.kind = vscode_languageserver_1.CompletionItemKind.Variable;
2297
- const completionItemData = {
2298
- uri: this.fileUri.toString(),
2299
- position: this.position,
2300
- };
2301
- completionItem.data = (0, lspUtils_1.toLSPAny)(completionItemData);
2445
+ completionItem.data = this.createCompletionItemData({});
2302
2446
  completionItem.sortText = this._makeSortText(SortCategory.NamedParameter, argName);
2303
2447
  completionItem.filterText = argName;
2304
2448
  // If the text immediately after the cursor already starts with
@@ -2366,6 +2510,12 @@ class CompletionProvider {
2366
2510
  _addSymbolsForSymbolTable(symbolTable, includeSymbolCallback, priorWord, node, isInImport, boundObjectOrClass, completionMap) {
2367
2511
  const insideTypeAnnotation = ParseTreeUtils.isWithinAnnotationComment(node) ||
2368
2512
  ParseTreeUtils.isWithinTypeAnnotation(node, /* requireQuotedAnnotation */ false);
2513
+ // `boundSymbolTable` holds only the fields declared directly on the leaf `boundObjectOrClass`,
2514
+ // whereas `symbolTable` is the merged-MRO table that also includes inherited members. The
2515
+ // declared-vs-inherited check below relies on this distinction, so callers must keep passing the
2516
+ // leaf type here even if they iterate per-MRO-class; otherwise inherited members would be
2517
+ // mis-bucketed as directly declared.
2518
+ const boundSymbolTable = boundObjectOrClass ? types_1.ClassType.getSymbolTable(boundObjectOrClass) : undefined;
2369
2519
  symbolTable.forEach((symbol, name) => {
2370
2520
  // If there are no declarations or the symbol is not
2371
2521
  // exported from this scope, don't include it in the
@@ -2378,8 +2528,10 @@ class CompletionProvider {
2378
2528
  // Skip func parens for classes when not a direct assignment or an argument (passed as a value)
2379
2529
  const skipForClass = !this._shouldShowAutoParensForClass(symbol, node);
2380
2530
  const skipForDecorator = node.parent?.nodeType === 16 /* ParseNodeType.Decorator */;
2531
+ const declaredOnBoundObjectOrClass = boundSymbolTable?.has(name);
2381
2532
  this.addSymbol(name, symbol, priorWord, completionMap, {
2382
2533
  boundObjectOrClass,
2534
+ declaredOnBoundObjectOrClass,
2383
2535
  funcParensDisabled: isInImport || insideTypeAnnotation || skipForClass || skipForDecorator,
2384
2536
  extraCommitChars: !isInImport && !!priorWord,
2385
2537
  });
@@ -2418,6 +2570,8 @@ class CompletionProvider {
2418
2570
  sortCategory = SortCategory.RecentImportModuleName;
2419
2571
  }
2420
2572
  else if (sortCategory === SortCategory.Keyword ||
2573
+ sortCategory === SortCategory.DeclaredSymbol ||
2574
+ sortCategory === SortCategory.DeclaredPrivateSymbol ||
2421
2575
  sortCategory === SortCategory.NormalSymbol ||
2422
2576
  sortCategory === SortCategory.PrivateSymbol ||
2423
2577
  sortCategory === SortCategory.DunderSymbol) {
@@ -2500,13 +2654,7 @@ class CompletionProvider {
2500
2654
  }
2501
2655
  }
2502
2656
  _getImportModuleCompletions(node) {
2503
- const moduleDescriptor = {
2504
- leadingDots: node.d.leadingDots,
2505
- hasTrailingDot: node.d.hasTrailingDot || false,
2506
- nameParts: node.d.nameParts.map((part) => part.d.value),
2507
- importedSymbols: new Set(),
2508
- };
2509
- const completions = this.importResolver.getCompletionSuggestions(this.fileUri, this.execEnv, moduleDescriptor);
2657
+ const completions = (0, importStatementCandidates_1.getModuleNameCompletionSuggestions)(this.importResolver, this.fileUri, this.execEnv, node);
2510
2658
  const completionMap = new CompletionMap();
2511
2659
  // If we're in the middle of a "from X import Y" statement, offer
2512
2660
  // the "import" keyword as a completion.