@zzzen/pyright-internal 1.2.0-dev.20230514 → 1.2.0-dev.20230528

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 (183) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +1 -0
  2. package/dist/analyzer/analyzerFileInfo.js +4 -3
  3. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.d.ts +17 -15
  5. package/dist/analyzer/backgroundAnalysisProgram.js +43 -53
  6. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  7. package/dist/analyzer/binder.d.ts +0 -2
  8. package/dist/analyzer/binder.js +2 -20
  9. package/dist/analyzer/binder.js.map +1 -1
  10. package/dist/analyzer/checker.d.ts +1 -1
  11. package/dist/analyzer/checker.js +65 -32
  12. package/dist/analyzer/checker.js.map +1 -1
  13. package/dist/analyzer/commentUtils.js +15 -16
  14. package/dist/analyzer/commentUtils.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +6 -2
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/constructorTransform.js +8 -4
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/constructors.js +128 -130
  20. package/dist/analyzer/constructors.js.map +1 -1
  21. package/dist/analyzer/dataClasses.js +4 -1
  22. package/dist/analyzer/dataClasses.js.map +1 -1
  23. package/dist/analyzer/declarationUtils.js +1 -0
  24. package/dist/analyzer/declarationUtils.js.map +1 -1
  25. package/dist/analyzer/docStringConversion.js +1 -1
  26. package/dist/analyzer/enums.js +1 -1
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/importResolver.d.ts +4 -4
  29. package/dist/analyzer/importResolver.js +46 -40
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/importResult.d.ts +2 -2
  32. package/dist/analyzer/importStatementUtils.js +2 -2
  33. package/dist/analyzer/importStatementUtils.js.map +1 -1
  34. package/dist/analyzer/packageTypeVerifier.js +1 -1
  35. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  36. package/dist/analyzer/parameterUtils.js +7 -7
  37. package/dist/analyzer/parameterUtils.js.map +1 -1
  38. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  39. package/dist/analyzer/parseTreeUtils.js +23 -40
  40. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  41. package/dist/analyzer/parseTreeWalker.js +2 -2
  42. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  43. package/dist/analyzer/patternMatching.js +1 -0
  44. package/dist/analyzer/patternMatching.js.map +1 -1
  45. package/dist/analyzer/program.d.ts +12 -18
  46. package/dist/analyzer/program.js +25 -12
  47. package/dist/analyzer/program.js.map +1 -1
  48. package/dist/analyzer/protocols.js +3 -1
  49. package/dist/analyzer/protocols.js.map +1 -1
  50. package/dist/analyzer/service.d.ts +4 -4
  51. package/dist/analyzer/service.js +29 -24
  52. package/dist/analyzer/service.js.map +1 -1
  53. package/dist/analyzer/sourceFile.d.ts +1 -6
  54. package/dist/analyzer/sourceFile.js +12 -27
  55. package/dist/analyzer/sourceFile.js.map +1 -1
  56. package/dist/analyzer/sourceMapper.js +1 -1
  57. package/dist/analyzer/sourceMapper.js.map +1 -1
  58. package/dist/analyzer/typeCacheUtils.d.ts +9 -2
  59. package/dist/analyzer/typeCacheUtils.js +52 -9
  60. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  61. package/dist/analyzer/typeDocStringUtils.js +1 -1
  62. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  63. package/dist/analyzer/typeEvaluator.d.ts +2 -2
  64. package/dist/analyzer/typeEvaluator.js +257 -143
  65. package/dist/analyzer/typeEvaluator.js.map +1 -1
  66. package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
  67. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  68. package/dist/analyzer/typeGuards.js +3 -2
  69. package/dist/analyzer/typeGuards.js.map +1 -1
  70. package/dist/analyzer/typePrinter.js +17 -10
  71. package/dist/analyzer/typePrinter.js.map +1 -1
  72. package/dist/analyzer/typeStubWriter.js +2 -2
  73. package/dist/analyzer/typeStubWriter.js.map +1 -1
  74. package/dist/analyzer/typeUtils.d.ts +1 -0
  75. package/dist/analyzer/typeUtils.js +20 -18
  76. package/dist/analyzer/typeUtils.js.map +1 -1
  77. package/dist/analyzer/typeVarContext.js +2 -2
  78. package/dist/analyzer/typeVarContext.js.map +1 -1
  79. package/dist/analyzer/typedDicts.js +140 -43
  80. package/dist/analyzer/typedDicts.js.map +1 -1
  81. package/dist/analyzer/types.d.ts +9 -1
  82. package/dist/analyzer/types.js +39 -16
  83. package/dist/analyzer/types.js.map +1 -1
  84. package/dist/backgroundAnalysisBase.d.ts +25 -19
  85. package/dist/backgroundAnalysisBase.js +145 -115
  86. package/dist/backgroundAnalysisBase.js.map +1 -1
  87. package/dist/backgroundThreadBase.d.ts +1 -1
  88. package/dist/backgroundThreadBase.js +1 -1
  89. package/dist/backgroundThreadBase.js.map +1 -1
  90. package/dist/commands/dumpFileDebugInfoCommand.js +5 -5
  91. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  92. package/dist/common/commandLineOptions.d.ts +1 -0
  93. package/dist/common/commandLineOptions.js.map +1 -1
  94. package/dist/common/configOptions.js +1 -1
  95. package/dist/common/configOptions.js.map +1 -1
  96. package/dist/common/extensibility.d.ts +2 -4
  97. package/dist/common/extensibility.js.map +1 -1
  98. package/dist/common/textRange.d.ts +3 -3
  99. package/dist/common/textRange.js +17 -8
  100. package/dist/common/textRange.js.map +1 -1
  101. package/dist/common/uriParser.d.ts +1 -0
  102. package/dist/common/uriParser.js +9 -0
  103. package/dist/common/uriParser.js.map +1 -1
  104. package/dist/common/workspaceEditUtils.d.ts +1 -1
  105. package/dist/common/workspaceEditUtils.js +5 -7
  106. package/dist/common/workspaceEditUtils.js.map +1 -1
  107. package/dist/languageServerBase.js +6 -4
  108. package/dist/languageServerBase.js.map +1 -1
  109. package/dist/languageService/analyzerServiceExecutor.js +1 -0
  110. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  111. package/dist/languageService/autoImporter.d.ts +3 -3
  112. package/dist/languageService/autoImporter.js +3 -3
  113. package/dist/languageService/autoImporter.js.map +1 -1
  114. package/dist/languageService/callHierarchyProvider.js +3 -2
  115. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  116. package/dist/languageService/completionProvider.d.ts +2 -2
  117. package/dist/languageService/completionProvider.js +42 -35
  118. package/dist/languageService/completionProvider.js.map +1 -1
  119. package/dist/languageService/documentSymbolCollector.js +9 -9
  120. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  121. package/dist/languageService/referencesProvider.js +1 -1
  122. package/dist/languageService/referencesProvider.js.map +1 -1
  123. package/dist/languageService/renameProvider.d.ts +3 -3
  124. package/dist/languageService/renameProvider.js +6 -6
  125. package/dist/languageService/renameProvider.js.map +1 -1
  126. package/dist/languageService/signatureHelpProvider.js +1 -1
  127. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  128. package/dist/languageService/symbolIndexer.d.ts +0 -8
  129. package/dist/languageService/symbolIndexer.js.map +1 -1
  130. package/dist/localization/localize.d.ts +23 -3
  131. package/dist/localization/localize.js +13 -3
  132. package/dist/localization/localize.js.map +1 -1
  133. package/dist/localization/package.nls.en-us.json +15 -5
  134. package/dist/parser/parseNodes.d.ts +19 -11
  135. package/dist/parser/parseNodes.js +27 -19
  136. package/dist/parser/parseNodes.js.map +1 -1
  137. package/dist/parser/parser.d.ts +3 -3
  138. package/dist/parser/parser.js +146 -169
  139. package/dist/parser/parser.js.map +1 -1
  140. package/dist/parser/stringTokenUtils.d.ts +3 -13
  141. package/dist/parser/stringTokenUtils.js +8 -181
  142. package/dist/parser/stringTokenUtils.js.map +1 -1
  143. package/dist/parser/tokenizer.d.ts +3 -0
  144. package/dist/parser/tokenizer.js +212 -24
  145. package/dist/parser/tokenizer.js.map +1 -1
  146. package/dist/parser/tokenizerTypes.d.ts +31 -1
  147. package/dist/parser/tokenizerTypes.js +51 -1
  148. package/dist/parser/tokenizerTypes.js.map +1 -1
  149. package/dist/readonlyAugmentedFileSystem.js +1 -1
  150. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  151. package/dist/tests/docStringConversion.test.js +44 -0
  152. package/dist/tests/docStringConversion.test.js.map +1 -1
  153. package/dist/tests/fourslash/fourslash.d.ts +1 -1
  154. package/dist/tests/fourslash/rename.function.untitledFile.fourslash.d.ts +1 -0
  155. package/dist/tests/fourslash/rename.function.untitledFile.fourslash.js +17 -0
  156. package/dist/tests/fourslash/rename.function.untitledFile.fourslash.js.map +1 -0
  157. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  158. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  159. package/dist/tests/harness/fourslash/testState.d.ts +1 -1
  160. package/dist/tests/harness/fourslash/testState.js +4 -3
  161. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  162. package/dist/tests/importResolver.test.js +3 -3
  163. package/dist/tests/importResolver.test.js.map +1 -1
  164. package/dist/tests/textRange.test.d.ts +1 -0
  165. package/dist/tests/textRange.test.js +45 -0
  166. package/dist/tests/textRange.test.js.map +1 -0
  167. package/dist/tests/tokenizer.test.js +280 -58
  168. package/dist/tests/tokenizer.test.js.map +1 -1
  169. package/dist/tests/typeEvaluator1.test.js +5 -1
  170. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  171. package/dist/tests/typeEvaluator2.test.js +9 -1
  172. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  173. package/dist/tests/typeEvaluator3.test.js +11 -1
  174. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  175. package/dist/tests/typeEvaluator4.test.js +7 -2
  176. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  177. package/dist/tests/typeEvaluator5.test.js +8 -0
  178. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  179. package/dist/tests/typePrinter.test.js +3 -3
  180. package/dist/tests/typePrinter.test.js.map +1 -1
  181. package/dist/workspaceFactory.js +7 -9
  182. package/dist/workspaceFactory.js.map +1 -1
  183. package/package.json +1 -1
@@ -1,15 +1,6 @@
1
- import { StringToken } from './tokenizerTypes';
2
- export interface FormatStringSegment {
3
- offset: number;
4
- length: number;
5
- value: string;
6
- isExpression: boolean;
7
- }
1
+ import { FStringMiddleToken, StringToken } from './tokenizerTypes';
8
2
  export declare const enum UnescapeErrorType {
9
- InvalidEscapeSequence = 0,
10
- EscapeWithinFormatExpression = 1,
11
- SingleCloseBraceWithinFormatLiteral = 2,
12
- UnterminatedFormatExpression = 3
3
+ InvalidEscapeSequence = 0
13
4
  }
14
5
  export interface UnescapeError {
15
6
  offset: number;
@@ -20,6 +11,5 @@ export interface UnescapedString {
20
11
  value: string;
21
12
  unescapeErrors: UnescapeError[];
22
13
  nonAsciiInBytes: boolean;
23
- formatStringSegments: FormatStringSegment[];
24
14
  }
25
- export declare function getUnescapedString(stringToken: StringToken): UnescapedString;
15
+ export declare function getUnescapedString(stringToken: StringToken | FStringMiddleToken): UnescapedString;
@@ -13,30 +13,21 @@ exports.getUnescapedString = exports.UnescapeErrorType = void 0;
13
13
  var UnescapeErrorType;
14
14
  (function (UnescapeErrorType) {
15
15
  UnescapeErrorType[UnescapeErrorType["InvalidEscapeSequence"] = 0] = "InvalidEscapeSequence";
16
- UnescapeErrorType[UnescapeErrorType["EscapeWithinFormatExpression"] = 1] = "EscapeWithinFormatExpression";
17
- UnescapeErrorType[UnescapeErrorType["SingleCloseBraceWithinFormatLiteral"] = 2] = "SingleCloseBraceWithinFormatLiteral";
18
- UnescapeErrorType[UnescapeErrorType["UnterminatedFormatExpression"] = 3] = "UnterminatedFormatExpression";
19
16
  })(UnescapeErrorType = exports.UnescapeErrorType || (exports.UnescapeErrorType = {}));
20
17
  function completeUnescapedString(incomplete) {
21
18
  return {
22
19
  ...incomplete,
23
20
  value: incomplete.valueParts.join(''),
24
- formatStringSegments: incomplete.formatStringSegments.map((segment) => ({
25
- ...segment,
26
- value: segment.valueParts.join(''),
27
- })),
28
21
  };
29
22
  }
30
23
  function getUnescapedString(stringToken) {
31
24
  const escapedString = stringToken.escapedValue;
32
25
  const isRaw = (stringToken.flags & 8 /* Raw */) !== 0;
33
- const isFormat = (stringToken.flags & 64 /* Format */) !== 0;
34
- if (isRaw && !isFormat) {
26
+ if (isRaw) {
35
27
  return {
36
28
  value: escapedString,
37
29
  unescapeErrors: [],
38
30
  nonAsciiInBytes: false,
39
- formatStringSegments: [],
40
31
  };
41
32
  }
42
33
  const charCodes = [];
@@ -45,30 +36,18 @@ function getUnescapedString(stringToken) {
45
36
  }
46
37
  const isBytes = (stringToken.flags & 32 /* Bytes */) !== 0;
47
38
  // Handle the common case in an expedited manner.
48
- if (!isFormat) {
49
- if (!charCodes.some((curChar) => curChar === 13 /* CarriageReturn */ || curChar === 10 /* LineFeed */ || curChar === 92 /* Backslash */)) {
50
- return {
51
- value: escapedString,
52
- unescapeErrors: [],
53
- nonAsciiInBytes: isBytes && charCodes.some((curChar) => curChar >= 128),
54
- formatStringSegments: [],
55
- };
56
- }
39
+ if (!charCodes.some((curChar) => curChar === 13 /* CarriageReturn */ || curChar === 10 /* LineFeed */ || curChar === 92 /* Backslash */)) {
40
+ return {
41
+ value: escapedString,
42
+ unescapeErrors: [],
43
+ nonAsciiInBytes: isBytes && charCodes.some((curChar) => curChar >= 128),
44
+ };
57
45
  }
58
- let formatExpressionNestCount = 0;
59
- let formatSegment = {
60
- offset: 0,
61
- length: 0,
62
- valueParts: [],
63
- isExpression: false,
64
- hasFormatSpecifier: false,
65
- };
66
46
  let strOffset = 0;
67
47
  const output = {
68
48
  valueParts: [],
69
49
  unescapeErrors: [],
70
50
  nonAsciiInBytes: false,
71
- formatStringSegments: [],
72
51
  };
73
52
  const addInvalidEscapeOffset = () => {
74
53
  // Invalid escapes are not reported for raw strings.
@@ -112,37 +91,13 @@ function getUnescapedString(stringToken) {
112
91
  const appendOutputChar = (charCode) => {
113
92
  const char = String.fromCharCode(charCode);
114
93
  output.valueParts.push(char);
115
- formatSegment.valueParts.push(char);
116
94
  };
117
95
  while (true) {
118
96
  let curChar = getEscapedCharacter();
119
97
  if (curChar === 3 /* EndOfText */) {
120
- if (isFormat) {
121
- if (formatSegment.isExpression) {
122
- // The last format segment was an unterminated expression.
123
- output.unescapeErrors.push({
124
- offset: formatSegment.offset,
125
- length: strOffset - formatSegment.offset,
126
- errorType: 3 /* UnterminatedFormatExpression */,
127
- });
128
- }
129
- // Push the last segment.
130
- if (strOffset !== formatSegment.offset) {
131
- formatSegment.length = strOffset - formatSegment.offset;
132
- output.formatStringSegments.push(formatSegment);
133
- }
134
- }
135
98
  return completeUnescapedString(output);
136
99
  }
137
100
  if (curChar === 92 /* Backslash */) {
138
- if (isFormat && formatSegment.isExpression && !formatSegment.hasFormatSpecifier) {
139
- // Backslashes aren't allowed within format string expressions.
140
- output.unescapeErrors.push({
141
- offset: strOffset,
142
- length: 1,
143
- errorType: 1 /* EscapeWithinFormatExpression */,
144
- });
145
- }
146
101
  // Move past the escape (backslash) character.
147
102
  strOffset++;
148
103
  if (isRaw) {
@@ -165,7 +120,7 @@ function getUnescapedString(stringToken) {
165
120
  strOffset++;
166
121
  }
167
122
  else {
168
- if (isRaw || (isFormat && formatSegment.isExpression)) {
123
+ if (isRaw) {
169
124
  localValue = '\\' + String.fromCharCode(curChar);
170
125
  strOffset++;
171
126
  }
@@ -277,7 +232,6 @@ function getUnescapedString(stringToken) {
277
232
  }
278
233
  }
279
234
  output.valueParts.push(localValue);
280
- formatSegment.valueParts.push(localValue);
281
235
  }
282
236
  else if (curChar === 10 /* LineFeed */ || curChar === 13 /* CarriageReturn */) {
283
237
  // Skip over the escaped new line (either one or two characters).
@@ -289,134 +243,7 @@ function getUnescapedString(stringToken) {
289
243
  appendOutputChar(curChar);
290
244
  strOffset++;
291
245
  }
292
- else if (isFormat && curChar === 123 /* OpenBrace */) {
293
- if (!formatSegment.isExpression && getEscapedCharacter(1) === 123 /* OpenBrace */) {
294
- appendOutputChar(curChar);
295
- strOffset += 2;
296
- }
297
- else {
298
- if (formatExpressionNestCount === 0) {
299
- // A single open brace within a format literal indicates that
300
- // an expression is starting.
301
- formatSegment.length = strOffset - formatSegment.offset;
302
- if (formatSegment.length > 0) {
303
- output.formatStringSegments.push(formatSegment);
304
- }
305
- strOffset++;
306
- // Start a new segment.
307
- formatSegment = {
308
- offset: strOffset,
309
- length: 0,
310
- valueParts: [],
311
- isExpression: true,
312
- hasFormatSpecifier: false,
313
- };
314
- }
315
- else {
316
- appendOutputChar(curChar);
317
- strOffset++;
318
- }
319
- formatExpressionNestCount++;
320
- }
321
- }
322
- else if (isFormat && curChar === 125 /* CloseBrace */) {
323
- if (!formatSegment.isExpression && getEscapedCharacter(1) === 125 /* CloseBrace */) {
324
- appendOutputChar(curChar);
325
- strOffset += 2;
326
- }
327
- else if (formatExpressionNestCount === 0) {
328
- output.unescapeErrors.push({
329
- offset: strOffset,
330
- length: 1,
331
- errorType: 2 /* SingleCloseBraceWithinFormatLiteral */,
332
- });
333
- strOffset++;
334
- }
335
- else {
336
- formatExpressionNestCount--;
337
- if (formatExpressionNestCount === 0) {
338
- // A close brace within a format expression indicates that
339
- // the expression is complete.
340
- formatSegment.length = strOffset - formatSegment.offset;
341
- output.formatStringSegments.push(formatSegment);
342
- strOffset++;
343
- // Start a new segment.
344
- formatSegment = {
345
- offset: strOffset,
346
- length: 0,
347
- valueParts: [],
348
- isExpression: false,
349
- hasFormatSpecifier: false,
350
- };
351
- }
352
- else {
353
- appendOutputChar(curChar);
354
- strOffset++;
355
- }
356
- }
357
- }
358
- else if (formatSegment.isExpression && (curChar === 39 /* SingleQuote */ || curChar === 34 /* DoubleQuote */)) {
359
- // We're within an expression, and we've encountered a string literal.
360
- // Skip over it.
361
- const quoteChar = curChar;
362
- appendOutputChar(curChar);
363
- const isTriplicate = getEscapedCharacter(1) === quoteChar && getEscapedCharacter(2) === quoteChar;
364
- if (isTriplicate) {
365
- strOffset += 2;
366
- appendOutputChar(curChar);
367
- appendOutputChar(curChar);
368
- output.valueParts.push(String.fromCharCode(curChar));
369
- output.valueParts.push(String.fromCharCode(curChar));
370
- }
371
- while (true) {
372
- strOffset++;
373
- let strChar = getEscapedCharacter();
374
- if (strChar === 3 /* EndOfText */) {
375
- break;
376
- }
377
- if (strChar === 92 /* Backslash */) {
378
- if (isFormat) {
379
- if (formatSegment.isExpression) {
380
- // The last format segment was an unterminated expression.
381
- output.unescapeErrors.push({
382
- offset: formatSegment.offset,
383
- length: strOffset - formatSegment.offset,
384
- errorType: 3 /* UnterminatedFormatExpression */,
385
- });
386
- }
387
- }
388
- appendOutputChar(strChar);
389
- strOffset++;
390
- strChar = getEscapedCharacter();
391
- appendOutputChar(strChar);
392
- continue;
393
- }
394
- if (strChar === 10 /* LineFeed */ || strChar === 13 /* CarriageReturn */) {
395
- if (!isTriplicate) {
396
- break;
397
- }
398
- }
399
- if (strChar === quoteChar) {
400
- if (!isTriplicate) {
401
- strOffset++;
402
- appendOutputChar(strChar);
403
- break;
404
- }
405
- if (getEscapedCharacter(1) === quoteChar && getEscapedCharacter(2) === quoteChar) {
406
- strOffset += 3;
407
- appendOutputChar(strChar);
408
- appendOutputChar(strChar);
409
- appendOutputChar(strChar);
410
- break;
411
- }
412
- }
413
- appendOutputChar(strChar);
414
- }
415
- }
416
246
  else {
417
- if (formatSegment.isExpression && curChar === 58 /* Colon */) {
418
- formatSegment.hasFormatSpecifier = true;
419
- }
420
247
  // There's nothing to unescape, so output the escaped character directly.
421
248
  if (isBytes && curChar >= 128) {
422
249
  output.nonAsciiInBytes = true;
@@ -1 +1 @@
1
- {"version":3,"file":"stringTokenUtils.js","sourceRoot":"","sources":["../../../src/parser/stringTokenUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stringTokenUtils.js","sourceRoot":"","sources":["../../../src/parser/stringTokenUtils.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export declare class Tokenizer {
32
32
  private _typeIgnoreLines;
33
33
  private _pyrightIgnoreLines;
34
34
  private _comments;
35
+ private _fStringStack;
36
+ private _activeFString;
35
37
  private _crCount;
36
38
  private _crLfCount;
37
39
  private _lfCount;
@@ -65,6 +67,7 @@ export declare class Tokenizer {
65
67
  private _getStringPrefixLength;
66
68
  private _getQuoteTypeFlags;
67
69
  private _handleString;
70
+ private _handleFStringMiddle;
68
71
  private _skipToEndOfStringLiteral;
69
72
  private _skipFloatingPointCandidate;
70
73
  private _skipFractionalNumber;