@zzzen/pyright-internal 1.2.0-dev.20260920 → 1.2.0-dev.20260927

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 (150) hide show
  1. package/dist/analyzer/checker.d.ts +2 -1
  2. package/dist/analyzer/checker.js +15 -1
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/codeFlowEngine.js +9 -3
  5. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  6. package/dist/analyzer/operations.js +1 -1
  7. package/dist/analyzer/operations.js.map +1 -1
  8. package/dist/analyzer/overloadResult.d.ts +15 -0
  9. package/dist/analyzer/overloadResult.js +233 -0
  10. package/dist/analyzer/overloadResult.js.map +1 -0
  11. package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
  12. package/dist/analyzer/overloadResultAdmission.js +448 -0
  13. package/dist/analyzer/overloadResultAdmission.js.map +1 -0
  14. package/dist/analyzer/overloadResultController.d.ts +227 -0
  15. package/dist/analyzer/overloadResultController.js +904 -0
  16. package/dist/analyzer/overloadResultController.js.map +1 -0
  17. package/dist/analyzer/overloadResultSelector.d.ts +24 -0
  18. package/dist/analyzer/overloadResultSelector.js +131 -0
  19. package/dist/analyzer/overloadResultSelector.js.map +1 -0
  20. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  21. package/dist/analyzer/parseTreeUtils.js +4 -0
  22. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  23. package/dist/analyzer/program.d.ts +13 -2
  24. package/dist/analyzer/program.js +98 -46
  25. package/dist/analyzer/program.js.map +1 -1
  26. package/dist/analyzer/protocols.d.ts +1 -0
  27. package/dist/analyzer/protocols.js +286 -6
  28. package/dist/analyzer/protocols.js.map +1 -1
  29. package/dist/analyzer/sourceFile.d.ts +6 -2
  30. package/dist/analyzer/sourceFile.js +9 -3
  31. package/dist/analyzer/sourceFile.js.map +1 -1
  32. package/dist/analyzer/tracePrinter.js +4 -0
  33. package/dist/analyzer/tracePrinter.js.map +1 -1
  34. package/dist/analyzer/typeCacheUtils.d.ts +4 -0
  35. package/dist/analyzer/typeCacheUtils.js +36 -0
  36. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  37. package/dist/analyzer/typeComplexity.js +2 -0
  38. package/dist/analyzer/typeComplexity.js.map +1 -1
  39. package/dist/analyzer/typeEvaluator.d.ts +10 -1
  40. package/dist/analyzer/typeEvaluator.js +351 -11
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +30 -1
  43. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  44. package/dist/analyzer/typeGuards.d.ts +1 -1
  45. package/dist/analyzer/typePrinter.js +8 -0
  46. package/dist/analyzer/typePrinter.js.map +1 -1
  47. package/dist/analyzer/typeUtils.d.ts +1 -1
  48. package/dist/analyzer/typeUtils.js +29 -26
  49. package/dist/analyzer/typeUtils.js.map +1 -1
  50. package/dist/analyzer/typeWalker.d.ts +2 -1
  51. package/dist/analyzer/typeWalker.js +12 -0
  52. package/dist/analyzer/typeWalker.js.map +1 -1
  53. package/dist/analyzer/typedDicts.js +1 -0
  54. package/dist/analyzer/typedDicts.js.map +1 -1
  55. package/dist/analyzer/types.d.ts +16 -2
  56. package/dist/analyzer/types.js +94 -2
  57. package/dist/analyzer/types.js.map +1 -1
  58. package/dist/common/configOptions.d.ts +1 -0
  59. package/dist/common/configOptions.js +2 -0
  60. package/dist/common/configOptions.js.map +1 -1
  61. package/dist/languageServerBase.js +2 -2
  62. package/dist/languageServerBase.js.map +1 -1
  63. package/dist/languageService/callHierarchyProvider.js +3 -2
  64. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  65. package/dist/languageService/completionProvider.js +4 -1
  66. package/dist/languageService/completionProvider.js.map +1 -1
  67. package/dist/tests/config.test.js +48 -0
  68. package/dist/tests/config.test.js.map +1 -1
  69. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
  70. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
  71. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
  72. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
  73. package/dist/tests/harness/fourslash/testState.js +10 -9
  74. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  75. package/dist/tests/languageServer.test.js +129 -0
  76. package/dist/tests/languageServer.test.js.map +1 -1
  77. package/dist/tests/overloadResult.test.d.ts +1 -0
  78. package/dist/tests/overloadResult.test.js +182 -0
  79. package/dist/tests/overloadResult.test.js.map +1 -0
  80. package/dist/tests/overloadResultController.test.d.ts +1 -0
  81. package/dist/tests/overloadResultController.test.js +2146 -0
  82. package/dist/tests/overloadResultController.test.js.map +1 -0
  83. package/dist/tests/protocolRequirement.test.d.ts +1 -0
  84. package/dist/tests/protocolRequirement.test.js +122 -0
  85. package/dist/tests/protocolRequirement.test.js.map +1 -0
  86. package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
  87. package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
  88. package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
  89. package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
  90. package/dist/tests/protocolRequirementBoundary.test.js +119 -0
  91. package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
  92. package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
  93. package/dist/tests/protocolRequirementComplexity.test.js +159 -0
  94. package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
  95. package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
  96. package/dist/tests/protocolRequirementCycles.test.js +160 -0
  97. package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
  98. package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
  99. package/dist/tests/protocolRequirementGeneral.test.js +120 -0
  100. package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
  101. package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
  102. package/dist/tests/protocolRequirementInstances.test.js +164 -0
  103. package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
  104. package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
  105. package/dist/tests/protocolRequirementListStub.test.js +244 -0
  106. package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
  107. package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
  108. package/dist/tests/protocolRequirementPopulated.test.js +172 -0
  109. package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
  110. package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
  111. package/dist/tests/protocolRequirementRecursive.test.js +118 -0
  112. package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
  113. package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
  114. package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
  115. package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
  116. package/dist/tests/protocolRequirementState.test.d.ts +1 -0
  117. package/dist/tests/protocolRequirementState.test.js +161 -0
  118. package/dist/tests/protocolRequirementState.test.js.map +1 -0
  119. package/dist/tests/testState.test.js +64 -0
  120. package/dist/tests/testState.test.js.map +1 -1
  121. package/dist/tests/testUtils.d.ts +6 -1
  122. package/dist/tests/testUtils.js +11 -6
  123. package/dist/tests/testUtils.js.map +1 -1
  124. package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
  125. package/dist/tests/typeCacheIsolation.test.js +109 -0
  126. package/dist/tests/typeCacheIsolation.test.js.map +1 -0
  127. package/dist/tests/typeCacheUtils.test.js +59 -0
  128. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  129. package/dist/tests/typeEvaluator1.test.js +5 -1
  130. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  131. package/dist/tests/typeEvaluator4.test.js +6 -2
  132. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator5.test.js +25 -0
  134. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator6.test.js +7 -23
  136. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator7.test.js +237 -2
  138. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  139. package/dist/tests/typeServer/typeServer.inProc.test.js +86 -0
  140. package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
  141. package/dist/tests/typeUtils.test.js +36 -0
  142. package/dist/tests/typeUtils.test.js.map +1 -1
  143. package/dist/trace/nativeAdapter.js +1 -5
  144. package/dist/trace/nativeAdapter.js.map +1 -1
  145. package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
  146. package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
  147. package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
  148. package/dist/typeServer/typeServerConversionUtils.js +9 -0
  149. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  150. package/package.json +1 -1
@@ -0,0 +1,227 @@
1
+ import { Diagnostic } from '../common/diagnostic';
2
+ import { TextRangeDiagnosticSink } from '../common/diagnosticSink';
3
+ import { AssignmentNode, CallNode, ExpressionNode, FunctionNode, ModuleNode, NameNode, ParseNode } from '../parser/parseNodes';
4
+ import { AnalyzerNodeInfoReader } from './analyzerNodeInfo';
5
+ import { LocalOverloadAdmission } from './overloadResultAdmission';
6
+ import { AutomaticOverloadSelection } from './overloadResultSelector';
7
+ import { EvalFlags, EvaluationCacheIsolation, EvaluationOperationController, EvaluationOperationRequest, TypeEvaluator, TypeResult } from './typeEvaluatorTypes';
8
+ import { Type, TypeCategory } from './types';
9
+ import { InferenceContext } from './typeUtils';
10
+ export interface OverloadResultLimits {
11
+ nodes: number;
12
+ records: number;
13
+ rootNodes: number;
14
+ graphUnits: number;
15
+ candidates: number;
16
+ calls: number;
17
+ proofUnits: number;
18
+ }
19
+ export interface FixedOverloadResultSeed {
20
+ node: CallNode;
21
+ candidates: (evaluator: TypeEvaluator) => readonly Type[];
22
+ uncertainty: TypeCategory.Any | TypeCategory.Unknown;
23
+ }
24
+ export interface ExperimentalOverloadResultOptions {
25
+ seeds?: (module: ModuleNode) => readonly FixedOverloadResultSeed[];
26
+ automatic?: boolean;
27
+ limits?: Partial<OverloadResultLimits>;
28
+ producerCalls?: number;
29
+ consumerCalls?: number;
30
+ checkerHandoff?: boolean;
31
+ observe?: (event: OverloadResultEvent) => void;
32
+ }
33
+ export type OverloadResultEvent = {
34
+ kind: 'activationProbe';
35
+ node: CallNode;
36
+ selection: AutomaticOverloadSelection;
37
+ } | {
38
+ kind: 'selection';
39
+ node: CallNode;
40
+ selection: AutomaticOverloadSelection;
41
+ } | {
42
+ kind: 'scan';
43
+ module: ModuleNode;
44
+ nodes: number;
45
+ seeds: number;
46
+ cutoff: boolean;
47
+ } | {
48
+ kind: 'admission';
49
+ module: ModuleNode;
50
+ admission: LocalOverloadAdmission;
51
+ } | {
52
+ kind: 'enter';
53
+ module: ModuleNode;
54
+ root: ParseNode;
55
+ mode: OperationMode;
56
+ } | {
57
+ kind: 'trial';
58
+ root: ParseNode;
59
+ mode: OperationMode;
60
+ result?: TypeResult;
61
+ diagnostics: readonly Diagnostic[];
62
+ failed: boolean;
63
+ retained: boolean;
64
+ nestedSpeculative: boolean;
65
+ exception: boolean;
66
+ } | {
67
+ kind: 'value';
68
+ root: ParseNode;
69
+ canonical: TypeResult;
70
+ baseline: TypeResult;
71
+ cutoff: boolean;
72
+ } | {
73
+ kind: 'project';
74
+ node: ExpressionNode;
75
+ source: Type;
76
+ result: TypeResult;
77
+ mode: OperationMode;
78
+ } | {
79
+ kind: 'publish';
80
+ root: ParseNode;
81
+ diagnostics: readonly Diagnostic[];
82
+ } | {
83
+ kind: 'retire';
84
+ module: ModuleNode;
85
+ outcomes: number;
86
+ } | {
87
+ kind: 'context';
88
+ node: ExpressionNode;
89
+ flags: EvalFlags;
90
+ context?: InferenceContext;
91
+ result: TypeResult;
92
+ } | {
93
+ kind: 'beforeCall';
94
+ node: CallNode;
95
+ mode: OperationMode;
96
+ seen: ReadonlyMap<ParseNode, TypeResult>;
97
+ };
98
+ export interface LocalOverloadOperation {
99
+ root: ParseNode;
100
+ statement: AssignmentNode | ExpressionNode;
101
+ expression: ExpressionNode;
102
+ assignment?: AssignmentNode;
103
+ target?: NameNode;
104
+ annotated: boolean;
105
+ fn: FunctionNode;
106
+ nodes: readonly ParseNode[];
107
+ ids: ReadonlySet<number>;
108
+ valueNodes: ReadonlySet<ParseNode>;
109
+ seed?: FixedOverloadResultSeed & {
110
+ automatic?: boolean;
111
+ };
112
+ admitted: boolean;
113
+ reader: boolean;
114
+ flags?: EvalFlags;
115
+ context?: InferenceContext;
116
+ }
117
+ type OperationMode = 'baseline' | 'candidate' | 'reader' | 'check-baseline' | 'check-candidate' | 'materialize-baseline' | 'materialize-witness' | 'context';
118
+ export interface OverloadResultWork {
119
+ candidateCalls: number;
120
+ candidateTrials: number;
121
+ ordinaryCalls: number;
122
+ ordinaryRequests: number;
123
+ projectionSetup: number;
124
+ contextualRequests: number;
125
+ retryReservations: number;
126
+ checkerHandoffs: number;
127
+ }
128
+ export declare class ExperimentalOverloadResultController implements EvaluationOperationController {
129
+ private _options;
130
+ private _evaluator;
131
+ readonly roots: Map<ParseNode, ReadonlySet<number>>;
132
+ private readonly _limits;
133
+ private readonly _info;
134
+ private readonly _generations;
135
+ private readonly _emptyModules;
136
+ private readonly _expiredModules;
137
+ private _active?;
138
+ private _disposed;
139
+ private _activationBoundary;
140
+ private _activationCanRestart;
141
+ private _canActivate?;
142
+ private _flushActivation?;
143
+ private _discovering;
144
+ private readonly _activationChecked;
145
+ private readonly _activated;
146
+ private readonly _pendingActivation;
147
+ private _cacheIsolation?;
148
+ private _select?;
149
+ private _captureQueryCache?;
150
+ private _checkerHandoff?;
151
+ private _automaticWork;
152
+ constructor(_options: ExperimentalOverloadResultOptions, _evaluator: () => TypeEvaluator, reader: AnalyzerNodeInfoReader);
153
+ get isAutomatic(): boolean;
154
+ get hasPendingActivation(): boolean;
155
+ installCacheIsolation: (isolation: EvaluationCacheIsolation) => void;
156
+ installSelector: (select: (node: CallNode, limit: number, proofUnits: number) => AutomaticOverloadSelection) => void;
157
+ installActivationBoundary: (canActivate: () => boolean, flush: () => void) => void;
158
+ installQueryCache: (capture: (root: ParseNode, node: NameNode) => (() => boolean) | undefined) => void;
159
+ installCheckerHandoff: (handoff: (root: ParseNode, expression: ExpressionNode, result: TypeResult, callback: () => void) => boolean) => void;
160
+ getAutomaticStats(): {
161
+ reasons: {
162
+ [k: string]: number;
163
+ };
164
+ modules: number;
165
+ nodes: number;
166
+ scanCutoffs: number;
167
+ seeds: number;
168
+ graphAdmitted: number;
169
+ selections: number;
170
+ selected: number;
171
+ proofUnits: number;
172
+ activationArgumentChecks: number;
173
+ activationProbes: number;
174
+ activationProofUnits: number;
175
+ activations: number;
176
+ };
177
+ getDiagnosticSink(node: ParseNode): TextRangeDiagnosticSink | undefined;
178
+ needsActivationBoundary(): boolean | undefined;
179
+ runWithActivation<T>(callback: () => T): T;
180
+ considerActivation(node: CallNode, args: readonly {
181
+ argType: Type;
182
+ }[]): void;
183
+ finishActivation(): void;
184
+ dispose: () => void;
185
+ dispatch: (_node: ExpressionNode, _flags: EvalFlags, _context?: InferenceContext) => TypeResult | undefined;
186
+ route: (request: EvaluationOperationRequest) => {
187
+ result?: TypeResult;
188
+ } | undefined;
189
+ project: (node: ExpressionNode, result: TypeResult) => TypeResult;
190
+ beforeCall: (node: CallNode) => void;
191
+ check: (module: ModuleNode) => {
192
+ walk: (node: ParseNode, callback: () => void) => void;
193
+ dispose: () => void;
194
+ } | undefined;
195
+ evict(module: ModuleNode): void;
196
+ getStats(module: ModuleNode): {
197
+ records: number;
198
+ outcomes: number;
199
+ variants: number;
200
+ slots: number;
201
+ candidateCallCeiling: number;
202
+ interruptedSlots: number;
203
+ candidateCalls: number;
204
+ candidateTrials: number;
205
+ ordinaryCalls: number;
206
+ ordinaryRequests: number;
207
+ projectionSetup: number;
208
+ contextualRequests: number;
209
+ retryReservations: number;
210
+ checkerHandoffs: number;
211
+ } | undefined;
212
+ private _emit;
213
+ private _retire;
214
+ private _ensure;
215
+ private _isEnabled;
216
+ private _reserveGeneration;
217
+ private _key;
218
+ private _definition;
219
+ private _inputs;
220
+ private _trial;
221
+ private _build;
222
+ private _variant;
223
+ private _expressionRecord;
224
+ private _queryOutcome;
225
+ private _query;
226
+ }
227
+ export {};