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

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 (41) hide show
  1. package/dist/analyzer/constraintSolver.d.ts +1 -1
  2. package/dist/analyzer/constraintSolver.js +18 -6
  3. package/dist/analyzer/constraintSolver.js.map +1 -1
  4. package/dist/analyzer/constructors.js +35 -10
  5. package/dist/analyzer/constructors.js.map +1 -1
  6. package/dist/analyzer/patternMatching.js +2 -1
  7. package/dist/analyzer/patternMatching.js.map +1 -1
  8. package/dist/analyzer/program.js +9 -4
  9. package/dist/analyzer/program.js.map +1 -1
  10. package/dist/analyzer/sourceFile.d.ts +3 -2
  11. package/dist/analyzer/sourceFile.js +204 -194
  12. package/dist/analyzer/sourceFile.js.map +1 -1
  13. package/dist/analyzer/typeEvaluator.js +103 -46
  14. package/dist/analyzer/typeEvaluator.js.map +1 -1
  15. package/dist/analyzer/typeGuards.js +1 -1
  16. package/dist/analyzer/typeGuards.js.map +1 -1
  17. package/dist/analyzer/typeUtils.d.ts +5 -6
  18. package/dist/analyzer/typeUtils.js +126 -142
  19. package/dist/analyzer/typeUtils.js.map +1 -1
  20. package/dist/analyzer/typeVarContext.js +12 -1
  21. package/dist/analyzer/typeVarContext.js.map +1 -1
  22. package/dist/analyzer/typeWalker.d.ts +22 -0
  23. package/dist/analyzer/typeWalker.js +164 -0
  24. package/dist/analyzer/typeWalker.js.map +1 -0
  25. package/dist/analyzer/types.d.ts +3 -2
  26. package/dist/analyzer/types.js +19 -12
  27. package/dist/analyzer/types.js.map +1 -1
  28. package/dist/backgroundAnalysisBase.d.ts +4 -2
  29. package/dist/localization/localize.d.ts +4 -0
  30. package/dist/localization/localize.js +2 -0
  31. package/dist/localization/localize.js.map +1 -1
  32. package/dist/localization/package.nls.en-us.json +2 -0
  33. package/dist/tests/service.test.js +10 -0
  34. package/dist/tests/service.test.js.map +1 -1
  35. package/dist/tests/typeEvaluator2.test.js +9 -1
  36. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  37. package/dist/tests/typeEvaluator3.test.js +16 -0
  38. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  39. package/dist/tests/typeEvaluator4.test.js +4 -0
  40. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  41. package/package.json +1 -1
@@ -94,6 +94,10 @@ class WriteableData {
94
94
  this.checkerDiagnostics = [];
95
95
  this.typeIgnoreLines = new Map();
96
96
  this.pyrightIgnoreLines = new Map();
97
+ // Accumulated and filtered diagnostics that combines all of the
98
+ // above information. This needs to be recomputed any time the
99
+ // above change.
100
+ this.accumulatedDiagnostics = [];
97
101
  // Circular dependencies that have been reported in this file.
98
102
  this.circularDependencies = [];
99
103
  this.noCircularDependencyConfirmed = false;
@@ -184,183 +188,7 @@ class SourceFile {
184
188
  if (this._writableData.diagnosticVersion === prevDiagnosticVersion) {
185
189
  return undefined;
186
190
  }
187
- let includeWarningsAndErrors = true;
188
- // If a file was imported as a third-party file, don't report
189
- // any errors for it. The user can't fix them anyway.
190
- if (this._isThirdPartyImport) {
191
- includeWarningsAndErrors = false;
192
- }
193
- let diagList = [];
194
- (0, collectionUtils_1.appendArray)(diagList, this._writableData.parseDiagnostics);
195
- (0, collectionUtils_1.appendArray)(diagList, this._writableData.commentDiagnostics);
196
- (0, collectionUtils_1.appendArray)(diagList, this._writableData.bindDiagnostics);
197
- (0, collectionUtils_1.appendArray)(diagList, this._writableData.checkerDiagnostics);
198
- const prefilteredDiagList = diagList;
199
- const typeIgnoreLinesClone = new Map(this._writableData.typeIgnoreLines);
200
- const pyrightIgnoreLinesClone = new Map(this._writableData.pyrightIgnoreLines);
201
- // Filter the diagnostics based on "type: ignore" lines.
202
- if (this._diagnosticRuleSet.enableTypeIgnoreComments) {
203
- if (this._writableData.typeIgnoreLines.size > 0) {
204
- diagList = diagList.filter((d) => {
205
- if (d.category !== 3 /* UnusedCode */ &&
206
- d.category !== 4 /* UnreachableCode */ &&
207
- d.category !== 5 /* Deprecated */) {
208
- for (let line = d.range.start.line; line <= d.range.end.line; line++) {
209
- if (this._writableData.typeIgnoreLines.has(line)) {
210
- typeIgnoreLinesClone.delete(line);
211
- return false;
212
- }
213
- }
214
- }
215
- return true;
216
- });
217
- }
218
- }
219
- // Filter the diagnostics based on "pyright: ignore" lines.
220
- if (this._writableData.pyrightIgnoreLines.size > 0) {
221
- diagList = diagList.filter((d) => {
222
- if (d.category !== 4 /* UnreachableCode */ && d.category !== 5 /* Deprecated */) {
223
- for (let line = d.range.start.line; line <= d.range.end.line; line++) {
224
- const pyrightIgnoreComment = this._writableData.pyrightIgnoreLines.get(line);
225
- if (pyrightIgnoreComment) {
226
- if (!pyrightIgnoreComment.rulesList) {
227
- pyrightIgnoreLinesClone.delete(line);
228
- return false;
229
- }
230
- const diagRule = d.getRule();
231
- if (!diagRule) {
232
- // If there's no diagnostic rule, it won't match
233
- // against a rules list.
234
- return true;
235
- }
236
- // Did we find this rule in the list?
237
- if (pyrightIgnoreComment.rulesList.find((rule) => rule.text === diagRule)) {
238
- // Update the pyrightIgnoreLinesClone to remove this rule.
239
- const oldClone = pyrightIgnoreLinesClone.get(line);
240
- if (oldClone === null || oldClone === void 0 ? void 0 : oldClone.rulesList) {
241
- const filteredRulesList = oldClone.rulesList.filter((rule) => rule.text !== diagRule);
242
- if (filteredRulesList.length === 0) {
243
- pyrightIgnoreLinesClone.delete(line);
244
- }
245
- else {
246
- pyrightIgnoreLinesClone.set(line, {
247
- range: oldClone.range,
248
- rulesList: filteredRulesList,
249
- });
250
- }
251
- }
252
- return false;
253
- }
254
- return true;
255
- }
256
- }
257
- }
258
- return true;
259
- });
260
- }
261
- const unnecessaryTypeIgnoreDiags = [];
262
- // Skip this step if type checking is needed. Otherwise we'll likely produce
263
- // incorrect (false positive) reportUnnecessaryTypeIgnoreComment diagnostics
264
- // until checking is performed on this file.
265
- if (this._diagnosticRuleSet.reportUnnecessaryTypeIgnoreComment !== 'none' &&
266
- !this._writableData.isCheckingNeeded) {
267
- const diagCategory = (0, diagnostic_1.convertLevelToCategory)(this._diagnosticRuleSet.reportUnnecessaryTypeIgnoreComment);
268
- const prefilteredErrorList = prefilteredDiagList.filter((diag) => diag.category === 0 /* Error */ ||
269
- diag.category === 1 /* Warning */ ||
270
- diag.category === 2 /* Information */);
271
- const isUnreachableCodeRange = (range) => {
272
- return prefilteredDiagList.find((diag) => diag.category === 4 /* UnreachableCode */ &&
273
- diag.range.start.line <= range.start.line &&
274
- diag.range.end.line >= range.end.line);
275
- };
276
- if (prefilteredErrorList.length === 0 && this._writableData.typeIgnoreAll !== undefined) {
277
- const rangeStart = this._writableData.typeIgnoreAll.range.start;
278
- const rangeEnd = rangeStart + this._writableData.typeIgnoreAll.range.length;
279
- const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
280
- if (!isUnreachableCodeRange(range) && this._diagnosticRuleSet.enableTypeIgnoreComments) {
281
- unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryTypeIgnore(), range));
282
- }
283
- }
284
- typeIgnoreLinesClone.forEach((ignoreComment) => {
285
- var _a;
286
- if ((_a = this._writableData.parseResults) === null || _a === void 0 ? void 0 : _a.tokenizerOutput.lines) {
287
- const rangeStart = ignoreComment.range.start;
288
- const rangeEnd = rangeStart + ignoreComment.range.length;
289
- const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
290
- if (!isUnreachableCodeRange(range) && this._diagnosticRuleSet.enableTypeIgnoreComments) {
291
- unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryTypeIgnore(), range));
292
- }
293
- }
294
- });
295
- pyrightIgnoreLinesClone.forEach((ignoreComment) => {
296
- var _a;
297
- if ((_a = this._writableData.parseResults) === null || _a === void 0 ? void 0 : _a.tokenizerOutput.lines) {
298
- if (!ignoreComment.rulesList) {
299
- const rangeStart = ignoreComment.range.start;
300
- const rangeEnd = rangeStart + ignoreComment.range.length;
301
- const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
302
- if (!isUnreachableCodeRange(range)) {
303
- unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryPyrightIgnore(), range));
304
- }
305
- }
306
- else {
307
- ignoreComment.rulesList.forEach((unusedRule) => {
308
- const rangeStart = unusedRule.range.start;
309
- const rangeEnd = rangeStart + unusedRule.range.length;
310
- const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
311
- if (!isUnreachableCodeRange(range)) {
312
- unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryPyrightIgnoreRule().format({
313
- name: unusedRule.text,
314
- }), range));
315
- }
316
- });
317
- }
318
- }
319
- });
320
- }
321
- if (this._diagnosticRuleSet.reportImportCycles !== 'none' &&
322
- this._writableData.circularDependencies.length > 0) {
323
- const category = (0, diagnostic_1.convertLevelToCategory)(this._diagnosticRuleSet.reportImportCycles);
324
- this._writableData.circularDependencies.forEach((cirDep) => {
325
- const diag = new diagnostic_1.Diagnostic(category, localize_1.Localizer.Diagnostic.importCycleDetected() +
326
- '\n' +
327
- cirDep
328
- .getPaths()
329
- .map((path) => ' ' + path)
330
- .join('\n'), (0, textRange_1.getEmptyRange)());
331
- diag.setRule(diagnosticRules_1.DiagnosticRule.reportImportCycles);
332
- diagList.push(diag);
333
- });
334
- }
335
- if (this._writableData.hitMaxImportDepth !== undefined) {
336
- diagList.push(new diagnostic_1.Diagnostic(0 /* Error */, localize_1.Localizer.Diagnostic.importDepthExceeded().format({ depth: this._writableData.hitMaxImportDepth }), (0, textRange_1.getEmptyRange)()));
337
- }
338
- // add diagnostics for comments that match the task list tokens
339
- this._addTaskListDiagnostics(options.taskListTokens, diagList);
340
- // If the file is in the ignore list, clear the diagnostic list.
341
- if (options.ignore.find((ignoreFileSpec) => ignoreFileSpec.regExp.test(this._realFilePath))) {
342
- diagList = [];
343
- }
344
- // If there is a "type: ignore" comment at the top of the file, clear
345
- // the diagnostic list of all error, warning, and information diagnostics.
346
- if (this._diagnosticRuleSet.enableTypeIgnoreComments) {
347
- if (this._writableData.typeIgnoreAll !== undefined) {
348
- diagList = diagList.filter((diag) => diag.category !== 0 /* Error */ &&
349
- diag.category !== 1 /* Warning */ &&
350
- diag.category !== 2 /* Information */);
351
- }
352
- }
353
- // Now add in the "unnecessary type ignore" diagnostics.
354
- diagList = diagList.concat(unnecessaryTypeIgnoreDiags);
355
- // If we're not returning any diagnostics, filter out all of
356
- // the errors and warnings, leaving only the unreachable code
357
- // and deprecated diagnostics.
358
- if (!includeWarningsAndErrors) {
359
- diagList = diagList.filter((diag) => diag.category === 3 /* UnusedCode */ ||
360
- diag.category === 4 /* UnreachableCode */ ||
361
- diag.category === 5 /* Deprecated */);
362
- }
363
- return diagList;
191
+ return this._writableData.accumulatedDiagnostics;
364
192
  }
365
193
  getImports() {
366
194
  return this._writableData.imports || [];
@@ -535,7 +363,7 @@ class SourceFile {
535
363
  }
536
364
  // Adds a new circular dependency for this file but only if
537
365
  // it hasn't already been added.
538
- addCircularDependency(circDependency) {
366
+ addCircularDependency(configOptions, circDependency) {
539
367
  let updatedDependencyList = false;
540
368
  // Some topologies can result in a massive number of cycles. We'll cut it off.
541
369
  if (this._writableData.circularDependencies.length < _maxImportCyclesPerFile) {
@@ -545,7 +373,7 @@ class SourceFile {
545
373
  }
546
374
  }
547
375
  if (updatedDependencyList) {
548
- this._writableData.diagnosticVersion++;
376
+ this._recomputeDiagnostics(configOptions);
549
377
  }
550
378
  }
551
379
  setNoCircularDependencyConfirmed() {
@@ -658,7 +486,7 @@ class SourceFile {
658
486
  this._writableData.isCheckingNeeded = true;
659
487
  this._writableData.parseTreeNeedsCleaning = false;
660
488
  this._writableData.hitMaxImportDepth = undefined;
661
- this._writableData.diagnosticVersion++;
489
+ this._recomputeDiagnostics(configOptions);
662
490
  return true;
663
491
  });
664
492
  }
@@ -704,12 +532,12 @@ class SourceFile {
704
532
  this._writableData.isBindingInProgress = false;
705
533
  }
706
534
  // Prepare for the next stage of the analysis.
707
- this._writableData.diagnosticVersion++;
708
535
  this._writableData.isCheckingNeeded = true;
709
536
  this._writableData.isBindingNeeded = false;
537
+ this._recomputeDiagnostics(configOptions);
710
538
  });
711
539
  }
712
- check(importResolver, evaluator, sourceMapper, dependentFiles) {
540
+ check(configOptions, importResolver, evaluator, sourceMapper, dependentFiles) {
713
541
  (0, debug_1.assert)(!this.isParseRequired(), 'Check called before parsing');
714
542
  (0, debug_1.assert)(!this.isBindingRequired(), 'Check called before binding');
715
543
  (0, debug_1.assert)(!this._writableData.isBindingInProgress, 'Check called while binding in progress');
@@ -747,13 +575,195 @@ class SourceFile {
747
575
  // These will be detected by the program module and associated
748
576
  // with the source file right before it is finalized.
749
577
  this._writableData.circularDependencies = [];
750
- this._writableData.diagnosticVersion++;
578
+ this._recomputeDiagnostics(configOptions);
751
579
  }
752
580
  });
753
581
  }
754
582
  test_enableIPythonMode(enable) {
755
583
  this._ipythonMode = enable ? IPythonMode.CellDocs : IPythonMode.None;
756
584
  }
585
+ // Computes an updated set of accumulated diagnostics for the file
586
+ // based on the partial diagnostics from various analysis stages.
587
+ _recomputeDiagnostics(configOptions) {
588
+ this._writableData.diagnosticVersion++;
589
+ let includeWarningsAndErrors = true;
590
+ // If a file was imported as a third-party file, don't report
591
+ // any errors for it. The user can't fix them anyway.
592
+ if (this._isThirdPartyImport) {
593
+ includeWarningsAndErrors = false;
594
+ }
595
+ let diagList = [];
596
+ (0, collectionUtils_1.appendArray)(diagList, this._writableData.parseDiagnostics);
597
+ (0, collectionUtils_1.appendArray)(diagList, this._writableData.commentDiagnostics);
598
+ (0, collectionUtils_1.appendArray)(diagList, this._writableData.bindDiagnostics);
599
+ (0, collectionUtils_1.appendArray)(diagList, this._writableData.checkerDiagnostics);
600
+ const prefilteredDiagList = diagList;
601
+ const typeIgnoreLinesClone = new Map(this._writableData.typeIgnoreLines);
602
+ const pyrightIgnoreLinesClone = new Map(this._writableData.pyrightIgnoreLines);
603
+ // Filter the diagnostics based on "type: ignore" lines.
604
+ if (this._diagnosticRuleSet.enableTypeIgnoreComments) {
605
+ if (this._writableData.typeIgnoreLines.size > 0) {
606
+ diagList = diagList.filter((d) => {
607
+ if (d.category !== 3 /* UnusedCode */ &&
608
+ d.category !== 4 /* UnreachableCode */ &&
609
+ d.category !== 5 /* Deprecated */) {
610
+ for (let line = d.range.start.line; line <= d.range.end.line; line++) {
611
+ if (this._writableData.typeIgnoreLines.has(line)) {
612
+ typeIgnoreLinesClone.delete(line);
613
+ return false;
614
+ }
615
+ }
616
+ }
617
+ return true;
618
+ });
619
+ }
620
+ }
621
+ // Filter the diagnostics based on "pyright: ignore" lines.
622
+ if (this._writableData.pyrightIgnoreLines.size > 0) {
623
+ diagList = diagList.filter((d) => {
624
+ if (d.category !== 4 /* UnreachableCode */ && d.category !== 5 /* Deprecated */) {
625
+ for (let line = d.range.start.line; line <= d.range.end.line; line++) {
626
+ const pyrightIgnoreComment = this._writableData.pyrightIgnoreLines.get(line);
627
+ if (pyrightIgnoreComment) {
628
+ if (!pyrightIgnoreComment.rulesList) {
629
+ pyrightIgnoreLinesClone.delete(line);
630
+ return false;
631
+ }
632
+ const diagRule = d.getRule();
633
+ if (!diagRule) {
634
+ // If there's no diagnostic rule, it won't match
635
+ // against a rules list.
636
+ return true;
637
+ }
638
+ // Did we find this rule in the list?
639
+ if (pyrightIgnoreComment.rulesList.find((rule) => rule.text === diagRule)) {
640
+ // Update the pyrightIgnoreLinesClone to remove this rule.
641
+ const oldClone = pyrightIgnoreLinesClone.get(line);
642
+ if (oldClone === null || oldClone === void 0 ? void 0 : oldClone.rulesList) {
643
+ const filteredRulesList = oldClone.rulesList.filter((rule) => rule.text !== diagRule);
644
+ if (filteredRulesList.length === 0) {
645
+ pyrightIgnoreLinesClone.delete(line);
646
+ }
647
+ else {
648
+ pyrightIgnoreLinesClone.set(line, {
649
+ range: oldClone.range,
650
+ rulesList: filteredRulesList,
651
+ });
652
+ }
653
+ }
654
+ return false;
655
+ }
656
+ return true;
657
+ }
658
+ }
659
+ }
660
+ return true;
661
+ });
662
+ }
663
+ const unnecessaryTypeIgnoreDiags = [];
664
+ // Skip this step if type checking is needed. Otherwise we'll likely produce
665
+ // incorrect (false positive) reportUnnecessaryTypeIgnoreComment diagnostics
666
+ // until checking is performed on this file.
667
+ if (this._diagnosticRuleSet.reportUnnecessaryTypeIgnoreComment !== 'none' &&
668
+ !this._writableData.isCheckingNeeded) {
669
+ const diagCategory = (0, diagnostic_1.convertLevelToCategory)(this._diagnosticRuleSet.reportUnnecessaryTypeIgnoreComment);
670
+ const prefilteredErrorList = prefilteredDiagList.filter((diag) => diag.category === 0 /* Error */ ||
671
+ diag.category === 1 /* Warning */ ||
672
+ diag.category === 2 /* Information */);
673
+ const isUnreachableCodeRange = (range) => {
674
+ return prefilteredDiagList.find((diag) => diag.category === 4 /* UnreachableCode */ &&
675
+ diag.range.start.line <= range.start.line &&
676
+ diag.range.end.line >= range.end.line);
677
+ };
678
+ if (prefilteredErrorList.length === 0 && this._writableData.typeIgnoreAll !== undefined) {
679
+ const rangeStart = this._writableData.typeIgnoreAll.range.start;
680
+ const rangeEnd = rangeStart + this._writableData.typeIgnoreAll.range.length;
681
+ const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
682
+ if (!isUnreachableCodeRange(range) && this._diagnosticRuleSet.enableTypeIgnoreComments) {
683
+ unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryTypeIgnore(), range));
684
+ }
685
+ }
686
+ typeIgnoreLinesClone.forEach((ignoreComment) => {
687
+ var _a;
688
+ if ((_a = this._writableData.parseResults) === null || _a === void 0 ? void 0 : _a.tokenizerOutput.lines) {
689
+ const rangeStart = ignoreComment.range.start;
690
+ const rangeEnd = rangeStart + ignoreComment.range.length;
691
+ const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
692
+ if (!isUnreachableCodeRange(range) && this._diagnosticRuleSet.enableTypeIgnoreComments) {
693
+ unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryTypeIgnore(), range));
694
+ }
695
+ }
696
+ });
697
+ pyrightIgnoreLinesClone.forEach((ignoreComment) => {
698
+ var _a;
699
+ if ((_a = this._writableData.parseResults) === null || _a === void 0 ? void 0 : _a.tokenizerOutput.lines) {
700
+ if (!ignoreComment.rulesList) {
701
+ const rangeStart = ignoreComment.range.start;
702
+ const rangeEnd = rangeStart + ignoreComment.range.length;
703
+ const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
704
+ if (!isUnreachableCodeRange(range)) {
705
+ unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryPyrightIgnore(), range));
706
+ }
707
+ }
708
+ else {
709
+ ignoreComment.rulesList.forEach((unusedRule) => {
710
+ const rangeStart = unusedRule.range.start;
711
+ const rangeEnd = rangeStart + unusedRule.range.length;
712
+ const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, this._writableData.parseResults.tokenizerOutput.lines);
713
+ if (!isUnreachableCodeRange(range)) {
714
+ unnecessaryTypeIgnoreDiags.push(new diagnostic_1.Diagnostic(diagCategory, localize_1.Localizer.Diagnostic.unnecessaryPyrightIgnoreRule().format({
715
+ name: unusedRule.text,
716
+ }), range));
717
+ }
718
+ });
719
+ }
720
+ }
721
+ });
722
+ }
723
+ if (this._diagnosticRuleSet.reportImportCycles !== 'none' &&
724
+ this._writableData.circularDependencies.length > 0) {
725
+ const category = (0, diagnostic_1.convertLevelToCategory)(this._diagnosticRuleSet.reportImportCycles);
726
+ this._writableData.circularDependencies.forEach((cirDep) => {
727
+ const diag = new diagnostic_1.Diagnostic(category, localize_1.Localizer.Diagnostic.importCycleDetected() +
728
+ '\n' +
729
+ cirDep
730
+ .getPaths()
731
+ .map((path) => ' ' + path)
732
+ .join('\n'), (0, textRange_1.getEmptyRange)());
733
+ diag.setRule(diagnosticRules_1.DiagnosticRule.reportImportCycles);
734
+ diagList.push(diag);
735
+ });
736
+ }
737
+ if (this._writableData.hitMaxImportDepth !== undefined) {
738
+ diagList.push(new diagnostic_1.Diagnostic(0 /* Error */, localize_1.Localizer.Diagnostic.importDepthExceeded().format({ depth: this._writableData.hitMaxImportDepth }), (0, textRange_1.getEmptyRange)()));
739
+ }
740
+ // Add diagnostics for comments that match the task list tokens.
741
+ this._addTaskListDiagnostics(configOptions.taskListTokens, diagList);
742
+ // If the file is in the ignore list, clear the diagnostic list.
743
+ if (configOptions.ignore.find((ignoreFileSpec) => ignoreFileSpec.regExp.test(this._realFilePath))) {
744
+ diagList = [];
745
+ }
746
+ // If there is a "type: ignore" comment at the top of the file, clear
747
+ // the diagnostic list of all error, warning, and information diagnostics.
748
+ if (this._diagnosticRuleSet.enableTypeIgnoreComments) {
749
+ if (this._writableData.typeIgnoreAll !== undefined) {
750
+ diagList = diagList.filter((diag) => diag.category !== 0 /* Error */ &&
751
+ diag.category !== 1 /* Warning */ &&
752
+ diag.category !== 2 /* Information */);
753
+ }
754
+ }
755
+ // Now add in the "unnecessary type ignore" diagnostics.
756
+ diagList = diagList.concat(unnecessaryTypeIgnoreDiags);
757
+ // If we're not returning any diagnostics, filter out all of
758
+ // the errors and warnings, leaving only the unreachable code
759
+ // and deprecated diagnostics.
760
+ if (!includeWarningsAndErrors) {
761
+ diagList = diagList.filter((diag) => diag.category === 3 /* UnusedCode */ ||
762
+ diag.category === 4 /* UnreachableCode */ ||
763
+ diag.category === 5 /* Deprecated */);
764
+ }
765
+ this._writableData.accumulatedDiagnostics = diagList;
766
+ }
757
767
  _cachePreEditState() {
758
768
  // If there's no document yet, this change doesn't count as a write yet.
759
769
  if (this._writableData.clientDocumentContents !== undefined) {
@@ -767,21 +777,20 @@ class SourceFile {
767
777
  }
768
778
  }
769
779
  // Get all task list diagnostics for the current file and add them
770
- // to the specified diagnostic list
780
+ // to the specified diagnostic list.
771
781
  _addTaskListDiagnostics(taskListTokens, diagList) {
772
782
  var _a, _b;
773
- // input validation
774
783
  if (!taskListTokens || taskListTokens.length === 0 || !diagList) {
775
784
  return;
776
785
  }
777
- // if we have no tokens, we're done
786
+ // If we have no tokens, we're done.
778
787
  if (!((_b = (_a = this._writableData.parseResults) === null || _a === void 0 ? void 0 : _a.tokenizerOutput) === null || _b === void 0 ? void 0 : _b.tokens)) {
779
788
  return;
780
789
  }
781
790
  const tokenizerOutput = this._writableData.parseResults.tokenizerOutput;
782
791
  for (let i = 0; i < tokenizerOutput.tokens.count; i++) {
783
792
  const token = tokenizerOutput.tokens.getItemAt(i);
784
- // if there are no comments, skip this token
793
+ // If there are no comments, skip this token.
785
794
  if (!token.comments || token.comments.length === 0) {
786
795
  continue;
787
796
  }
@@ -793,21 +802,22 @@ class SourceFile {
793
802
  // followed by (0+ whitespace + EOL) OR (1+ NON-alphanumeric characters)
794
803
  const regexStr = '^[\\s]*' + token.text + '([\\s]*$|[\\W]+)';
795
804
  const regex = RegExp(regexStr, 'i'); // case insensitive
796
- // if the comment doesn't match, skip it
805
+ // If the comment doesn't match, skip it.
797
806
  if (!regex.test(comment.value)) {
798
807
  continue;
799
808
  }
800
- // Calculate the range for the diagnostic
801
- // This allows navigation to the comment via double clicking the item in the task list pane
809
+ // Calculate the range for the diagnostic. This allows navigation
810
+ // to the comment via double clicking the item in the task list pane.
802
811
  let rangeStart = comment.start;
803
- // The comment technically starts right after the comment identifier (#), but we want the caret right
804
- // before the task list token (since there might be whitespace before it)
812
+ // The comment technically starts right after the comment identifier(#),
813
+ // but we want the caret right before the task list token (since there
814
+ // might be whitespace before it).
805
815
  const indexOfToken = comment.value.toLowerCase().indexOf(token.text.toLowerCase());
806
816
  rangeStart += indexOfToken;
807
817
  const rangeEnd = textRange_1.TextRange.getEnd(comment);
808
818
  const range = (0, positionUtils_1.convertOffsetsToRange)(rangeStart, rangeEnd, tokenizerOutput.lines);
809
- // Add the diagnostic to the list to send to VS,
810
- // and trim whitespace from the comment so it's easier to read in the task list
819
+ // Add the diagnostic to the list and trim whitespace from the comment so
820
+ // it's easier to read in the task list.
811
821
  diagList.push(new diagnostic_1.Diagnostic(6 /* TaskItem */, comment.value.trim(), range, token.priority));
812
822
  }
813
823
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}