@zzzen/pyright-internal 1.2.0-dev.20220710 → 1.2.0-dev.20220731

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 (166) hide show
  1. package/dist/analyzer/analysis.js +1 -1
  2. package/dist/analyzer/analysis.js.map +1 -1
  3. package/dist/analyzer/binder.js +14 -0
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.d.ts +1 -0
  6. package/dist/analyzer/checker.js +100 -46
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.d.ts +0 -1
  9. package/dist/analyzer/codeFlowEngine.js +190 -196
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/codeFlowTypes.d.ts +1 -1
  12. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  13. package/dist/analyzer/constraintSolver.js +5 -3
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/dataClasses.js +13 -4
  16. package/dist/analyzer/dataClasses.js.map +1 -1
  17. package/dist/analyzer/enums.d.ts +13 -0
  18. package/dist/analyzer/enums.js +207 -0
  19. package/dist/analyzer/enums.js.map +1 -0
  20. package/dist/analyzer/importResolver.js +5 -4
  21. package/dist/analyzer/importResolver.js.map +1 -1
  22. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  23. package/dist/analyzer/importStatementUtils.js +96 -19
  24. package/dist/analyzer/importStatementUtils.js.map +1 -1
  25. package/dist/analyzer/parseTreeUtils.d.ts +5 -0
  26. package/dist/analyzer/parseTreeUtils.js +111 -3
  27. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  28. package/dist/analyzer/patternMatching.js +3 -3
  29. package/dist/analyzer/patternMatching.js.map +1 -1
  30. package/dist/analyzer/properties.js +1 -1
  31. package/dist/analyzer/properties.js.map +1 -1
  32. package/dist/analyzer/service.d.ts +1 -1
  33. package/dist/analyzer/service.js +37 -37
  34. package/dist/analyzer/service.js.map +1 -1
  35. package/dist/analyzer/sourceFile.js +40 -9
  36. package/dist/analyzer/sourceFile.js.map +1 -1
  37. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  38. package/dist/analyzer/typeEvaluator.js +733 -709
  39. package/dist/analyzer/typeEvaluator.js.map +1 -1
  40. package/dist/analyzer/typeEvaluatorTypes.d.ts +18 -16
  41. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorWithTracker.js +9 -7
  43. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  44. package/dist/analyzer/typeGuards.d.ts +2 -0
  45. package/dist/analyzer/typeGuards.js +43 -15
  46. package/dist/analyzer/typeGuards.js.map +1 -1
  47. package/dist/analyzer/typePrinter.js +7 -1
  48. package/dist/analyzer/typePrinter.js.map +1 -1
  49. package/dist/analyzer/typeUtils.d.ts +4 -3
  50. package/dist/analyzer/typeUtils.js +99 -38
  51. package/dist/analyzer/typeUtils.js.map +1 -1
  52. package/dist/analyzer/typedDicts.d.ts +1 -0
  53. package/dist/analyzer/typedDicts.js +24 -3
  54. package/dist/analyzer/typedDicts.js.map +1 -1
  55. package/dist/analyzer/types.d.ts +9 -0
  56. package/dist/analyzer/types.js +99 -0
  57. package/dist/analyzer/types.js.map +1 -1
  58. package/dist/backgroundAnalysisBase.d.ts +2 -1
  59. package/dist/backgroundAnalysisBase.js +7 -0
  60. package/dist/backgroundAnalysisBase.js.map +1 -1
  61. package/dist/backgroundThreadBase.js +1 -0
  62. package/dist/backgroundThreadBase.js.map +1 -1
  63. package/dist/commands/commandResult.js +1 -1
  64. package/dist/commands/commandResult.js.map +1 -1
  65. package/dist/common/chokidarFileWatcherProvider.d.ts +1 -2
  66. package/dist/common/chokidarFileWatcherProvider.js +0 -3
  67. package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
  68. package/dist/common/configOptions.d.ts +1 -0
  69. package/dist/common/configOptions.js +4 -0
  70. package/dist/common/configOptions.js.map +1 -1
  71. package/dist/common/diagnostic.d.ts +2 -1
  72. package/dist/common/diagnostic.js +2 -1
  73. package/dist/common/diagnostic.js.map +1 -1
  74. package/dist/common/diagnosticRules.d.ts +1 -0
  75. package/dist/common/diagnosticRules.js +1 -0
  76. package/dist/common/diagnosticRules.js.map +1 -1
  77. package/dist/common/diagnosticSink.d.ts +3 -0
  78. package/dist/common/diagnosticSink.js +15 -2
  79. package/dist/common/diagnosticSink.js.map +1 -1
  80. package/dist/common/editAction.d.ts +6 -0
  81. package/dist/common/editAction.js +15 -0
  82. package/dist/common/editAction.js.map +1 -1
  83. package/dist/common/fileSystem.d.ts +4 -1
  84. package/dist/common/fileSystem.js +6 -4
  85. package/dist/common/fileSystem.js.map +1 -1
  86. package/dist/common/realFileSystem.d.ts +2 -2
  87. package/dist/common/realFileSystem.js.map +1 -1
  88. package/dist/common/textEditUtils.d.ts +22 -2
  89. package/dist/common/textEditUtils.js +138 -1
  90. package/dist/common/textEditUtils.js.map +1 -1
  91. package/dist/common/uriParser.d.ts +2 -0
  92. package/dist/common/uriParser.js +11 -0
  93. package/dist/common/uriParser.js.map +1 -1
  94. package/dist/common/workspaceEditUtils.d.ts +1 -0
  95. package/dist/common/workspaceEditUtils.js +10 -6
  96. package/dist/common/workspaceEditUtils.js.map +1 -1
  97. package/dist/languageServerBase.d.ts +17 -16
  98. package/dist/languageServerBase.js +73 -59
  99. package/dist/languageServerBase.js.map +1 -1
  100. package/dist/languageService/codeActionProvider.d.ts +2 -2
  101. package/dist/languageService/codeActionProvider.js +1 -1
  102. package/dist/languageService/codeActionProvider.js.map +1 -1
  103. package/dist/languageService/completionProvider.d.ts +15 -11
  104. package/dist/languageService/completionProvider.js +75 -5
  105. package/dist/languageService/completionProvider.js.map +1 -1
  106. package/dist/languageService/renameModuleProvider.d.ts +1 -4
  107. package/dist/languageService/renameModuleProvider.js +10 -46
  108. package/dist/languageService/renameModuleProvider.js.map +1 -1
  109. package/dist/languageService/tooltipUtils.js +1 -3
  110. package/dist/languageService/tooltipUtils.js.map +1 -1
  111. package/dist/localization/localize.d.ts +13 -0
  112. package/dist/localization/localize.js +4 -0
  113. package/dist/localization/localize.js.map +1 -1
  114. package/dist/localization/package.nls.en-us.json +4 -0
  115. package/dist/parser/parser.js +9 -1
  116. package/dist/parser/parser.js.map +1 -1
  117. package/dist/pyright.js +3 -1
  118. package/dist/pyright.js.map +1 -1
  119. package/dist/pyrightFileSystem.d.ts +20 -2
  120. package/dist/pyrightFileSystem.js +29 -2
  121. package/dist/pyrightFileSystem.js.map +1 -1
  122. package/dist/server.js +4 -4
  123. package/dist/server.js.map +1 -1
  124. package/dist/tests/chainedSourceFiles.test.js +2 -0
  125. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  126. package/dist/tests/checker.test.js +9 -0
  127. package/dist/tests/checker.test.js.map +1 -1
  128. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +1 -0
  129. package/dist/tests/fourslash/completions.commitChars.fourslash.js +59 -0
  130. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +1 -0
  131. package/dist/tests/fourslash/completions.triggers.fourslash.d.ts +1 -0
  132. package/dist/tests/fourslash/completions.triggers.fourslash.js +29 -0
  133. package/dist/tests/fourslash/completions.triggers.fourslash.js.map +1 -0
  134. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  135. package/dist/tests/fourslash/hover.init.fourslash.js +2 -2
  136. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  137. package/dist/tests/harness/fourslash/fourSlashParser.js +5 -1
  138. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  139. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  140. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  141. package/dist/tests/harness/fourslash/testState.js +18 -9
  142. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  143. package/dist/tests/pyrightFileSystem.test.js +28 -0
  144. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  145. package/dist/tests/renameModuleTestUtils.js +5 -87
  146. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  147. package/dist/tests/testState.test.js +1 -1
  148. package/dist/tests/testState.test.js.map +1 -1
  149. package/dist/tests/testStateUtils.d.ts +8 -0
  150. package/dist/tests/testStateUtils.js +110 -0
  151. package/dist/tests/testStateUtils.js.map +1 -0
  152. package/dist/tests/testUtils.d.ts +2 -1
  153. package/dist/tests/testUtils.js +9 -6
  154. package/dist/tests/testUtils.js.map +1 -1
  155. package/dist/tests/typeEvaluator1.test.js +7 -7
  156. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  157. package/dist/tests/typeEvaluator2.test.js +16 -4
  158. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  159. package/dist/tests/typeEvaluator3.test.js +9 -1
  160. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  161. package/dist/tests/typeEvaluator4.test.js +16 -0
  162. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  163. package/dist/workspaceMap.d.ts +1 -0
  164. package/dist/workspaceMap.js +11 -1
  165. package/dist/workspaceMap.js.map +1 -1
  166. package/package.json +3 -3
@@ -28,7 +28,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  return result;
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.getDirectoryLeadingDotsPointsTo = exports.getRelativeModuleName = exports.getTextRangeForImportNameDeletion = exports.getImportGroupFromModuleNameAndType = exports.getAllImportNames = exports.getContainingImportStatement = exports.getTextEditsForAutoImportInsertion = exports.getTextEditsForAutoImportInsertions = exports.getTextEditsForAutoImportSymbolAddition = exports.getTopLevelImports = exports.compareImportStatements = exports.getImportGroup = exports.ImportGroup = void 0;
31
+ exports.getResolvedFilePath = exports.getDirectoryLeadingDotsPointsTo = exports.getRelativeModuleName = exports.getTextRangeForImportNameDeletion = exports.getImportGroupFromModuleNameAndType = exports.getAllImportNames = exports.getContainingImportStatement = exports.getTextEditsForAutoImportInsertion = exports.getTextEditsForAutoImportInsertions = exports.getTextEditsForAutoImportSymbolAddition = exports.getTopLevelImports = exports.getAllImports = exports.compareImportStatements = exports.getImportGroup = exports.ImportGroup = void 0;
32
32
  const cancellationUtils_1 = require("../common/cancellationUtils");
33
33
  const collectionUtils_1 = require("../common/collectionUtils");
34
34
  const pathUtils_1 = require("../common/pathUtils");
@@ -36,6 +36,7 @@ const positionUtils_1 = require("../common/positionUtils");
36
36
  const stringUtils_1 = require("../common/stringUtils");
37
37
  const textRange_1 = require("../common/textRange");
38
38
  const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
39
+ const parseTreeWalker_1 = require("./parseTreeWalker");
39
40
  const SymbolNameUtils = __importStar(require("./symbolNameUtils"));
40
41
  var ImportGroup;
41
42
  (function (ImportGroup) {
@@ -79,6 +80,10 @@ function compareImportStatements(a, b) {
79
80
  return a.moduleName < b.moduleName ? -1 : 1;
80
81
  }
81
82
  exports.compareImportStatements = compareImportStatements;
83
+ function getAllImports(root, token) {
84
+ return ImportCollector.collect(root, token);
85
+ }
86
+ exports.getAllImports = getAllImports;
82
87
  // Looks for top-level 'import' and 'import from' statements and provides
83
88
  // an ordered list and a map (by file path).
84
89
  function getTopLevelImports(parseTree, includeImplicitImports = false) {
@@ -544,27 +549,56 @@ function getImportGroupFromModuleNameAndType(moduleNameAndType) {
544
549
  return importGroup;
545
550
  }
546
551
  exports.getImportGroupFromModuleNameAndType = getImportGroupFromModuleNameAndType;
547
- function getTextRangeForImportNameDeletion(nameNodes, nameNodeIndex) {
548
- let editSpan;
549
- if (nameNodes.length === 1 && nameNodeIndex === 0) {
550
- // get span of "import [|A|]"
551
- editSpan = nameNodes[0];
552
- }
553
- else if (nameNodeIndex === nameNodes.length - 1) {
554
- // get span of "import A[|, B|]"
555
- const start = textRange_1.TextRange.getEnd(nameNodes[nameNodeIndex - 1]);
556
- const length = textRange_1.TextRange.getEnd(nameNodes[nameNodeIndex]) - start;
557
- editSpan = { start, length };
558
- }
559
- else {
560
- // get span of "import [|A, |]B"
561
- const start = nameNodes[nameNodeIndex].start;
562
- const length = nameNodes[nameNodeIndex + 1].start - start;
563
- editSpan = { start, length };
552
+ function getTextRangeForImportNameDeletion(nameNodes, ...nameNodeIndexToDelete) {
553
+ const editSpans = [];
554
+ for (const pair of getConsecutiveNumberPairs(nameNodeIndexToDelete)) {
555
+ const startNode = nameNodes[pair.start];
556
+ const endNode = nameNodes[pair.end];
557
+ if (pair.start === 0 && nameNodes.length === pair.end - pair.start + 1) {
558
+ // get span of whole statement. ex) "import [|A|]" or "import [|A, B|]"
559
+ editSpans.push(textRange_1.TextRange.fromBounds(startNode.start, textRange_1.TextRange.getEnd(endNode)));
560
+ }
561
+ else if (pair.end === nameNodes.length - 1) {
562
+ // get span of "import A[|, B|]" or "import A[|, B, C|]"
563
+ const start = textRange_1.TextRange.getEnd(nameNodes[pair.start - 1]);
564
+ const length = textRange_1.TextRange.getEnd(endNode) - start;
565
+ editSpans.push({ start, length });
566
+ }
567
+ else {
568
+ // get span of "import [|A, |]B" or "import [|A, B,|] C"
569
+ const start = startNode.start;
570
+ const length = nameNodes[pair.end + 1].start - start;
571
+ editSpans.push({ start, length });
572
+ }
564
573
  }
565
- return editSpan;
574
+ return editSpans;
566
575
  }
567
576
  exports.getTextRangeForImportNameDeletion = getTextRangeForImportNameDeletion;
577
+ function getConsecutiveNumberPairs(indices) {
578
+ if (indices.length === 0) {
579
+ return [];
580
+ }
581
+ if (indices.length === 1) {
582
+ return [{ start: indices[0], end: indices[0] }];
583
+ }
584
+ const pairs = [];
585
+ let start = indices[0];
586
+ let current = start;
587
+ for (const index of indices) {
588
+ if (current === index) {
589
+ continue;
590
+ }
591
+ if (current + 1 === index) {
592
+ current = index;
593
+ continue;
594
+ }
595
+ pairs.push({ start, end: current });
596
+ start = index;
597
+ current = index;
598
+ }
599
+ pairs.push({ start, end: current });
600
+ return pairs;
601
+ }
568
602
  function getRelativeModuleName(fs, sourcePath, targetPath, ignoreFolderStructure = false, sourceIsFile) {
569
603
  let srcPath = sourcePath;
570
604
  sourceIsFile = sourceIsFile !== undefined ? sourceIsFile : (0, pathUtils_1.isFile)(fs, sourcePath);
@@ -624,4 +658,47 @@ function getDirectoryLeadingDotsPointsTo(fromDirectory, leadingDots) {
624
658
  return currentDirectory;
625
659
  }
626
660
  exports.getDirectoryLeadingDotsPointsTo = getDirectoryLeadingDotsPointsTo;
661
+ function getResolvedFilePath(importResult) {
662
+ if (!importResult || !importResult.isImportFound || importResult.resolvedPaths.length === 0) {
663
+ return undefined;
664
+ }
665
+ if (importResult.resolvedPaths.length === 1 && importResult.resolvedPaths[0] === '') {
666
+ // Import is resolved to namespace package folder.
667
+ if (importResult.packageDirectory) {
668
+ return importResult.packageDirectory;
669
+ }
670
+ // Absolute import is partially resolved from the path.
671
+ if (importResult.searchPath) {
672
+ return importResult.searchPath;
673
+ }
674
+ return undefined;
675
+ }
676
+ // Regular case.
677
+ return importResult.resolvedPaths[importResult.resolvedPaths.length - 1];
678
+ }
679
+ exports.getResolvedFilePath = getResolvedFilePath;
680
+ class ImportCollector extends parseTreeWalker_1.ParseTreeWalker {
681
+ constructor(_token) {
682
+ super();
683
+ this._token = _token;
684
+ this._imports = [];
685
+ }
686
+ static collect(root, token) {
687
+ const collector = new ImportCollector(token);
688
+ collector.walk(root);
689
+ return collector._imports;
690
+ }
691
+ walk(node) {
692
+ (0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
693
+ super.walk(node);
694
+ }
695
+ visitImport(node) {
696
+ this._imports.push(node);
697
+ return true;
698
+ }
699
+ visitImportFrom(node) {
700
+ this._imports.push(node);
701
+ return true;
702
+ }
703
+ }
627
704
  //# sourceMappingURL=importStatementUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"importStatementUtils.js","sourceRoot":"","sources":["../../../src/analyzer/importStatementUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importStatementUtils.js","sourceRoot":"","sources":["../../../src/analyzer/importStatementUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAIH,mEAA2E;AAC3E,+DAA4E;AAG5E,mDAM6B;AAC7B,2DAA2F;AAC3F,uDAAoE;AACpE,mDAAiE;AAYjE,qEAAuD;AAGvD,uDAAoD;AACpD,mEAAqD;AAiBrD,IAAkB,WAOjB;AAPD,WAAkB,WAAW;IACzB,2DAA2D;IAC3D,0DAA0D;IAC1D,mDAAW,CAAA;IACX,yDAAc,CAAA;IACd,+CAAS,CAAA;IACT,+DAAiB,CAAA;AACrB,CAAC,EAPiB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAO5B;AAWD,wEAAwE;AACxE,SAAgB,cAAc,CAAC,SAA0B;IACrD,IAAI,SAAS,CAAC,YAAY,EAAE;QACxB,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,oBAAuB,EAAE;YAC1D,uBAA2B;SAC9B;aAAM,IACH,SAAS,CAAC,YAAY,CAAC,UAAU,uBAA0B;YAC3D,SAAS,CAAC,YAAY,CAAC,kBAAkB,EAC3C;YACE,0BAA8B;SACjC;QAED,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE;YACnC,6BAAiC;SACpC;QAED,qBAAyB;KAC5B;SAAM;QACH,qBAAyB;KAC5B;AACL,CAAC;AAnBD,wCAmBC;AAED,gDAAgD;AAChD,SAAgB,uBAAuB,CAAC,CAAkB,EAAE,CAAkB;IAC1E,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,YAAY,GAAG,YAAY,EAAE;QAC7B,OAAO,CAAC,CAAC,CAAC;KACb;SAAM,IAAI,YAAY,GAAG,YAAY,EAAE;QACpC,OAAO,CAAC,CAAC;KACZ;IAED,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAXD,0DAWC;AAED,SAAgB,aAAa,CAAC,IAAgB,EAAE,KAAwB;IACpE,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,sCAEC;AAED,yEAAyE;AACzE,4CAA4C;AAC5C,SAAgB,kBAAkB,CAAC,SAAqB,EAAE,sBAAsB,GAAG,KAAK;IACpF,MAAM,YAAY,GAAqB;QACnC,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,IAAI,GAAG,EAA2B;KACpD,CAAC;IAEF,IAAI,yBAAyB,GAAG,KAAK,CAAC;IACtC,IAAI,yBAAyB,GAAG,KAAK,CAAC;IAEtC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,IAAI,SAAS,CAAC,QAAQ,2BAAgC,EAAE;YACpD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;gBAC1C,IAAI,YAAY,CAAC,QAAQ,oBAAyB,EAAE;oBAChD,yBAAyB,GAAG,IAAI,CAAC;oBACjC,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;oBAC1E,yBAAyB,GAAG,KAAK,CAAC;iBACrC;qBAAM,IAAI,YAAY,CAAC,QAAQ,wBAA6B,EAAE;oBAC3D,yBAAyB,GAAG,IAAI,CAAC;oBACjC,sBAAsB,CAClB,YAAY,EACZ,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,CACzB,CAAC;oBACF,yBAAyB,GAAG,KAAK,CAAC;iBACrC;qBAAM;oBACH,yBAAyB,GAAG,yBAAyB,CAAC;iBACzD;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,yBAAyB,GAAG,yBAAyB,CAAC;SACzD;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACxB,CAAC;AAnCD,gDAmCC;AAED,8DAA8D;AAC9D,0DAA0D;AAC1D,SAAS,wBAAwB,CAAC,UAAkB;IAChD,IAAI,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,CAAC,CAAC;KACZ;IACD,IAAI,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;QAC7C,OAAO,CAAC,CAAC;KACZ;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,uCAAuC,CACnD,cAAiD,EACjD,eAAgC,EAChC,YAA0B;IAE1B,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,IACI,CAAC,eAAe,CAAC,IAAI;QACrB,eAAe,CAAC,IAAI,CAAC,QAAQ,wBAA6B;QAC1D,eAAe,CAAC,IAAI,CAAC,gBAAgB,EACvC;QACE,OAAO,aAAa,CAAC;KACxB;IAED,8DAA8D;IAC9D,qCAAqC;IACrC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;IACxC,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CACvF,CAAC,IAAI,EAAE,EAAE,CACL,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CACjH,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,aAAa,CAAC;KACxB;IAED,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE;QACnC,aAAa,CAAC,IAAI,CACd,wCAAwC,CAAC,QAAQ,CAAC,IAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAC/G,CAAC;KACL;IAED,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,IAAA,oCAAkB,EAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;QACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACnC;aAAM;YACH,YAAY,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;gBACzB,eAAe,EAAE,SAAS;qBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;qBAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;qBAC7B,IAAI,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC;SACN;KACJ;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAnDD,0FAmDC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,KAAa;IACrD,yEAAyE;IACzE,gCAAgC;IAChC,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC,IAAI,OAAO,KAAK,CAAC,EAAE;QACf,OAAO,OAAO,CAAC;KAClB;IAED,kDAAkD;IAClD,sFAAsF;IACtF,uDAAuD;IACvD,wDAAwD;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,IAAA,yCAA2B,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACvE,CAAC;AAMD,SAAS,wCAAwC,CAC7C,UAAkB,EAClB,KAAyB,EACzB,IAAoB,EACpB,YAA0B;IAE1B,qEAAqE;IACrE,qDAAqD;IACrD,IAAI,WAAyC,CAAC;IAC9C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;QAClC,IAAI,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;YAC3D,MAAM;SACT;QAED,WAAW,GAAG,SAAS,CAAC;KAC3B;IAED,qEAAqE;IACrE,yEAAyE;IACzE,yDAAyD;IACzD,0BAA0B;IAC1B,KAAK;IACL,oBAAoB;IACpB,SAAS;IACT,MAAM;IACN,IAAI,uBAAuB,GAAG,KAAK,CAAC;IACpC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,kBAAkB,GAAG,IAAA,uCAAuB,EAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnG,MAAM,cAAc,GAAG,IAAA,uCAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1G,MAAM,eAAe,GACjB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,IAAA,uCAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC;YACpF,CAAC,CAAC,SAAS,CAAC;QAEpB,IACI,cAAc,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI;YAC7C,CAAC,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAC/E;YACE,MAAM,oBAAoB,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE/F,sDAAsD;YACtD,uBAAuB;YACvB,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;YAE5F,kDAAkD;YAClD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC1B,uBAAuB,GAAG,IAAI,CAAC;aAClC;SACJ;KACJ;IAED,MAAM,eAAe,GAAG,WAAW;QAC/B,CAAC,CAAC,qBAAS,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;YACvB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,MAAM,iBAAiB,GAAG,IAAA,uCAAuB,EAAC,eAAe,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvG,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;IACzE,IAAI,eAAuB,CAAC;IAE5B,IAAI,uBAAuB,EAAE;QACzB,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,CAAC;QACtE,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;KAC7G;SAAM;QACH,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;KACzE;IAED,OAAO;QACH,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;QAC3D,UAAU;QACV,eAAe;KAClB,CAAC;AACN,CAAC;AAUD,SAAgB,mCAAmC,CAC/C,cAAqE,EACrE,gBAAkC,EAClC,YAA0B,EAC1B,kBAA4B;IAE5B,MAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACnF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,MAAM,GAAG,GAAG,IAAA,oCAAkB,EAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3E,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QACnC,cAAc,CAAC,IAAI,CACf,GAAG,wCAAwC,CACvC,UAAU,EACV,gBAAgB,EAChB,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAC/B,mCAAmC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACzD,YAAY,EACZ,kBAAkB,CACrB,CACJ,CAAC;KACL;IAED,OAAO,iCAAiC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC3E,CAAC;AA5BD,kFA4BC;AAED,SAAgB,kCAAkC,CAC9C,cAAiD,EACjD,gBAAkC,EAClC,UAAkB,EAClB,WAAwB,EACxB,YAA0B,EAC1B,kBAA4B;IAE5B,MAAM,cAAc,GAAG,wCAAwC,CAC3D,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,CACrB,CAAC;IAEF,OAAO,iCAAiC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC3E,CAAC;AAlBD,gFAkBC;AAED,SAAS,iCAAiC,CAAC,YAA0B,EAAE,cAA+B;IAClG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;IAED,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAA,oCAAkB,EAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACtG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAA2B,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;QAC9B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;aAAM;YACH,YAAY,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;gBACzB,eAAe,EACX,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtB,SAAS;yBACJ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;yBAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;yBACpC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,4BAA4B,CAAC;oBACpE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU;aAC9B,CAAC,CAAC;SACN;KACJ;IAED,OAAO,YAAY,CAAC;IAEpB,SAAS,WAAW,CAAC,IAAmB;QACpC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3G,CAAC;IAED,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;QACxC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB;QAED,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;AACL,CAAC;AAED,SAAS,wCAAwC,CAC7C,cAAiD,EACjD,gBAAkC,EAClC,UAAkB,EAClB,WAAwB,EACxB,YAA0B,EAC1B,kBAA4B;IAE5B,MAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACnF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,uDAAuD;QACvD,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;IAED,2GAA2G;IAC3G,MAAM,GAAG,GAAG,IAAA,oCAAkB,EAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpF,+BAA+B;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,EAAE;QACT,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,mCAAmC;IACnC,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,WAAW,EAAE;QACb,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,UAAU,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC1F;IAED,OAAO,cAAc,CAAC;IAEtB,SAAS,eAAe,CAAC,QAAwB,EAAE,UAAkB;QACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,OAAO;YACH,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU;SAC3E,CAAC;IACN,CAAC;IAED,SAAS,aAAa,CAAC,cAAgC,EAAE,qBAA8C;QACnG,MAAM,WAAW,GAAG,cAAc;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;aAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC3D,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,6BAAW,EAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAc,CAAC,CAAC;QAElE,cAAc,CAAC,IAAI,CACf,uCAAuC,CACnC,qBAAqB,CAAC,WAAW,CAAC,EAClC,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,CACrB,CACJ,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,uCAAuC,CAC5C,eAAuB,EACvB,gBAAkC,EAClC,UAAkB,EAClB,WAAwB,EACxB,YAA0B,EAC1B,kBAA4B;IAE5B,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,IAAI,iBAA2B,CAAC;IAChC,MAAM,UAAU,GAAG,IAAA,uCAAuB,EAAC,kBAAkB,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAE,CAAC;IACpG,IAAI,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;QAC1G,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEzD,8DAA8D;QAC9D,+DAA+D;QAC/D,wDAAwD;QACxD,IAAI,eAAe,kBAAsB,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,cAAc,EAAE;YACrD,gEAAgE;YAChE,kEAAkE;YAClE,OAAO;YACP,MAAM,cAAc,GAAgB,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAEzG,IAAI,WAAW,GAAG,cAAc,EAAE;gBAC9B,IAAI,CAAC,YAAY,IAAI,eAAe,GAAG,WAAW,EAAE;oBAChD,2CAA2C;oBAC3C,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,GAAG,SAAS,CAAC;iBACrF;gBACD,MAAM;aACT;YAED,IAAI,WAAW,KAAK,cAAc,IAAI,SAAS,CAAC,UAAU,GAAG,UAAU,EAAE;gBACrE,MAAM;aACT;YAED,mEAAmE;YACnE,eAAe;YACf,IAAI,SAAS,CAAC,yBAAyB,EAAE;gBACrC,IAAI,WAAW,GAAG,eAAe,EAAE;oBAC/B,2CAA2C;oBAC3C,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,GAAG,SAAS,CAAC;iBACrF;gBACD,MAAM;aACT;YAED,oEAAoE;YACpE,IAAI,SAAS,KAAK,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBAC3F,IAAI,WAAW,GAAG,cAAc,EAAE;oBAC9B,2CAA2C;oBAC3C,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,GAAG,SAAS,CAAC;iBACrF;aACJ;YAED,+BAA+B;YAC/B,IAAI,CAAC,YAAY,IAAI,WAAW,GAAG,eAAe,IAAI,WAAW,KAAK,cAAc,EAAE;gBAClF,YAAY,GAAG,IAAI,CAAC;aACvB;iBAAM;gBACH,YAAY,GAAG,KAAK,CAAC;aACxB;YAED,eAAe,GAAG,cAAc,CAAC;YACjC,eAAe,GAAG,SAAS,CAAC;SAC/B;QAED,IAAI,eAAe,EAAE;YACjB,IAAI,YAAY,EAAE;gBACd,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,CAAC;aACvF;iBAAM;gBACH,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,GAAG,SAAS,CAAC;aACrF;YAED,iBAAiB,GAAG,IAAA,uCAAuB,EACvC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAClF,YAAY,CAAC,eAAe,CAAC,KAAK,CACrC,CAAC;SACL;aAAM;YACH,iBAAiB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACjD;KACJ;SAAM;QACH,yEAAyE;QACzE,6DAA6D;QAC7D,iBAAiB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE;YACvD,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,CAAC,QAAQ,2BAAgC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzF,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEhD,IAAI,eAAe,CAAC,QAAQ,wBAA6B,EAAE;oBACvD,6CAA6C;oBAC7C,QAAQ,GAAG,KAAK,CAAC;iBACpB;qBAAM,IAAI,eAAe,CAAC,QAAQ,uBAA6B,EAAE;oBAC9D,IAAI,eAAe,CAAC,cAAc,CAAC,QAAQ,kBAAuB,EAAE;wBAChE,IAAI,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;4BACpE,oEAAoE;4BACpE,QAAQ,GAAG,KAAK,CAAC;yBACpB;qBACJ;iBACJ;aACJ;YAED,IAAI,QAAQ,EAAE;gBACV,iBAAiB,GAAG,IAAA,uCAAuB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACjG,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM;aACT;iBAAM;gBACH,iBAAiB,GAAG,IAAA,uCAAuB,EACvC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,EAClC,YAAY,CAAC,eAAe,CAAC,KAAK,CACrC,CAAC;gBACF,gBAAgB,GAAG,IAAI,CAAC;aAC3B;SACJ;QAED,UAAU;YACN,UAAU;gBACV,YAAY,CAAC,eAAe,CAAC,4BAA4B;gBACzD,YAAY,CAAC,eAAe,CAAC,4BAA4B,CAAC;QAC9D,IAAI,gBAAgB,EAAE;YAClB,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,GAAG,SAAS,CAAC;SACrF;aAAM;YACH,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC,eAAe,CAAC,4BAA4B,CAAC;SACvF;KACJ;IAED,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;IACnE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAgB,EAAE,YAA8B,EAAE,yBAAkC;IAC5G,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,YAAgC,CAAC;QAErC,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE;YAC5C,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACpF;QAED,MAAM,WAAW,GAAoB;YACjC,IAAI;YACJ,OAAO,EAAE,YAAY;YACrB,YAAY;YACZ,YAAY;YACZ,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;YAClD,yBAAyB;SAC5B,CAAC;QAEF,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9C,qBAAqB;QACrB,IAAI,YAAY,EAAE;YACd,4DAA4D;YAC5D,+DAA+D;YAC/D,cAAc;YACd,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBAC/C,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aAC7D;SACJ;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,sBAAsB,CAC3B,IAAoB,EACpB,YAA8B,EAC9B,yBAAkC,EAClC,sBAA+B;;IAE/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,YAAgC,CAAC;IAErC,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE;QAC5C,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACpF;IAED,IAAI,sBAAsB,IAAI,YAAY,EAAE;QACxC,YAAY,CAAC,eAAe,GAAG,MAAA,YAAY,CAAC,eAAe,mCAAI,IAAI,GAAG,EAA4B,CAAC;QAEnG,KAAK,MAAM,cAAc,IAAI,YAAY,CAAC,eAAe,EAAE;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;YACpF,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aACvE;SACJ;KACJ;IAED,MAAM,WAAW,GAAoB;QACjC,IAAI;QACJ,YAAY;QACZ,YAAY;QACZ,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,yBAAyB;KAC5B,CAAC;IAEF,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9C,qBAAqB;IACrB,IAAI,YAAY,EAAE;QACd,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,wEAAwE;QACxE,yEAAyE;QACzE,8BAA8B;QAC9B,IACI,CAAC,SAAS;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,oBAAyB;YAChD,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAC7D;YACE,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;SAC7D;KACJ;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB;IAC3C,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;QACvC,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC;KACjC;IAED,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjE,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAgB,4BAA4B,CAAC,IAA2B,EAAE,KAAwB;IAC9F,OAAO,IAAI,EAAE;QACT,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,QAAQ,oBAAyB,IAAI,IAAI,CAAC,QAAQ,wBAA6B,EAAE;YACtF,MAAM;SACT;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAZD,oEAYC;AAED,SAAgB,iBAAiB,CAAC,IAAiC;IAC/D,IAAI,IAAI,CAAC,QAAQ,oBAAyB,EAAE;QACxC,MAAM,UAAU,GAAG,IAAkB,CAAC;QACtC,OAAO,UAAU,CAAC,IAAI,CAAC;KAC1B;IAED,MAAM,cAAc,GAAG,IAAsB,CAAC;IAC9C,OAAO,cAAc,CAAC,OAAO,CAAC;AAClC,CAAC;AARD,8CAQC;AAED,SAAgB,mCAAmC,CAAC,iBAAoC;IACpF,IAAI,WAAW,gBAAoB,CAAC;IACpC,IAAI,iBAAiB,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,UAAU,uBAA0B,EAAE;QAChG,WAAW,qBAAyB,CAAC;KACxC;SAAM,IAAI,iBAAiB,CAAC,UAAU,oBAAuB,EAAE;QAC5D,WAAW,kBAAsB,CAAC;KACrC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AATD,kFASC;AAED,SAAgB,iCAAiC,CAC7C,SAA8C,EAC9C,GAAG,qBAA+B;IAElC,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,yBAAyB,CAAC,qBAAqB,CAAC,EAAE;QACjE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACpE,uEAAuE;YACvE,SAAS,CAAC,IAAI,CAAC,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,qBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACpF;aAAM,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,wDAAwD;YACxD,MAAM,KAAK,GAAG,qBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,qBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrC;aAAM;YACH,wDAAwD;YACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrC;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAzBD,8EAyBC;AAED,SAAS,yBAAyB,CAAC,OAAiB;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,EAAE,CAAC;KACb;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,MAAM,KAAK,GAAqC,EAAE,CAAC;IAEnD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QACzB,IAAI,OAAO,KAAK,KAAK,EAAE;YACnB,SAAS;SACZ;QAED,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,EAAE;YACvB,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;SACZ;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpC,KAAK,GAAG,KAAK,CAAC;QACd,OAAO,GAAG,KAAK,CAAC;KACnB;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,qBAAqB,CACjC,EAAc,EACd,UAAkB,EAClB,UAAkB,EAClB,qBAAqB,GAAG,KAAK,EAC7B,YAAsB;IAEtB,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,YAAY,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAClF,IAAI,YAAY,EAAE;QACd,OAAO,GAAG,IAAA,4BAAgB,EAAC,UAAU,CAAC,CAAC;KAC1C;IAED,IAAI,UAA8B,CAAC;IACnC,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC1B,IAAI,YAAY,EAAE;QACd,QAAQ,GAAG,IAAA,4BAAgB,EAAC,UAAU,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAA,8BAAkB,EAAC,IAAA,uBAAW,EAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,UAAU,EAAE;YACzB,sDAAsD;YACtD,UAAU,GAAG,QAAQ,CAAC;SACzB;aAAM,IAAI,qBAAqB,EAAE;YAC9B,mGAAmG;YACnG,mDAAmD;YACnD,EAAE;YACF,4DAA4D;YAC5D,UAAU,GAAG,IAAA,uBAAW,EAAC,QAAQ,CAAC,CAAC;YACnC,QAAQ,GAAG,IAAA,4BAAgB,EAAC,QAAQ,CAAC,CAAC;SACzC;KACJ;IAED,MAAM,aAAa,GAAG,IAAA,kDAAsC,EAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3G,kEAAkE;IAClE,qEAAqE;IACrE,oCAAoC;IACpC,IAAI,YAAY,GAAG,GAAG,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,YAAY,KAAK,IAAI,EAAE;YACvB,YAAY,IAAI,GAAG,CAAC;SACvB;aAAM;YACH,YAAY,IAAI,YAAY,CAAC;SAChC;QAED,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACzD,YAAY,IAAI,GAAG,CAAC;SACvB;KACJ;IAED,IAAI,UAAU,EAAE;QACZ,YAAY;YACR,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAG,UAAU,CAAC;KACnH;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAzDD,sDAyDC;AAED,SAAgB,+BAA+B,CAAC,aAAqB,EAAE,WAAmB;IACtF,IAAI,gBAAgB,GAAG,aAAa,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,gBAAgB,KAAK,EAAE,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QAED,gBAAgB,GAAG,IAAA,4BAAgB,EAAC,gBAAgB,CAAC,CAAC;KACzD;IAED,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAXD,0EAWC;AAED,SAAgB,mBAAmB,CAAC,YAAsC;IACtE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QACzF,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;QACjF,kDAAkD;QAClD,IAAI,YAAY,CAAC,gBAAgB,EAAE;YAC/B,OAAO,YAAY,CAAC,gBAAgB,CAAC;SACxC;QAED,uDAAuD;QACvD,IAAI,YAAY,CAAC,UAAU,EAAE;YACzB,OAAO,YAAY,CAAC,UAAU,CAAC;SAClC;QAED,OAAO,SAAS,CAAC;KACpB;IAED,gBAAgB;IAChB,OAAO,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AArBD,kDAqBC;AAED,MAAM,eAAgB,SAAQ,iCAAe;IAGzC,YAA4B,MAAyB;QACjD,KAAK,EAAE,CAAC;QADgB,WAAM,GAAN,MAAM,CAAmB;QAFpC,aAAQ,GAAoC,EAAE,CAAC;IAIhE,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAgB,EAAE,KAAwB;QAC5D,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAEQ,IAAI,CAAC,IAAe;QACzB,IAAA,gDAA4B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAEQ,WAAW,CAAC,IAAgB;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,eAAe,CAAC,IAAoB;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -35,6 +35,7 @@ export declare function isFinalAllowedForAssignmentTarget(targetNode: Expression
35
35
  export declare function isClassVarAllowedForAssignmentTarget(targetNode: ExpressionNode): boolean;
36
36
  export declare function isNodeContainedWithin(node: ParseNode, potentialContainer: ParseNode): boolean;
37
37
  export declare function getParentNodeOfType(node: ParseNode, containerType: ParseNodeType): ParseNode | undefined;
38
+ export declare function getParentAnnotationNode(node: ExpressionNode): ExpressionNode | undefined;
38
39
  export declare function isNodeContainedWithinNodeType(node: ParseNode, containerType: ParseNodeType): boolean;
39
40
  export declare function isSuiteEmpty(node: SuiteNode): boolean;
40
41
  export declare function isMatchingExpression(reference: ExpressionNode, expression: ExpressionNode): boolean;
@@ -67,6 +68,9 @@ export declare function getCallNodeAndActiveParameterIndex(node: ParseNode, inse
67
68
  activeIndex: number;
68
69
  activeOrFake: boolean;
69
70
  } | undefined;
71
+ export declare function getTokenIndexAtLeft(tokens: TextRangeCollection<Token>, position: number, includeWhitespace?: boolean, includeZeroLengthToken?: boolean): number;
72
+ export declare function getTokenAtLeft(tokens: TextRangeCollection<Token>, position: number, includeWhitespace?: boolean, includeZeroLengthToken?: boolean): Token | undefined;
73
+ export declare function getTokenAtIndex(tokens: TextRangeCollection<Token>, index: number): Token | undefined;
70
74
  export declare function getTokenAt(tokens: TextRangeCollection<Token>, position: number): Token | undefined;
71
75
  export declare function getTokenOverlapping(tokens: TextRangeCollection<Token>, position: number): Token | undefined;
72
76
  export declare function printParseNodeType(type: ParseNodeType): "Error" | "Argument" | "Assert" | "Assignment" | "AssignmentExpression" | "AugmentedAssignment" | "Await" | "BinaryOperation" | "Break" | "Call" | "Class" | "Constant" | "Continue" | "Decorator" | "Del" | "Dictionary" | "DictionaryExpandEntry" | "DictionaryKeyEntry" | "Ellipsis" | "If" | "Import" | "ImportAs" | "ImportFrom" | "ImportFromAs" | "Index" | "Except" | "For" | "FormatString" | "Function" | "Global" | "Lambda" | "List" | "ListComprehension" | "ListComprehensionFor" | "ListComprehensionIf" | "MemberAccess" | "Module" | "ModuleName" | "Name" | "Nonlocal" | "Number" | "Parameter" | "Pass" | "Raise" | "Return" | "Set" | "Slice" | "StatementList" | "StringList" | "String" | "Suite" | "Ternary" | "Tuple" | "Try" | "TypeAnnotation" | "UnaryOperation" | "Unpack" | "While" | "With" | "WithItem" | "Yield" | "YieldFrom" | "FunctionAnnotation" | "Match" | "Case" | "PatternSequence" | "PatternAs" | "PatternLiteral" | "PatternClass" | "PatternCapture" | "PatternMapping" | "PatternMappingKeyEntry" | "PatternMappingExpandEntry" | "PatternValue" | "PatternClassArgument" | "TypeParameter" | "TypeParameterList" | "TypeAlias";
@@ -95,4 +99,5 @@ export declare function getStringNodeValueRange(node: StringNode): TextRange;
95
99
  export declare function getStringValueRange(token: StringToken): TextRange;
96
100
  export declare function getFullStatementRange(statementNode: ParseNode, tokenizerOutput: TokenizerOutput): Range;
97
101
  export declare function isUnannotatedFunction(node: FunctionNode): boolean;
102
+ export declare function operatorSupportsChaining(op: OperatorType): boolean;
98
103
  export {};
@@ -27,8 +27,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
27
27
  return result;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.isFunctionSuiteEmpty = exports.getFileInfoFromNode = exports.getModuleNode = exports.isWriteAccess = exports.printParseNodeType = exports.getTokenOverlapping = exports.getTokenAt = exports.getCallNodeAndActiveParameterIndex = exports.getEnclosingParameter = exports.CallNodeWalker = exports.NameNodeWalker = exports.isAssignmentToDefaultsFollowingNamedTuple = exports.isDocString = exports.getDocString = exports.isWithinAssertExpression = exports.isWithinTryBlock = exports.isWithinLoop = exports.isWithinAnnotationComment = exports.isWithinTypeAnnotation = exports.isWithinDefaultParamInitializer = exports.isPartialMatchingExpression = exports.isMatchingExpression = exports.isSuiteEmpty = exports.isNodeContainedWithinNodeType = exports.getParentNodeOfType = exports.isNodeContainedWithin = exports.isClassVarAllowedForAssignmentTarget = exports.isFinalAllowedForAssignmentTarget = exports.getTypeAnnotationNode = exports.getExecutionScopeNode = exports.getTypeVarScopeNode = exports.getEvaluationScopeNode = exports.getEvaluationNodeForAssignmentExpression = exports.getEnclosingSuiteOrModule = exports.getEnclosingClassOrFunction = exports.getEnclosingLambda = exports.getEnclosingFunction = exports.getEnclosingClassOrModule = exports.getEnclosingModule = exports.getEnclosingClass = exports.getEnclosingSuite = exports.printOperator = exports.printExpression = exports.printArgument = exports.getTypeSourceId = exports.getClassFullName = exports.findNodeByOffset = exports.findNodeByPosition = exports.getNodeDepth = exports.PrintExpressionFlags = void 0;
31
- exports.isUnannotatedFunction = exports.getFullStatementRange = exports.getStringValueRange = exports.getStringNodeValueRange = exports.isLastNameOfDottedName = exports.isFirstNameOfDottedName = exports.getFirstNameOfDottedName = exports.getDottedName = exports.getDottedNameWithGivenNodeAsLastName = exports.getFirstAncestorOrSelf = exports.getFirstAncestorOrSelfOfKind = exports.isLastNameOfModuleName = exports.isFromImportAlias = exports.isFromImportName = exports.isFromImportModuleName = exports.isImportAlias = exports.isImportModuleName = exports.getTypeAnnotationForParameter = void 0;
30
+ exports.printParseNodeType = exports.getTokenOverlapping = exports.getTokenAt = exports.getTokenAtIndex = exports.getTokenAtLeft = exports.getTokenIndexAtLeft = exports.getCallNodeAndActiveParameterIndex = exports.getEnclosingParameter = exports.CallNodeWalker = exports.NameNodeWalker = exports.isAssignmentToDefaultsFollowingNamedTuple = exports.isDocString = exports.getDocString = exports.isWithinAssertExpression = exports.isWithinTryBlock = exports.isWithinLoop = exports.isWithinAnnotationComment = exports.isWithinTypeAnnotation = exports.isWithinDefaultParamInitializer = exports.isPartialMatchingExpression = exports.isMatchingExpression = exports.isSuiteEmpty = exports.isNodeContainedWithinNodeType = exports.getParentAnnotationNode = exports.getParentNodeOfType = exports.isNodeContainedWithin = exports.isClassVarAllowedForAssignmentTarget = exports.isFinalAllowedForAssignmentTarget = exports.getTypeAnnotationNode = exports.getExecutionScopeNode = exports.getTypeVarScopeNode = exports.getEvaluationScopeNode = exports.getEvaluationNodeForAssignmentExpression = exports.getEnclosingSuiteOrModule = exports.getEnclosingClassOrFunction = exports.getEnclosingLambda = exports.getEnclosingFunction = exports.getEnclosingClassOrModule = exports.getEnclosingModule = exports.getEnclosingClass = exports.getEnclosingSuite = exports.printOperator = exports.printExpression = exports.printArgument = exports.getTypeSourceId = exports.getClassFullName = exports.findNodeByOffset = exports.findNodeByPosition = exports.getNodeDepth = exports.PrintExpressionFlags = void 0;
31
+ exports.operatorSupportsChaining = exports.isUnannotatedFunction = exports.getFullStatementRange = exports.getStringValueRange = exports.getStringNodeValueRange = exports.isLastNameOfDottedName = exports.isFirstNameOfDottedName = exports.getFirstNameOfDottedName = exports.getDottedName = exports.getDottedNameWithGivenNodeAsLastName = exports.getFirstAncestorOrSelf = exports.getFirstAncestorOrSelfOfKind = exports.isLastNameOfModuleName = exports.isFromImportAlias = exports.isFromImportName = exports.isFromImportModuleName = exports.isImportAlias = exports.isImportModuleName = exports.getTypeAnnotationForParameter = exports.isFunctionSuiteEmpty = exports.getFileInfoFromNode = exports.getModuleNode = exports.isWriteAccess = void 0;
32
32
  const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
33
33
  const debug_1 = require("../common/debug");
34
34
  const positionUtils_1 = require("../common/positionUtils");
@@ -800,6 +800,55 @@ function getParentNodeOfType(node, containerType) {
800
800
  return undefined;
801
801
  }
802
802
  exports.getParentNodeOfType = getParentNodeOfType;
803
+ // If the specified node is contained within an expression that is intended to be
804
+ // interpreted as a type annotation, this function returns the annotation node.
805
+ function getParentAnnotationNode(node) {
806
+ let curNode = node;
807
+ let prevNode;
808
+ while (curNode) {
809
+ if (curNode.nodeType === 28 /* Function */) {
810
+ if (prevNode === curNode.returnTypeAnnotation) {
811
+ return prevNode;
812
+ }
813
+ return undefined;
814
+ }
815
+ if (curNode.nodeType === 41 /* Parameter */) {
816
+ if (prevNode === curNode.typeAnnotation || prevNode === curNode.typeAnnotationComment) {
817
+ return prevNode;
818
+ }
819
+ return undefined;
820
+ }
821
+ if (curNode.nodeType === 3 /* Assignment */) {
822
+ if (prevNode === curNode.typeAnnotationComment) {
823
+ return prevNode;
824
+ }
825
+ return undefined;
826
+ }
827
+ if (curNode.nodeType === 54 /* TypeAnnotation */) {
828
+ if (prevNode === curNode.typeAnnotation) {
829
+ return prevNode;
830
+ }
831
+ return undefined;
832
+ }
833
+ if (curNode.nodeType === 62 /* FunctionAnnotation */) {
834
+ if (prevNode === curNode.returnTypeAnnotation || curNode.paramTypeAnnotations.some((p) => p === prevNode)) {
835
+ (0, debug_1.assert)(!prevNode || (0, parseNodes_1.isExpressionNode)(prevNode));
836
+ return prevNode;
837
+ }
838
+ return undefined;
839
+ }
840
+ if (curNode.nodeType === 48 /* StringList */) {
841
+ if (prevNode === curNode.typeAnnotation) {
842
+ return prevNode;
843
+ }
844
+ return undefined;
845
+ }
846
+ prevNode = curNode;
847
+ curNode = curNode.parent;
848
+ }
849
+ return undefined;
850
+ }
851
+ exports.getParentAnnotationNode = getParentAnnotationNode;
803
852
  function isNodeContainedWithinNodeType(node, containerType) {
804
853
  return getParentNodeOfType(node, containerType) !== undefined;
805
854
  }
@@ -1276,13 +1325,47 @@ function getCallNodeAndActiveParameterIndex(node, insertionOffset, tokens) {
1276
1325
  }
1277
1326
  }
1278
1327
  exports.getCallNodeAndActiveParameterIndex = getCallNodeAndActiveParameterIndex;
1279
- function getTokenAt(tokens, position) {
1328
+ function getTokenIndexAtLeft(tokens, position, includeWhitespace = false, includeZeroLengthToken = false) {
1280
1329
  const index = tokens.getItemAtPosition(position);
1330
+ if (index < 0) {
1331
+ return -1;
1332
+ }
1333
+ for (let i = index; i >= 0; i--) {
1334
+ const token = tokens.getItemAt(i);
1335
+ if (!includeZeroLengthToken && token.length === 0) {
1336
+ continue;
1337
+ }
1338
+ if (!includeWhitespace && isWhitespace(token)) {
1339
+ continue;
1340
+ }
1341
+ if (textRange_1.TextRange.getEnd(token) <= position) {
1342
+ return i;
1343
+ }
1344
+ }
1345
+ return -1;
1346
+ }
1347
+ exports.getTokenIndexAtLeft = getTokenIndexAtLeft;
1348
+ function getTokenAtLeft(tokens, position, includeWhitespace = false, includeZeroLengthToken = false) {
1349
+ const index = getTokenIndexAtLeft(tokens, position, includeWhitespace, includeZeroLengthToken);
1350
+ if (index < 0) {
1351
+ return undefined;
1352
+ }
1353
+ return tokens.getItemAt(index);
1354
+ }
1355
+ exports.getTokenAtLeft = getTokenAtLeft;
1356
+ function isWhitespace(token) {
1357
+ return token.type === 2 /* NewLine */ || token.type === 3 /* Indent */ || token.type === 4 /* Dedent */;
1358
+ }
1359
+ function getTokenAtIndex(tokens, index) {
1281
1360
  if (index < 0) {
1282
1361
  return undefined;
1283
1362
  }
1284
1363
  return tokens.getItemAt(index);
1285
1364
  }
1365
+ exports.getTokenAtIndex = getTokenAtIndex;
1366
+ function getTokenAt(tokens, position) {
1367
+ return getTokenAtIndex(tokens, tokens.getItemAtPosition(position));
1368
+ }
1286
1369
  exports.getTokenAt = getTokenAt;
1287
1370
  function getTokenOverlapping(tokens, position) {
1288
1371
  const index = tokens.getItemAtPosition(position);
@@ -1746,6 +1829,26 @@ function isUnannotatedFunction(node) {
1746
1829
  node.parameters.every((param) => param.typeAnnotation === undefined && param.typeAnnotationComment === undefined));
1747
1830
  }
1748
1831
  exports.isUnannotatedFunction = isUnannotatedFunction;
1832
+ // "Chaining" is when binary operators can be chained together
1833
+ // as a shorthand. For example, "a < b < c" is shorthand for
1834
+ // "a < b and b < c".
1835
+ function operatorSupportsChaining(op) {
1836
+ switch (op) {
1837
+ case 12 /* Equals */:
1838
+ case 28 /* NotEquals */:
1839
+ case 20 /* LessThan */:
1840
+ case 21 /* LessThanOrEqual */:
1841
+ case 15 /* GreaterThan */:
1842
+ case 16 /* GreaterThanOrEqual */:
1843
+ case 39 /* Is */:
1844
+ case 40 /* IsNot */:
1845
+ case 41 /* In */:
1846
+ case 42 /* NotIn */:
1847
+ return true;
1848
+ }
1849
+ return false;
1850
+ }
1851
+ exports.operatorSupportsChaining = operatorSupportsChaining;
1749
1852
  function _getEndPositionIfMultipleStatementsAreOnSameLine(range, tokenPosition, tokenizerOutput) {
1750
1853
  const tokenIndex = tokenizerOutput.tokens.getItemAtPosition(tokenPosition);
1751
1854
  if (tokenIndex < 0) {
@@ -1759,9 +1862,14 @@ function _getEndPositionIfMultipleStatementsAreOnSameLine(range, tokenPosition,
1759
1862
  break;
1760
1863
  }
1761
1864
  }
1865
+ let foundStatementEnd = false;
1762
1866
  for (let index = tokenIndex; index < currentIndex; index++) {
1763
1867
  const token = tokenizerOutput.tokens.getItemAt(index);
1764
1868
  if (token.type === 11 /* Semicolon */ || token.type === 2 /* NewLine */) {
1869
+ foundStatementEnd = true;
1870
+ continue;
1871
+ }
1872
+ if (!foundStatementEnd) {
1765
1873
  continue;
1766
1874
  }
1767
1875
  const tokenRange = (0, positionUtils_1.convertTextRangeToRange)(token, tokenizerOutput.lines);