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

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 (94) hide show
  1. package/dist/tests/typeServer/inProcTypeServerTestUtils.d.ts +39 -0
  2. package/dist/tests/typeServer/inProcTypeServerTestUtils.js +366 -0
  3. package/dist/tests/typeServer/inProcTypeServerTestUtils.js.map +1 -0
  4. package/dist/tests/typeServer/notebook.typeServer.test.d.ts +1 -0
  5. package/dist/tests/typeServer/notebook.typeServer.test.js +315 -0
  6. package/dist/tests/typeServer/notebook.typeServer.test.js.map +1 -0
  7. package/dist/tests/typeServer/typeServer.inProc.test.d.ts +1 -0
  8. package/dist/tests/typeServer/typeServer.inProc.test.js +234 -0
  9. package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -0
  10. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.d.ts +1 -0
  11. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +298 -0
  12. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -0
  13. package/dist/typeServer/cancellation.d.ts +5 -0
  14. package/dist/typeServer/cancellation.js +14 -0
  15. package/dist/typeServer/cancellation.js.map +1 -0
  16. package/dist/typeServer/diagnosticUtils.d.ts +4 -0
  17. package/dist/typeServer/diagnosticUtils.js +71 -0
  18. package/dist/typeServer/diagnosticUtils.js.map +1 -0
  19. package/dist/typeServer/enums.d.ts +14 -0
  20. package/dist/typeServer/enums.js +524 -0
  21. package/dist/typeServer/enums.js.map +1 -0
  22. package/dist/typeServer/eventEmitter.d.ts +12 -0
  23. package/dist/typeServer/eventEmitter.js +32 -0
  24. package/dist/typeServer/eventEmitter.js.map +1 -0
  25. package/dist/typeServer/nodeMain.d.ts +1 -0
  26. package/dist/typeServer/nodeMain.js +65 -0
  27. package/dist/typeServer/nodeMain.js.map +1 -0
  28. package/dist/typeServer/notebookCellChain.d.ts +34 -0
  29. package/dist/typeServer/notebookCellChain.js +182 -0
  30. package/dist/typeServer/notebookCellChain.js.map +1 -0
  31. package/dist/typeServer/notebookDocumentHandler.d.ts +23 -0
  32. package/dist/typeServer/notebookDocumentHandler.js +158 -0
  33. package/dist/typeServer/notebookDocumentHandler.js.map +1 -0
  34. package/dist/typeServer/notebookUriMapper.d.ts +39 -0
  35. package/dist/typeServer/notebookUriMapper.js +164 -0
  36. package/dist/typeServer/notebookUriMapper.js.map +1 -0
  37. package/dist/typeServer/profilingStub.d.ts +10 -0
  38. package/dist/typeServer/profilingStub.js +12 -0
  39. package/dist/typeServer/profilingStub.js.map +1 -0
  40. package/dist/typeServer/programTypes.d.ts +136 -0
  41. package/dist/typeServer/programTypes.js +3 -0
  42. package/dist/typeServer/programTypes.js.map +1 -0
  43. package/dist/typeServer/programWrapper.d.ts +134 -0
  44. package/dist/typeServer/programWrapper.js +731 -0
  45. package/dist/typeServer/programWrapper.js.map +1 -0
  46. package/dist/typeServer/protocol/tspSupplemental.d.ts +43 -0
  47. package/dist/typeServer/protocol/tspSupplemental.js +48 -0
  48. package/dist/typeServer/protocol/tspSupplemental.js.map +1 -0
  49. package/dist/typeServer/protocol/typeServerProtocol.d.ts +1102 -0
  50. package/dist/typeServer/protocol/typeServerProtocol.js +290 -0
  51. package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -0
  52. package/dist/typeServer/server.d.ts +54 -0
  53. package/dist/typeServer/server.js +620 -0
  54. package/dist/typeServer/server.js.map +1 -0
  55. package/dist/typeServer/serverUtils.d.ts +4 -0
  56. package/dist/typeServer/serverUtils.js +21 -0
  57. package/dist/typeServer/serverUtils.js.map +1 -0
  58. package/dist/typeServer/stubGenerator.d.ts +42 -0
  59. package/dist/typeServer/stubGenerator.js +895 -0
  60. package/dist/typeServer/stubGenerator.js.map +1 -0
  61. package/dist/typeServer/typeCache.d.ts +31 -0
  62. package/dist/typeServer/typeCache.js +54 -0
  63. package/dist/typeServer/typeCache.js.map +1 -0
  64. package/dist/typeServer/typeEvalUtils.d.ts +13 -0
  65. package/dist/typeServer/typeEvalUtils.js +83 -0
  66. package/dist/typeServer/typeEvalUtils.js.map +1 -0
  67. package/dist/typeServer/typeGuards.d.ts +3 -0
  68. package/dist/typeServer/typeGuards.js +55 -0
  69. package/dist/typeServer/typeGuards.js.map +1 -0
  70. package/dist/typeServer/typeServerConversionTypes.d.ts +39 -0
  71. package/dist/typeServer/typeServerConversionTypes.js +448 -0
  72. package/dist/typeServer/typeServerConversionTypes.js.map +1 -0
  73. package/dist/typeServer/typeServerConversionUtils.d.ts +35 -0
  74. package/dist/typeServer/typeServerConversionUtils.js +524 -0
  75. package/dist/typeServer/typeServerConversionUtils.js.map +1 -0
  76. package/dist/typeServer/typeServerEvaluator.d.ts +16 -0
  77. package/dist/typeServer/typeServerEvaluator.js +36 -0
  78. package/dist/typeServer/typeServerEvaluator.js.map +1 -0
  79. package/dist/typeServer/typeServerFileSystem.d.ts +47 -0
  80. package/dist/typeServer/typeServerFileSystem.js +129 -0
  81. package/dist/typeServer/typeServerFileSystem.js.map +1 -0
  82. package/dist/typeServer/typeServerProtocolUtils.d.ts +2 -0
  83. package/dist/typeServer/typeServerProtocolUtils.js +7 -0
  84. package/dist/typeServer/typeServerProtocolUtils.js.map +1 -0
  85. package/dist/typeServer/typeServerServiceKeys.d.ts +7 -0
  86. package/dist/typeServer/typeServerServiceKeys.js +20 -0
  87. package/dist/typeServer/typeServerServiceKeys.js.map +1 -0
  88. package/dist/typeServer/typeUtils.d.ts +4 -0
  89. package/dist/typeServer/typeUtils.js +31 -0
  90. package/dist/typeServer/typeUtils.js.map +1 -0
  91. package/dist/typeServer/virtualFileOverlayFileSystem.d.ts +87 -0
  92. package/dist/typeServer/virtualFileOverlayFileSystem.js +181 -0
  93. package/dist/typeServer/virtualFileOverlayFileSystem.js.map +1 -0
  94. package/package.json +1 -1
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.toProtocolNode = toProtocolNode;
37
+ exports.fromProtocolNode = fromProtocolNode;
38
+ exports.toProtocolDeclCategory = toProtocolDeclCategory;
39
+ exports.toProtocolDecl = toProtocolDecl;
40
+ exports.getProtocolDeclKey = getProtocolDeclKey;
41
+ exports.fromProtocolDecl = fromProtocolDecl;
42
+ exports.getSymbolNameFromDeclaration = getSymbolNameFromDeclaration;
43
+ exports.getParseNodeTypesForDecl = getParseNodeTypesForDecl;
44
+ exports.toProtocolTypeFlags = toProtocolTypeFlags;
45
+ exports.toProtocolVariance = toProtocolVariance;
46
+ const PyrightDecl = __importStar(require("../analyzer/declaration"));
47
+ const declarationUtils_1 = require("../analyzer/declarationUtils");
48
+ const parseTreeWalker_1 = require("../analyzer/parseTreeWalker");
49
+ const PyrightTypes = __importStar(require("../analyzer/types"));
50
+ const typeUtils_1 = require("../analyzer/typeUtils");
51
+ const debug = __importStar(require("../common/debug"));
52
+ const positionUtils_1 = require("../common/positionUtils");
53
+ const textRange_1 = require("../common/textRange");
54
+ const uriUtils_1 = require("../common/uri/uriUtils");
55
+ const serverUtils_1 = require("./serverUtils");
56
+ function toProtocolNode(node, provider) {
57
+ const uri = provider.getUri(node);
58
+ const results = provider.getParserOutput(uri);
59
+ if (!results) {
60
+ throw new Error(`Unable to find parse results for ${uri}`);
61
+ }
62
+ const range = (0, positionUtils_1.convertOffsetsToRange)(node.start, node.start + node.length, results.lines);
63
+ // Before becoming a protocol node, we need to convert the uri to an LSP URI string.
64
+ const uriString = (0, uriUtils_1.convertUriToLspUriString)(provider.fs, uri);
65
+ return {
66
+ uri: uriString,
67
+ range,
68
+ };
69
+ }
70
+ function fromProtocolNode(node, resultsProvider, typeHints) {
71
+ const uri = (0, serverUtils_1.convertLspUriStringToUri)(node.uri, resultsProvider, resultsProvider.uriMapper);
72
+ const mappedUri = resultsProvider.fs.getMappedUri(uri);
73
+ const parserOutput = resultsProvider.getParserOutput(mappedUri);
74
+ const rootNode = parserOutput?.parseTree;
75
+ if (!rootNode) {
76
+ throw new Error(`Unable to find parse results for ${node.uri}`);
77
+ }
78
+ const start = (0, positionUtils_1.convertPositionToOffset)(node.range.start, parserOutput.lines);
79
+ const end = (0, positionUtils_1.convertPositionToOffset)(node.range.end, parserOutput.lines);
80
+ if (start === undefined || end === undefined) {
81
+ throw new Error(`Invalid range for node: ${JSON.stringify(node)}`);
82
+ }
83
+ function keepNewType(oldType, newType) {
84
+ if (typeHints) {
85
+ return typeHints.some((t) => t === newType);
86
+ }
87
+ switch (oldType) {
88
+ case 38 /* PyrightNodes.ParseNodeType.Name */:
89
+ return newType !== 38 /* PyrightNodes.ParseNodeType.Name */;
90
+ case 48 /* PyrightNodes.ParseNodeType.StringList */:
91
+ return newType !== 49 /* PyrightNodes.ParseNodeType.String */;
92
+ case 49 /* PyrightNodes.ParseNodeType.String */:
93
+ return newType === 48 /* PyrightNodes.ParseNodeType.StringList */;
94
+ case 40 /* PyrightNodes.ParseNodeType.Number */:
95
+ return newType === 46 /* PyrightNodes.ParseNodeType.Slice */;
96
+ case 46 /* PyrightNodes.ParseNodeType.Slice */:
97
+ return newType !== 40 /* PyrightNodes.ParseNodeType.Number */;
98
+ case 37 /* PyrightNodes.ParseNodeType.ModuleName */:
99
+ return (newType === 23 /* PyrightNodes.ParseNodeType.Import */ ||
100
+ newType === 25 /* PyrightNodes.ParseNodeType.ImportFrom */ ||
101
+ newType === 24 /* PyrightNodes.ParseNodeType.ImportAs */ ||
102
+ newType === 26 /* PyrightNodes.ParseNodeType.ImportFromAs */);
103
+ case 23 /* PyrightNodes.ParseNodeType.Import */:
104
+ case 25 /* PyrightNodes.ParseNodeType.ImportFrom */:
105
+ case 24 /* PyrightNodes.ParseNodeType.ImportAs */:
106
+ case 26 /* PyrightNodes.ParseNodeType.ImportFromAs */:
107
+ return newType !== 37 /* PyrightNodes.ParseNodeType.ModuleName */;
108
+ case 0 /* PyrightNodes.ParseNodeType.Error */:
109
+ return newType !== 0 /* PyrightNodes.ParseNodeType.Error */;
110
+ default:
111
+ return true;
112
+ }
113
+ }
114
+ // Now that we have the root node, we can search for the node that contains the range.
115
+ class ParseTreeWalkerImpl extends parseTreeWalker_1.ParseTreeWalker {
116
+ constructor(_start, _length) {
117
+ super();
118
+ this._start = _start;
119
+ this._length = _length;
120
+ this._bestMatch = rootNode;
121
+ this._bestMatchType = 0 /* PyrightNodes.ParseNodeType.Error */;
122
+ this._range = textRange_1.TextRange.create(_start, _length);
123
+ }
124
+ getBestMatch() {
125
+ return this._bestMatch;
126
+ }
127
+ visitNode(node) {
128
+ if (node.start === this._start &&
129
+ node.length >= this._length &&
130
+ this._bestMatch.length >= node.length &&
131
+ keepNewType(this._bestMatchType, node.nodeType)) {
132
+ this._bestMatchType = node.nodeType;
133
+ this._bestMatch = node;
134
+ }
135
+ // Perform the same special case that findNodeByOffset does for augmented assignments. leftExpr is
136
+ // not searched, but rather the destExpr is.
137
+ if (node.nodeType === 5 /* PyrightNodes.ParseNodeType.AugmentedAssignment */) {
138
+ return [node.d.destExpr, node.d.rightExpr];
139
+ }
140
+ return super.visitNode(node);
141
+ }
142
+ walk(node) {
143
+ if (!textRange_1.TextRange.overlapsRange(this._range, node)) {
144
+ // If the node doesn't overlap with the range, we can skip it.
145
+ return;
146
+ }
147
+ super.walk(node);
148
+ }
149
+ }
150
+ const walker = new ParseTreeWalkerImpl(start, end - start);
151
+ walker.walk(rootNode);
152
+ const bestMatch = walker.getBestMatch();
153
+ if (typeHints && !typeHints.some((t) => t === bestMatch.nodeType)) {
154
+ // The range may not line up exactly with the hinted node type (e.g. due to edits or
155
+ // subtle parse differences). Prefer resiliency over crashing; retry without hints.
156
+ return fromProtocolNode(node, resultsProvider, /* typeHints */ undefined);
157
+ }
158
+ return bestMatch;
159
+ }
160
+ function toProtocolDeclCategory(decl) {
161
+ switch (decl.type) {
162
+ case 0 /* PyrightDecl.DeclarationType.Intrinsic */:
163
+ return 0 /* TypeServerProtocol.DeclarationCategory.Intrinsic */;
164
+ case 5 /* PyrightDecl.DeclarationType.Function */:
165
+ return 5 /* TypeServerProtocol.DeclarationCategory.Function */;
166
+ case 6 /* PyrightDecl.DeclarationType.Class */:
167
+ case 7 /* PyrightDecl.DeclarationType.SpecialBuiltInClass */:
168
+ return 6 /* TypeServerProtocol.DeclarationCategory.Class */;
169
+ case 2 /* PyrightDecl.DeclarationType.Param */:
170
+ return 2 /* TypeServerProtocol.DeclarationCategory.Param */;
171
+ case 3 /* PyrightDecl.DeclarationType.TypeParam */:
172
+ return 3 /* TypeServerProtocol.DeclarationCategory.TypeParam */;
173
+ case 4 /* PyrightDecl.DeclarationType.TypeAlias */:
174
+ return 4 /* TypeServerProtocol.DeclarationCategory.TypeAlias */;
175
+ case 1 /* PyrightDecl.DeclarationType.Variable */:
176
+ return 1 /* TypeServerProtocol.DeclarationCategory.Variable */;
177
+ case 8 /* PyrightDecl.DeclarationType.Alias */:
178
+ return 7 /* TypeServerProtocol.DeclarationCategory.Import */;
179
+ default:
180
+ throw new Error(`Unknown declaration type: ${decl.type}`);
181
+ }
182
+ }
183
+ function toProtocolDecl(decl, provider) {
184
+ const wrap = {
185
+ fs: provider.fs,
186
+ uriMapper: provider.uriMapper,
187
+ isCaseSensitive: (uri) => provider.isCaseSensitive(uri),
188
+ getUri: (node) => (decl.node ? provider.getUri(decl.node) : decl.uri),
189
+ getParserOutput: (uri) => provider.getParserOutput(uri),
190
+ addStubCode: (code) => provider.addStubCode(code),
191
+ };
192
+ if (!decl.node) {
193
+ return {
194
+ kind: 1 /* TypeServerProtocol.DeclarationKind.Synthesized */,
195
+ uri: (0, uriUtils_1.convertUriToLspUriString)(provider.fs, decl.uri),
196
+ };
197
+ }
198
+ return {
199
+ kind: 0 /* TypeServerProtocol.DeclarationKind.Regular */,
200
+ category: toProtocolDeclCategory(decl),
201
+ node: toProtocolNode(decl.node, wrap),
202
+ name: getSymbolNameFromDeclaration(decl),
203
+ };
204
+ }
205
+ /**
206
+ * Build a stable string key for a TSP `Declaration`. Used to cache
207
+ * `fromProtocolDecl` results on a snapshot.
208
+ *
209
+ * The key intentionally captures only the protocol-visible identity of the
210
+ * declaration (uri + range + kind/category + name) so that distinct TSP
211
+ * `Declaration` object instances that refer to the same source-level
212
+ * declaration share a cache entry.
213
+ */
214
+ function getProtocolDeclKey(decl) {
215
+ if (decl.kind === 1 /* TypeServerProtocol.DeclarationKind.Synthesized */) {
216
+ return `s:${decl.uri}`;
217
+ }
218
+ const r = decl.node.range;
219
+ return `r:${decl.node.uri}:${r.start.line},${r.start.character}-${r.end.line},${r.end.character}:${decl.category}:${decl.name ?? ''}`;
220
+ }
221
+ function fromProtocolDecl(decl, resultsProvider, symbolLookup) {
222
+ if (decl.kind === 1 /* TypeServerProtocol.DeclarationKind.Synthesized */) {
223
+ return (0, declarationUtils_1.synthesizeAliasDeclaration)((0, serverUtils_1.convertLspUriStringToUri)(decl.uri, resultsProvider, resultsProvider.uriMapper));
224
+ }
225
+ if (!decl.name) {
226
+ return undefined;
227
+ }
228
+ const hints = getParseNodeTypesForDecl(decl);
229
+ // Try to get the node from the protocol - if this fails (e.g., file not available in this context
230
+ // or the range is invalid because the external server uses a different version of the file),
231
+ // fall back to the module root node so we can still look up the symbol by name.
232
+ let node;
233
+ try {
234
+ node = fromProtocolNode(decl.node, resultsProvider, hints);
235
+ }
236
+ catch (error) {
237
+ // Try to get the module root node as a fallback for symbol lookup.
238
+ if (decl.node?.uri) {
239
+ try {
240
+ const uri = (0, serverUtils_1.convertLspUriStringToUri)(decl.node.uri, resultsProvider, resultsProvider.uriMapper);
241
+ const mappedUri = resultsProvider.fs.getMappedUri(uri);
242
+ const parserOutput = resultsProvider.getParserOutput(mappedUri);
243
+ if (parserOutput?.parseTree) {
244
+ node = parserOutput.parseTree;
245
+ }
246
+ }
247
+ catch {
248
+ // Ignore - will fall through to return undefined below.
249
+ }
250
+ }
251
+ if (!node) {
252
+ return undefined;
253
+ }
254
+ }
255
+ if (decl.category !== 7 /* TypeServerProtocol.DeclarationCategory.Import */ && !node) {
256
+ return undefined;
257
+ }
258
+ if (!node) {
259
+ return undefined;
260
+ }
261
+ const symbol = symbolLookup.lookupSymbol(node, decl.name);
262
+ if (!symbol) {
263
+ return undefined;
264
+ }
265
+ // Helper to check if a declaration matches the expected category type.
266
+ const matchesDeclCategory = (d) => {
267
+ switch (decl.category) {
268
+ case 7 /* TypeServerProtocol.DeclarationCategory.Import */:
269
+ return PyrightDecl.isAliasDeclaration(d);
270
+ case 0 /* TypeServerProtocol.DeclarationCategory.Intrinsic */:
271
+ return PyrightDecl.isIntrinsicDeclaration(d);
272
+ case 1 /* TypeServerProtocol.DeclarationCategory.Variable */:
273
+ return PyrightDecl.isVariableDeclaration(d);
274
+ case 2 /* TypeServerProtocol.DeclarationCategory.Param */:
275
+ return PyrightDecl.isParamDeclaration(d);
276
+ case 3 /* TypeServerProtocol.DeclarationCategory.TypeParam */:
277
+ return PyrightDecl.isTypeParamDeclaration(d);
278
+ case 4 /* TypeServerProtocol.DeclarationCategory.TypeAlias */:
279
+ return PyrightDecl.isTypeAliasDeclaration(d);
280
+ case 5 /* TypeServerProtocol.DeclarationCategory.Function */:
281
+ return PyrightDecl.isFunctionDeclaration(d);
282
+ case 6 /* TypeServerProtocol.DeclarationCategory.Class */:
283
+ return PyrightDecl.isClassDeclaration(d) || PyrightDecl.isSpecialBuiltInClassDeclaration(d);
284
+ default:
285
+ return false;
286
+ }
287
+ };
288
+ // Helper to check if a declaration's node matches the protocol node identity.
289
+ const matchesNodeIdentity = (d) => {
290
+ if (d.node === node) {
291
+ return true;
292
+ }
293
+ // For Function/Class declarations, also check if the name node matches.
294
+ if (PyrightDecl.isFunctionDeclaration(d) && d.node.d.name === node) {
295
+ return true;
296
+ }
297
+ if (PyrightDecl.isClassDeclaration(d) && d.node.d.name === node) {
298
+ return true;
299
+ }
300
+ return false;
301
+ };
302
+ const allDecls = symbol.getDeclarations();
303
+ // First try: exact node identity match (preferred).
304
+ const exactMatch = allDecls.find((d) => matchesDeclCategory(d) && matchesNodeIdentity(d));
305
+ if (exactMatch) {
306
+ return exactMatch;
307
+ }
308
+ // Fallback: when the external type server provides imprecise node ranges (e.g., file-level
309
+ // ranges that resolve to the Module node instead of the actual declaration node), the node
310
+ // identity check fails. In that case, fall back to matching by category alone. Since
311
+ // lookupSymbol already constrained to the correct symbol, this is safe.
312
+ return allDecls.find((d) => matchesDeclCategory(d));
313
+ }
314
+ function getSymbolNameFromDeclaration(declaration) {
315
+ switch (declaration.type) {
316
+ case 8 /* PyrightDecl.DeclarationType.Alias */: {
317
+ if (declaration.node.nodeType === 25 /* PyrightNodes.ParseNodeType.ImportFrom */) {
318
+ if (declaration.node.d.isWildcardImport) {
319
+ return declaration.symbolName;
320
+ }
321
+ return declaration.node.d.module.d.nameParts[0].d.value;
322
+ }
323
+ if (declaration.node.nodeType === 26 /* PyrightNodes.ParseNodeType.ImportFromAs */) {
324
+ const nameNode = declaration.node.d.alias || declaration.node.d.name;
325
+ return nameNode.d.value;
326
+ }
327
+ if (declaration.node.nodeType === 24 /* PyrightNodes.ParseNodeType.ImportAs */) {
328
+ return declaration.node.d.alias
329
+ ? declaration.node.d.alias.d.value
330
+ : declaration.node.d.module.d.nameParts[0].d.value;
331
+ }
332
+ return undefined;
333
+ }
334
+ case 6 /* PyrightDecl.DeclarationType.Class */:
335
+ case 5 /* PyrightDecl.DeclarationType.Function */:
336
+ case 3 /* PyrightDecl.DeclarationType.TypeParam */:
337
+ case 4 /* PyrightDecl.DeclarationType.TypeAlias */:
338
+ return declaration.node.d.name.d.value;
339
+ case 2 /* PyrightDecl.DeclarationType.Param */:
340
+ return declaration.node.d.name?.d.value;
341
+ case 1 /* PyrightDecl.DeclarationType.Variable */: {
342
+ const node = declaration.node;
343
+ return node.nodeType === 38 /* PyrightNodes.ParseNodeType.Name */
344
+ ? node.d.value
345
+ : node.nodeType === 48 /* PyrightNodes.ParseNodeType.StringList */
346
+ ? node.d.strings[0].d.value
347
+ : undefined;
348
+ }
349
+ case 0 /* PyrightDecl.DeclarationType.Intrinsic */:
350
+ return declaration.name;
351
+ case 7 /* PyrightDecl.DeclarationType.SpecialBuiltInClass */:
352
+ return declaration.node.d.valueExpr.nodeType === 38 /* PyrightNodes.ParseNodeType.Name */
353
+ ? declaration.node.d.valueExpr.d.value
354
+ : undefined;
355
+ default: {
356
+ debug.assertNever(declaration);
357
+ }
358
+ }
359
+ }
360
+ function getParseNodeTypesForDecl(decl) {
361
+ if (decl.kind === 1 /* TypeServerProtocol.DeclarationKind.Synthesized */) {
362
+ // Synthesized declarations don't have an associated node.
363
+ return [];
364
+ }
365
+ switch (decl.category) {
366
+ case 7 /* TypeServerProtocol.DeclarationCategory.Import */: {
367
+ return [
368
+ 24 /* PyrightNodes.ParseNodeType.ImportAs */,
369
+ 26 /* PyrightNodes.ParseNodeType.ImportFromAs */,
370
+ 25 /* PyrightNodes.ParseNodeType.ImportFrom */,
371
+ ];
372
+ }
373
+ case 0 /* TypeServerProtocol.DeclarationCategory.Intrinsic */: {
374
+ return [
375
+ 36 /* PyrightNodes.ParseNodeType.Module */ |
376
+ 31 /* PyrightNodes.ParseNodeType.Function */ |
377
+ 10 /* PyrightNodes.ParseNodeType.Class */,
378
+ ];
379
+ }
380
+ case 1 /* TypeServerProtocol.DeclarationCategory.Variable */: {
381
+ return [38 /* PyrightNodes.ParseNodeType.Name */, 48 /* PyrightNodes.ParseNodeType.StringList */];
382
+ }
383
+ case 2 /* TypeServerProtocol.DeclarationCategory.Param */: {
384
+ return [41 /* PyrightNodes.ParseNodeType.Parameter */];
385
+ }
386
+ case 3 /* TypeServerProtocol.DeclarationCategory.TypeParam */: {
387
+ return [75 /* PyrightNodes.ParseNodeType.TypeParameter */];
388
+ }
389
+ case 4 /* TypeServerProtocol.DeclarationCategory.TypeAlias */: {
390
+ return [77 /* PyrightNodes.ParseNodeType.TypeAlias */];
391
+ }
392
+ case 5 /* TypeServerProtocol.DeclarationCategory.Function */: {
393
+ return [31 /* PyrightNodes.ParseNodeType.Function */];
394
+ }
395
+ case 6 /* TypeServerProtocol.DeclarationCategory.Class */: {
396
+ return [10 /* PyrightNodes.ParseNodeType.Class */, 54 /* PyrightNodes.ParseNodeType.TypeAnnotation */];
397
+ }
398
+ }
399
+ }
400
+ function toProtocolTypeFlags(type) {
401
+ let flags = 0 /* TypeServerProtocol.TypeFlags.None */;
402
+ if (PyrightTypes.isClass(type) && (0, typeUtils_1.isLiteralType)(type)) {
403
+ flags |= 8 /* TypeServerProtocol.TypeFlags.Literal */;
404
+ }
405
+ if (PyrightTypes.isClass(type) && type.shared.typeParams.length > 0) {
406
+ flags |= 32 /* TypeServerProtocol.TypeFlags.Generic */;
407
+ }
408
+ if (PyrightTypes.TypeBase.isInstance(type)) {
409
+ flags |= 2 /* TypeServerProtocol.TypeFlags.Instance */;
410
+ }
411
+ if (PyrightTypes.TypeBase.isInstantiable(type)) {
412
+ flags |= 1 /* TypeServerProtocol.TypeFlags.Instantiable */;
413
+ }
414
+ if ((0, typeUtils_1.isCallableType)(type)) {
415
+ flags |= 4 /* TypeServerProtocol.TypeFlags.Callable */;
416
+ }
417
+ if (PyrightTypes.isClass(type) && PyrightTypes.ClassType.isProtocolClass(type)) {
418
+ flags |= 16 /* TypeServerProtocol.TypeFlags.Interface */;
419
+ }
420
+ if (type.props?.typeAliasInfo) {
421
+ flags |= 64 /* TypeServerProtocol.TypeFlags.FromAlias */;
422
+ }
423
+ if (PyrightTypes.isUnpacked(type)) {
424
+ flags |= 128 /* TypeServerProtocol.TypeFlags.Unpacked */;
425
+ }
426
+ return flags;
427
+ }
428
+ function toProtocolVariance(variance) {
429
+ if (variance === undefined) {
430
+ return undefined;
431
+ }
432
+ switch (variance) {
433
+ case 0 /* PyrightTypes.Variance.Auto */:
434
+ return 0 /* TypeServerProtocol.Variance.Auto */;
435
+ case 1 /* PyrightTypes.Variance.Unknown */:
436
+ return 1 /* TypeServerProtocol.Variance.Unknown */;
437
+ case 2 /* PyrightTypes.Variance.Invariant */:
438
+ return 2 /* TypeServerProtocol.Variance.Invariant */;
439
+ case 3 /* PyrightTypes.Variance.Covariant */:
440
+ return 3 /* TypeServerProtocol.Variance.Covariant */;
441
+ case 4 /* PyrightTypes.Variance.Contravariant */:
442
+ return 4 /* TypeServerProtocol.Variance.Contravariant */;
443
+ default:
444
+ debug.assertNever(variance);
445
+ }
446
+ return 1 /* TypeServerProtocol.Variance.Unknown */;
447
+ }
448
+ //# sourceMappingURL=typeServerConversionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeServerConversionTypes.js","sourceRoot":"","sources":["../../../../../src/typeServer/typeServerConversionTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ * Licensed under the MIT license.
4
+ *
5
+ * abstractConversionUtils.ts
6
+ *
7
+ * Conversion utilities for converting between concrete and abstract representations of nodes and declarations.
8
+ */
9
+ import { TypeServerProtocol } from './protocol/typeServerProtocol';
10
+ import { Declaration } from '../analyzer/declaration';
11
+ import * as PyrightTypes from '../analyzer/types';
12
+ import { PythonVersion } from '../common/pythonVersion';
13
+ import { Uri } from '../common/uri/uri';
14
+ import * as PyrightNodes from '../parser/parseNodes';
15
+ import { ITypeServerEvaluator } from './typeServerEvaluator';
16
+ import { IProgram } from './programTypes';
17
+ export declare function toProtocolModuleName(moduleName: string): TypeServerProtocol.ModuleName;
18
+ export declare class ProtocolTypeFactory {
19
+ readonly view: IProgram;
20
+ readonly pythonVersion: PythonVersion;
21
+ private _id;
22
+ private readonly _cycleMap;
23
+ private readonly _sourceUri;
24
+ private readonly _evaluator;
25
+ constructor(view: IProgram, pythonVersion: PythonVersion, declarationOrNode: Declaration | PyrightNodes.ParseNode);
26
+ get sourceUri(): Uri;
27
+ get evaluator(): ITypeServerEvaluator;
28
+ getNextId(): number;
29
+ getModule(type: PyrightTypes.FunctionType | PyrightTypes.ClassType): PyrightTypes.ModuleType;
30
+ getType(type: PyrightTypes.Type): TypeServerProtocol.Type;
31
+ private _set;
32
+ private _extractSourceUri;
33
+ }
34
+ export declare function getDeclarationForTypeVar(typeVar: PyrightTypes.TypeVarType, factory: ProtocolTypeFactory): Declaration | undefined;
35
+ export declare function findFirstExpression(node: PyrightNodes.ParseNode): PyrightNodes.ExpressionNode | undefined;