@zzzen/pyright-internal 1.2.0-dev.20230702 → 1.2.0-dev.20230716

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 (108) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +2 -2
  2. package/dist/analyzer/backgroundAnalysisProgram.js +3 -3
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +1 -0
  5. package/dist/analyzer/binder.js +19 -2
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/checker.js +1 -3
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/constraintSolver.js +17 -34
  10. package/dist/analyzer/constraintSolver.js.map +1 -1
  11. package/dist/analyzer/enums.js +21 -8
  12. package/dist/analyzer/enums.js.map +1 -1
  13. package/dist/analyzer/namedTuples.js +32 -1
  14. package/dist/analyzer/namedTuples.js.map +1 -1
  15. package/dist/analyzer/patternMatching.d.ts +1 -1
  16. package/dist/analyzer/patternMatching.js +79 -66
  17. package/dist/analyzer/patternMatching.js.map +1 -1
  18. package/dist/analyzer/program.d.ts +5 -2
  19. package/dist/analyzer/program.js +18 -7
  20. package/dist/analyzer/program.js.map +1 -1
  21. package/dist/analyzer/protocols.js +57 -19
  22. package/dist/analyzer/protocols.js.map +1 -1
  23. package/dist/analyzer/service.js +1 -10
  24. package/dist/analyzer/service.js.map +1 -1
  25. package/dist/analyzer/sourceFile.d.ts +4 -3
  26. package/dist/analyzer/sourceFile.js +26 -22
  27. package/dist/analyzer/sourceFile.js.map +1 -1
  28. package/dist/analyzer/typeEvaluator.js +180 -106
  29. package/dist/analyzer/typeEvaluator.js.map +1 -1
  30. package/dist/analyzer/typeEvaluatorTypes.d.ts +5 -0
  31. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  32. package/dist/analyzer/typeGuards.d.ts +2 -2
  33. package/dist/analyzer/typeGuards.js +30 -5
  34. package/dist/analyzer/typeGuards.js.map +1 -1
  35. package/dist/analyzer/typePrinter.d.ts +2 -1
  36. package/dist/analyzer/typePrinter.js +26 -5
  37. package/dist/analyzer/typePrinter.js.map +1 -1
  38. package/dist/analyzer/typeUtils.js +1 -1
  39. package/dist/analyzer/typedDicts.js +1 -3
  40. package/dist/analyzer/typedDicts.js.map +1 -1
  41. package/dist/analyzer/types.d.ts +8 -1
  42. package/dist/analyzer/types.js.map +1 -1
  43. package/dist/backgroundAnalysisBase.d.ts +5 -5
  44. package/dist/backgroundAnalysisBase.js +2 -2
  45. package/dist/backgroundAnalysisBase.js.map +1 -1
  46. package/dist/common/console.d.ts +4 -1
  47. package/dist/common/console.js +7 -0
  48. package/dist/common/console.js.map +1 -1
  49. package/dist/languageServerBase.d.ts +8 -3
  50. package/dist/languageServerBase.js +30 -25
  51. package/dist/languageServerBase.js.map +1 -1
  52. package/dist/languageService/codeActionProvider.d.ts +1 -0
  53. package/dist/languageService/codeActionProvider.js +11 -0
  54. package/dist/languageService/codeActionProvider.js.map +1 -1
  55. package/dist/languageService/completionProvider.d.ts +1 -1
  56. package/dist/languageService/completionProvider.js +3 -3
  57. package/dist/languageService/completionProvider.js.map +1 -1
  58. package/dist/localization/localize.d.ts +2 -0
  59. package/dist/localization/localize.js +12 -2
  60. package/dist/localization/localize.js.map +1 -1
  61. package/dist/localization/package.nls.cs.json +718 -0
  62. package/dist/localization/package.nls.de.json +718 -1
  63. package/dist/localization/package.nls.en-us.json +1 -0
  64. package/dist/localization/package.nls.es.json +718 -1
  65. package/dist/localization/package.nls.fr.json +718 -1
  66. package/dist/localization/package.nls.it.json +718 -0
  67. package/dist/localization/package.nls.ja.json +718 -1
  68. package/dist/localization/package.nls.ko.json +718 -0
  69. package/dist/localization/package.nls.pl.json +718 -0
  70. package/dist/localization/package.nls.pt-br.json +718 -0
  71. package/dist/localization/package.nls.qps-ploc.json +718 -0
  72. package/dist/localization/package.nls.ru.json +718 -1
  73. package/dist/localization/package.nls.tr.json +718 -0
  74. package/dist/localization/package.nls.zh-cn.json +718 -1
  75. package/dist/localization/package.nls.zh-tw.json +718 -1
  76. package/dist/parser/parser.d.ts +3 -0
  77. package/dist/parser/parser.js +2 -31
  78. package/dist/parser/parser.js.map +1 -1
  79. package/dist/parser/tokenizer.d.ts +5 -2
  80. package/dist/parser/tokenizer.js +16 -4
  81. package/dist/parser/tokenizer.js.map +1 -1
  82. package/dist/parser/tokenizerTypes.d.ts +2 -2
  83. package/dist/parser/tokenizerTypes.js.map +1 -1
  84. package/dist/pprof/profiler.d.ts +36 -0
  85. package/dist/pprof/profiler.js +64 -0
  86. package/dist/pprof/profiler.js.map +1 -0
  87. package/dist/tests/harness/fourslash/testState.d.ts +6 -4
  88. package/dist/tests/harness/fourslash/testState.js +50 -39
  89. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  90. package/dist/tests/harness/vfs/factory.d.ts +1 -0
  91. package/dist/tests/harness/vfs/factory.js +7 -1
  92. package/dist/tests/harness/vfs/factory.js.map +1 -1
  93. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  94. package/dist/tests/harness/vfs/filesystem.js +13 -8
  95. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  96. package/dist/tests/localizer.test.js +20 -0
  97. package/dist/tests/localizer.test.js.map +1 -1
  98. package/dist/tests/typeEvaluator1.test.js +4 -0
  99. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  100. package/dist/tests/typeEvaluator2.test.js +8 -0
  101. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  102. package/dist/tests/typeEvaluator4.test.js +9 -1
  103. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  104. package/dist/tests/typeEvaluator5.test.js +4 -0
  105. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  106. package/dist/workspaceFactory.js +5 -3
  107. package/dist/workspaceFactory.js.map +1 -1
  108. package/package.json +3 -2
@@ -96,10 +96,11 @@ function checkForUnusedPattern(evaluator, pattern, subjectType) {
96
96
  exports.checkForUnusedPattern = checkForUnusedPattern;
97
97
  function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTest) {
98
98
  type = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(type);
99
- let sequenceInfo = getSequencePatternInfo(evaluator, type, pattern.entries.length, pattern.starEntryIndex);
99
+ let sequenceInfo = getSequencePatternInfo(evaluator, pattern, type);
100
100
  // Further narrow based on pattern entry types.
101
101
  sequenceInfo = sequenceInfo.filter((entry) => {
102
- if (entry.definiteNoMatch) {
102
+ var _a;
103
+ if (entry.isDefiniteNoMatch) {
103
104
  if (isPositiveTest) {
104
105
  return false;
105
106
  }
@@ -127,8 +128,7 @@ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTe
127
128
  let negativeEntriesNarrowed = 0;
128
129
  pattern.entries.forEach((sequenceEntry, index) => {
129
130
  const entryType = getTypeOfPatternSequenceEntry(evaluator, pattern, entry, index, pattern.entries.length, pattern.starEntryIndex,
130
- /* unpackStarEntry */ true,
131
- /* isSubjectObject */ false);
131
+ /* unpackStarEntry */ true);
132
132
  const narrowedEntryType = narrowTypeBasedOnPattern(evaluator, entryType, sequenceEntry, isPositiveTest);
133
133
  if (isPositiveTest) {
134
134
  if (index === pattern.starEntryIndex) {
@@ -151,6 +151,9 @@ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTe
151
151
  }
152
152
  }
153
153
  else {
154
+ if (entry.isPotentialNoMatch) {
155
+ isDefiniteMatch = false;
156
+ }
154
157
  if (!(0, types_1.isNever)(narrowedEntryType)) {
155
158
  isDefiniteMatch = false;
156
159
  // Record the number of entries that were narrowed in the negative
@@ -196,12 +199,15 @@ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTe
196
199
  })));
197
200
  }
198
201
  }
199
- // If this is an object, we can narrow it to a specific Sequence type.
200
- if (entry.isObject) {
202
+ // If this is a supertype of Sequence, we can narrow it to a Sequence type.
203
+ if (entry.isPotentialNoMatch) {
201
204
  const sequenceType = evaluator.getTypingType(pattern, 'Sequence');
202
205
  if (sequenceType && (0, types_1.isInstantiableClass)(sequenceType)) {
203
- entry.subtype = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(sequenceType, [evaluator.stripLiteralValue((0, types_1.combineTypes)(narrowedEntryTypes))],
204
- /* isTypeArgumentExplicit */ true));
206
+ let typeArgType = evaluator.stripLiteralValue((0, types_1.combineTypes)(narrowedEntryTypes));
207
+ // If the type is a union that contains Any or Unknown, remove the other types
208
+ // before wrapping it in a Sequence.
209
+ typeArgType = (_a = (0, typeUtils_1.containsAnyOrUnknown)(typeArgType, /* recurse */ false)) !== null && _a !== void 0 ? _a : typeArgType;
210
+ entry.subtype = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(sequenceType, [typeArgType], /* isTypeArgumentExplicit */ true));
205
211
  }
206
212
  }
207
213
  }
@@ -700,33 +706,16 @@ function getMappingPatternInfo(evaluator, type) {
700
706
  // Returns information about all subtypes that match the definition of a "sequence" as
701
707
  // specified in PEP 634. For types that are not sequences or sequences that are not of
702
708
  // sufficient length, it sets definiteNoMatch to true.
703
- function getSequencePatternInfo(evaluator, type, entryCount, starEntryIndex) {
709
+ function getSequencePatternInfo(evaluator, pattern, type) {
710
+ const entryCount = pattern.entries.length;
711
+ const starEntryIndex = pattern.starEntryIndex;
704
712
  const sequenceInfo = [];
705
713
  const minEntryCount = starEntryIndex === undefined ? entryCount : entryCount - 1;
706
714
  (0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
707
715
  const concreteSubtype = evaluator.makeTopLevelTypeVarsConcrete(subtype);
708
716
  let mroClassToSpecialize;
709
717
  let pushedEntry = false;
710
- if ((0, types_1.isAnyOrUnknown)(concreteSubtype)) {
711
- sequenceInfo.push({
712
- subtype,
713
- entryTypes: [concreteSubtype],
714
- isIndeterminateLength: true,
715
- definiteNoMatch: false,
716
- });
717
- return;
718
- }
719
718
  if ((0, types_1.isClassInstance)(concreteSubtype)) {
720
- if (types_1.ClassType.isBuiltIn(concreteSubtype, 'object')) {
721
- sequenceInfo.push({
722
- subtype,
723
- entryTypes: [(0, typeUtils_1.convertToInstance)(concreteSubtype)],
724
- isIndeterminateLength: true,
725
- isObject: true,
726
- definiteNoMatch: false,
727
- });
728
- return;
729
- }
730
719
  for (const mroClass of concreteSubtype.details.mro) {
731
720
  if (!(0, types_1.isInstantiableClass)(mroClass)) {
732
721
  break;
@@ -735,7 +724,7 @@ function getSequencePatternInfo(evaluator, type, entryCount, starEntryIndex) {
735
724
  if (types_1.ClassType.isBuiltIn(mroClass, 'str') ||
736
725
  types_1.ClassType.isBuiltIn(mroClass, 'bytes') ||
737
726
  types_1.ClassType.isBuiltIn(mroClass, 'bytearray')) {
738
- break;
727
+ return;
739
728
  }
740
729
  if (types_1.ClassType.isBuiltIn(mroClass, 'Sequence')) {
741
730
  mroClassToSpecialize = mroClass;
@@ -756,7 +745,7 @@ function getSequencePatternInfo(evaluator, type, entryCount, starEntryIndex) {
756
745
  entryTypes: [(0, types_1.combineTypes)(specializedSequence.tupleTypeArguments.map((t) => t.type))],
757
746
  isIndeterminateLength: true,
758
747
  isTuple: true,
759
- definiteNoMatch: false,
748
+ isDefiniteNoMatch: false,
760
749
  });
761
750
  pushedEntry = true;
762
751
  }
@@ -769,7 +758,7 @@ function getSequencePatternInfo(evaluator, type, entryCount, starEntryIndex) {
769
758
  entryTypes: specializedSequence.tupleTypeArguments.map((t) => t.type),
770
759
  isIndeterminateLength: false,
771
760
  isTuple: true,
772
- definiteNoMatch: false,
761
+ isDefiniteNoMatch: false,
773
762
  });
774
763
  pushedEntry = true;
775
764
  }
@@ -785,36 +774,56 @@ function getSequencePatternInfo(evaluator, type, entryCount, starEntryIndex) {
785
774
  : types_1.UnknownType.create(),
786
775
  ],
787
776
  isIndeterminateLength: true,
788
- definiteNoMatch: false,
777
+ isDefiniteNoMatch: false,
789
778
  });
790
779
  pushedEntry = true;
791
780
  }
792
781
  }
793
782
  }
794
- // Push an entry that indicates that this is definitely not a match.
795
783
  if (!pushedEntry) {
784
+ // If it wasn't a subtype of Sequence, see if it's a supertype.
785
+ const sequenceType = evaluator.getTypingType(pattern, 'Sequence');
786
+ if (sequenceType && (0, types_1.isInstantiableClass)(sequenceType)) {
787
+ const sequenceTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(sequenceType));
788
+ if ((0, constraintSolver_1.populateTypeVarContextBasedOnExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(sequenceType), subtype, sequenceTypeVarContext, (0, parseTreeUtils_1.getTypeVarScopesForNode)(pattern), pattern.start)) {
789
+ const specializedSequence = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstantiable(sequenceType), sequenceTypeVarContext);
790
+ if (specializedSequence.typeArguments && specializedSequence.typeArguments.length > 0) {
791
+ sequenceInfo.push({
792
+ subtype,
793
+ entryTypes: [specializedSequence.typeArguments[0]],
794
+ isIndeterminateLength: true,
795
+ isDefiniteNoMatch: false,
796
+ isPotentialNoMatch: true,
797
+ });
798
+ return;
799
+ }
800
+ }
801
+ if (evaluator.assignType(subtype, types_1.ClassType.cloneForSpecialization(types_1.ClassType.cloneAsInstance(sequenceType), [types_1.UnknownType.create()],
802
+ /* isTypeArgumentExplicit */ true))) {
803
+ sequenceInfo.push({
804
+ subtype,
805
+ entryTypes: [types_1.UnknownType.create()],
806
+ isIndeterminateLength: true,
807
+ isDefiniteNoMatch: false,
808
+ isPotentialNoMatch: true,
809
+ });
810
+ return;
811
+ }
812
+ }
813
+ // Push an entry that indicates that this is definitely not a match.
796
814
  sequenceInfo.push({
797
815
  subtype,
798
816
  entryTypes: [],
799
817
  isIndeterminateLength: true,
800
- definiteNoMatch: true,
818
+ isDefiniteNoMatch: true,
801
819
  });
802
820
  }
803
821
  });
804
822
  return sequenceInfo;
805
823
  }
806
- function getTypeOfPatternSequenceEntry(evaluator, node, sequenceInfo, entryIndex, entryCount, starEntryIndex, unpackStarEntry, isSubjectObject) {
824
+ function getTypeOfPatternSequenceEntry(evaluator, node, sequenceInfo, entryIndex, entryCount, starEntryIndex, unpackStarEntry) {
807
825
  if (sequenceInfo.isIndeterminateLength) {
808
826
  let entryType = sequenceInfo.entryTypes[0];
809
- // If the subject is typed as an "object", then the star entry
810
- // is simply a list[object]. Without this special case, the list
811
- // will be typed based on the union of all elements in the sequence.
812
- if (isSubjectObject) {
813
- const objectType = evaluator.getBuiltInObject(node, 'object');
814
- if (objectType && (0, types_1.isClassInstance)(objectType)) {
815
- entryType = objectType;
816
- }
817
- }
818
827
  if (!unpackStarEntry && entryIndex === starEntryIndex && !(0, types_1.isNever)(entryType)) {
819
828
  entryType = wrapTypeInList(evaluator, node, entryType);
820
829
  }
@@ -842,29 +851,31 @@ function getTypeOfPatternSequenceEntry(evaluator, node, sequenceInfo, entryIndex
842
851
  return sequenceInfo.entryTypes[itemIndex];
843
852
  }
844
853
  // Recursively assigns the specified type to the pattern and any capture
845
- // nodes within it
846
- function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubjectObject, pattern) {
854
+ // nodes within it. It returns the narrowed type, as dictated by the pattern.
855
+ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern) {
847
856
  // Further narrow the type based on this pattern.
848
- type = narrowTypeBasedOnPattern(evaluator, type, pattern, /* positiveTest */ true);
857
+ const narrowedType = narrowTypeBasedOnPattern(evaluator, type, pattern, /* positiveTest */ true);
849
858
  switch (pattern.nodeType) {
850
859
  case 65 /* PatternSequence */: {
851
- const sequenceInfo = getSequencePatternInfo(evaluator, type, pattern.entries.length, pattern.starEntryIndex).filter((seqInfo) => !seqInfo.definiteNoMatch);
860
+ const sequenceInfo = getSequencePatternInfo(evaluator, pattern, narrowedType).filter((seqInfo) => !seqInfo.isDefiniteNoMatch);
852
861
  pattern.entries.forEach((entry, index) => {
853
862
  const entryType = (0, types_1.combineTypes)(sequenceInfo.map((info) => getTypeOfPatternSequenceEntry(evaluator, pattern, info, index, pattern.entries.length, pattern.starEntryIndex,
854
- /* unpackStarEntry */ false, isSubjectObject)));
855
- assignTypeToPatternTargets(evaluator, entryType, isTypeIncomplete, /* isSubjectObject */ false, entry);
863
+ /* unpackStarEntry */ false)));
864
+ assignTypeToPatternTargets(evaluator, entryType, isTypeIncomplete, entry);
856
865
  });
857
866
  break;
858
867
  }
859
868
  case 66 /* PatternAs */: {
860
869
  if (pattern.target) {
861
- evaluator.assignTypeToExpression(pattern.target, type, isTypeIncomplete, pattern.target);
870
+ evaluator.assignTypeToExpression(pattern.target, narrowedType, isTypeIncomplete, pattern.target);
862
871
  }
872
+ let runningNarrowedType = narrowedType;
863
873
  pattern.orPatterns.forEach((orPattern) => {
864
- assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubjectObject, orPattern);
874
+ assignTypeToPatternTargets(evaluator, runningNarrowedType, isTypeIncomplete, orPattern);
865
875
  // OR patterns are evaluated left to right, so we can narrow
866
876
  // the type as we go.
867
- type = narrowTypeBasedOnPattern(evaluator, type, orPattern, /* positiveTest */ false);
877
+ runningNarrowedType = narrowTypeBasedOnPattern(evaluator, runningNarrowedType, orPattern,
878
+ /* positiveTest */ false);
868
879
  });
869
880
  break;
870
881
  }
@@ -872,26 +883,26 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubject
872
883
  if (pattern.isWildcard) {
873
884
  if (!isTypeIncomplete) {
874
885
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(pattern);
875
- if ((0, types_1.isUnknown)(type)) {
886
+ if ((0, types_1.isUnknown)(narrowedType)) {
876
887
  evaluator.addDiagnostic(fileInfo.diagnosticRuleSet.reportUnknownVariableType, diagnosticRules_1.DiagnosticRule.reportUnknownVariableType, localize_1.Localizer.Diagnostic.wildcardPatternTypeUnknown(), pattern.target);
877
888
  }
878
- else if ((0, typeUtils_1.isPartlyUnknown)(type)) {
889
+ else if ((0, typeUtils_1.isPartlyUnknown)(narrowedType)) {
879
890
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
880
891
  diagAddendum.addMessage(localize_1.Localizer.DiagnosticAddendum.typeOfSymbol().format({
881
892
  name: '_',
882
- type: evaluator.printType(type, { expandTypeAlias: true }),
893
+ type: evaluator.printType(narrowedType, { expandTypeAlias: true }),
883
894
  }));
884
895
  evaluator.addDiagnostic(fileInfo.diagnosticRuleSet.reportUnknownVariableType, diagnosticRules_1.DiagnosticRule.reportUnknownVariableType, localize_1.Localizer.Diagnostic.wildcardPatternTypePartiallyUnknown() + diagAddendum.getString(), pattern.target);
885
896
  }
886
897
  }
887
898
  }
888
899
  else {
889
- evaluator.assignTypeToExpression(pattern.target, type, isTypeIncomplete, pattern.target);
900
+ evaluator.assignTypeToExpression(pattern.target, narrowedType, isTypeIncomplete, pattern.target);
890
901
  }
891
902
  break;
892
903
  }
893
904
  case 70 /* PatternMapping */: {
894
- const mappingInfo = getMappingPatternInfo(evaluator, type);
905
+ const mappingInfo = getMappingPatternInfo(evaluator, narrowedType);
895
906
  pattern.entries.forEach((mappingEntry) => {
896
907
  const keyTypes = [];
897
908
  const valueTypes = [];
@@ -936,10 +947,8 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubject
936
947
  const keyType = (0, types_1.combineTypes)(keyTypes);
937
948
  const valueType = (0, types_1.combineTypes)(valueTypes);
938
949
  if (mappingEntry.nodeType === 71 /* PatternMappingKeyEntry */) {
939
- assignTypeToPatternTargets(evaluator, keyType, isTypeIncomplete,
940
- /* isSubjectObject */ false, mappingEntry.keyPattern);
941
- assignTypeToPatternTargets(evaluator, valueType, isTypeIncomplete,
942
- /* isSubjectObject */ false, mappingEntry.valuePattern);
950
+ assignTypeToPatternTargets(evaluator, keyType, isTypeIncomplete, mappingEntry.keyPattern);
951
+ assignTypeToPatternTargets(evaluator, valueType, isTypeIncomplete, mappingEntry.valuePattern);
943
952
  }
944
953
  else if (mappingEntry.nodeType === 72 /* PatternMappingExpandEntry */) {
945
954
  const dictClass = evaluator.getBuiltInType(pattern, 'dict');
@@ -955,9 +964,9 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubject
955
964
  }
956
965
  case 68 /* PatternClass */: {
957
966
  const argTypes = pattern.arguments.map((arg) => []);
958
- evaluator.mapSubtypesExpandTypeVars(type, /* conditionFilter */ undefined, (expandedSubtype) => {
967
+ evaluator.mapSubtypesExpandTypeVars(narrowedType, /* conditionFilter */ undefined, (expandedSubtype) => {
959
968
  if ((0, types_1.isClassInstance)(expandedSubtype)) {
960
- (0, typeUtils_1.doForEachSubtype)(type, (subjectSubtype) => {
969
+ (0, typeUtils_1.doForEachSubtype)(narrowedType, (subjectSubtype) => {
961
970
  const concreteSubtype = evaluator.makeTopLevelTypeVarsConcrete(subjectSubtype);
962
971
  if ((0, types_1.isAnyOrUnknown)(concreteSubtype)) {
963
972
  pattern.arguments.forEach((arg, index) => {
@@ -987,8 +996,7 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubject
987
996
  return undefined;
988
997
  });
989
998
  pattern.arguments.forEach((arg, index) => {
990
- assignTypeToPatternTargets(evaluator, (0, types_1.combineTypes)(argTypes[index]), isTypeIncomplete,
991
- /* isSubjectObject */ false, arg.pattern);
999
+ assignTypeToPatternTargets(evaluator, (0, types_1.combineTypes)(argTypes[index]), isTypeIncomplete, arg.pattern);
992
1000
  });
993
1001
  break;
994
1002
  }
@@ -999,14 +1007,19 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, isSubject
999
1007
  break;
1000
1008
  }
1001
1009
  }
1010
+ return narrowedType;
1002
1011
  }
1003
1012
  exports.assignTypeToPatternTargets = assignTypeToPatternTargets;
1004
1013
  function wrapTypeInList(evaluator, node, type) {
1014
+ var _a;
1005
1015
  if ((0, types_1.isNever)(type)) {
1006
1016
  return type;
1007
1017
  }
1008
1018
  const listObjectType = (0, typeUtils_1.convertToInstance)(evaluator.getBuiltInObject(node, 'list'));
1009
1019
  if (listObjectType && (0, types_1.isClassInstance)(listObjectType)) {
1020
+ // If the type is a union that contains an Any or Unknown, eliminate the other
1021
+ // types before wrapping it in a list.
1022
+ type = (_a = (0, typeUtils_1.containsAnyOrUnknown)(type, /* recurse */ false)) !== null && _a !== void 0 ? _a : type;
1010
1023
  return types_1.ClassType.cloneForSpecialization(listObjectType, [type], /* isTypeArgumentExplicit */ true);
1011
1024
  }
1012
1025
  return types_1.UnknownType.create();
@@ -1 +1 @@
1
- {"version":3,"file":"patternMatching.js","sourceRoot":"","sources":["../../../src/analyzer/patternMatching.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,+DAAwD;AACxD,2CAAyC;AACzC,qDAA0D;AAC1D,+DAA2D;AAC3D,uDAAqD;AAerD,yDAAiD;AAEjD,yDAA+E;AAC/E,qDAAwD;AACxD,6CAA2D;AAE3D,6CAIsB;AACtB,mCAkBiB;AACjB,2CAkBqB;AACrB,qDAAkD;AAElD,0EAA0E;AAC1E,yCAAyC;AACzC,MAAM,wBAAwB,GAAG;IAC7B,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,gBAAgB;CACnB,CAAC;AAsBF,SAAgB,wBAAwB,CACpC,SAAwB,EACxB,IAAU,EACV,OAAwB,EACxB,cAAuB;IAEvB,QAAQ,OAAO,CAAC,QAAQ,EAAE;QACtB,6BAAkC,CAAC,CAAC;YAChC,OAAO,gCAAgC,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SACrF;QAED,4BAAiC,CAAC,CAAC;YAC/B,OAAO,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SACpF;QAED,0BAA+B,CAAC,CAAC;YAC7B,OAAO,6BAA6B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SAClF;QAED,uBAA4B,CAAC,CAAC;YAC1B,OAAO,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SAC/E;QAED,4BAAiC,CAAC,CAAC;YAC/B,OAAO,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SACpF;QAED,0BAA+B,CAAC,CAAC;YAC7B,OAAO,6BAA6B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SAClF;QAED,4BAAiC,CAAC,CAAC;YAC/B,0EAA0E;YAC1E,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAS,CAAC,WAAW,EAAE,CAAC;SAC1D;QAED,kBAAwB,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;KACJ;AACL,CAAC;AAxCD,4DAwCC;AAED,8DAA8D;AAC9D,6CAA6C;AAC7C,SAAgB,qBAAqB,CAAC,SAAwB,EAAE,OAAwB,EAAE,WAAiB;IACvG,IAAI,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE;QACtB,wBAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC7D;SAAM,IAAI,OAAO,CAAC,QAAQ,uBAA4B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACtF,4CAA4C;QAC5C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrC,MAAM,gBAAgB,GAAG,wBAAwB,CAC7C,SAAS,EACT,WAAW,EACX,SAAS;YACT,oBAAoB,CAAC,IAAI,CAC5B,CAAC;YAEF,IAAI,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE;gBAC3B,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aAC/D;YAED,WAAW,GAAG,wBAAwB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;KACN;SAAM;QACH,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE9G,IAAI,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE;YAC3B,wBAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SAC7D;KACJ;AACL,CAAC;AA1BD,sDA0BC;AAED,SAAS,gCAAgC,CACrC,SAAwB,EACxB,IAAU,EACV,OAA4B,EAC5B,cAAuB;IAEvB,IAAI,GAAG,IAAA,+CAAmC,EAAC,IAAI,CAAC,CAAC;IACjD,IAAI,YAAY,GAAG,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3G,+CAA+C;IAC/C,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,cAAc,EAAE;gBAChB,OAAO,KAAK,CAAC;aAChB;iBAAM;gBACH,OAAO,IAAI,CAAC;aACf;SACJ;QAED,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,MAAM,kBAAkB,GAAW,EAAE,CAAC;QACtC,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QAEnC,qEAAqE;QACrE,yCAAyC;QACzC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,qBAAqB,EAAE;YAChD,cAAc,GAAG,KAAK,CAAC;SAC1B;QAED,6EAA6E;QAC7E,yEAAyE;QACzE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,qBAAqB,EAAE;YAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,EAAE;gBAC9D,eAAe,GAAG,KAAK,CAAC;aAC3B;SACJ;QAED,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,6BAA6B,CAC3C,SAAS,EACT,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,cAAc;YACtB,qBAAqB,CAAC,IAAI;YAC1B,qBAAqB,CAAC,KAAK,CAC9B,CAAC;YAEF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;YAExG,IAAI,cAAc,EAAE;gBAChB,IAAI,KAAK,KAAK,OAAO,CAAC,cAAc,EAAE;oBAClC,IACI,IAAA,uBAAe,EAAC,iBAAiB,CAAC;wBAClC,iBAAiB,CAAC,kBAAkB;wBACpC,CAAC,IAAA,iCAAqB,EAAC,iBAAiB,CAAC;wBACzC,iBAAiB,CAAC,kBAAkB,EACtC;wBACE,IAAA,6BAAW,EACP,kBAAkB,EAClB,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC1D,CAAC;qBACL;yBAAM;wBACH,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAC3C,cAAc,GAAG,KAAK,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAE3C,IAAI,IAAA,eAAO,EAAC,iBAAiB,CAAC,EAAE;wBAC5B,gBAAgB,GAAG,KAAK,CAAC;qBAC5B;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAA,eAAO,EAAC,iBAAiB,CAAC,EAAE;oBAC7B,eAAe,GAAG,KAAK,CAAC;oBAExB,kEAAkE;oBAClE,mEAAmE;oBACnE,eAAe;oBACf,uBAAuB,EAAE,CAAC;oBAC1B,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iBAC9C;qBAAM;oBACH,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACtC;gBAED,IAAI,KAAK,KAAK,OAAO,CAAC,cAAc,EAAE;oBAClC,cAAc,GAAG,KAAK,CAAC;iBAC1B;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE;YACjB,kEAAkE;YAClE,mCAAmC;YACnC,IAAI,eAAe,EAAE;gBACjB,OAAO,KAAK,CAAC;aAChB;YAED,yBAAyB;YACzB,IAAI,cAAc,IAAI,uBAAuB,KAAK,CAAC,EAAE;gBACjD,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClE,IAAI,cAAc,IAAI,IAAA,2BAAmB,EAAC,cAAc,CAAC,EAAE;oBACvD,KAAK,CAAC,OAAO,GAAG,iBAAS,CAAC,eAAe,CACrC,IAAA,gCAAoB,EAChB,cAAc,EACd,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;oBAC3C,CAAC,CAAC,CACL,CACJ,CAAC;iBACL;aACJ;YAED,OAAO,IAAI,CAAC;SACf;QAED,IAAI,gBAAgB,EAAE;YAClB,iEAAiE;YACjE,mEAAmE;YACnE,6BAA6B;YAC7B,IAAI,cAAc,EAAE;gBAChB,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClE,IAAI,cAAc,IAAI,IAAA,2BAAmB,EAAC,cAAc,CAAC,EAAE;oBACvD,KAAK,CAAC,OAAO,GAAG,iBAAS,CAAC,eAAe,CACrC,IAAA,gCAAoB,EAChB,cAAc,EACd,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;oBAC3C,CAAC,CAAC,CACL,CACJ,CAAC;iBACL;aACJ;YAED,sEAAsE;YACtE,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAChB,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAClE,IAAI,YAAY,IAAI,IAAA,2BAAmB,EAAC,YAAY,CAAC,EAAE;oBACnD,KAAK,CAAC,OAAO,GAAG,iBAAS,CAAC,eAAe,CACrC,iBAAS,CAAC,sBAAsB,CAC5B,YAAY,EACZ,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAA,oBAAY,EAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC/D,4BAA4B,CAAC,IAAI,CACpC,CACJ,CAAC;iBACL;aACJ;SACJ;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAY,EAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,0BAA0B,CAC/B,SAAwB,EACxB,IAAU,EACV,OAAsB,EACtB,cAAuB;IAEvB,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACtC,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;KACxB;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACxD,MAAM,eAAe,GAAG,wBAAwB,CAC5C,SAAS,EACT,aAAa,EACb,UAAU;QACV,oBAAoB,CAAC,IAAI,CAC5B,CAAC;QACF,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3G,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,oBAAY,EAAC,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,+BAA+B,CACpC,SAAwB,EACxB,IAAU,EACV,OAA2B,EAC3B,cAAuB;IAEvB,IAAI,GAAG,IAAA,+CAAmC,EAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC,cAAc,EAAE;QACjB,qEAAqE;QACrE,mEAAmE;QACnE,qDAAqD;QACrD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,oCAAyC,EAAE;YACtG,OAAO,IAAI,CAAC;SACf;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACrD,IACI,UAAU,CAAC,QAAQ,4BAAiC;YACpD,YAAY,CAAC,QAAQ,uBAA4B;YACjD,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,4BAAiC,CAAC,EACpG;YACE,OAAO,IAAI,CAAC;SACf;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAE1E,sCAAsC;QACtC,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;YACzG,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAsB,CAAC;QAEhD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAE,SAAgC,CAAC,UAAU,CAAC,CAAC,IAAI,CAClG,CAAC;QAEF,OAAO,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;gBACjE,MAAM,gBAAgB,GAAG,IAAA,wCAA2B,EAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACnG,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE9C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBACzF,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;oBAEzC,6DAA6D;oBAC7D,8DAA8D;oBAC9D,IACI,UAAU,CAAC,IAAI,CACX,CAAC,SAAS,EAAE,EAAE,CACV,IAAA,uBAAe,EAAC,SAAS,CAAC;wBAC1B,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAC;wBACxD,SAAS,CAAC,YAAY,KAAK,eAAe,CAAC,YAAY,CAC9D,EACH;wBACE,OAAO,SAAS,CAAC;qBACpB;iBACJ;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;IAED,IAAI,WAAW,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,EAAE;QACpD,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACrC,IAAI,kBAAkB,CAAC,SAAS,EAAE;gBAC9B,IAAI,YAAY,CAAC,QAAQ,oCAAyC,EAAE;oBAChE,MAAM,eAAe,GAAG,wBAAwB,CAC5C,SAAS,EACT,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAC1C,YAAY,CAAC,UAAU,EACvB,cAAc,CACjB,CAAC;oBAEF,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE;wBAC1B,gBAAgB,GAAG,KAAK,CAAC;qBAC5B;oBAED,MAAM,SAAS,GAAG,IAAA,uBAAW,EAAC,eAAe,EAAE,CAAC,UAAU,EAAE,EAAE;;wBAC1D,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,EAAE;4BAC5B,OAAO,UAAU,CAAC;yBACrB;wBAED,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;4BACvE,IAAI,CAAC,IAAA,yBAAa,EAAC,UAAU,CAAC,EAAE;gCAC5B,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;6BAC/B;4BAED,MAAM,SAAS,GAAG,IAAA,wCAA2B,EAAC,SAAS,EAAE,kBAAkB,CAAC,SAAU,CAAC,CAAC;4BACxF,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,YAAsB,CAAC,CAAC;4BACpE,IAAI,UAAU,EAAE;gCACZ,MAAM,iBAAiB,GAAG,wBAAwB,CAC9C,SAAS,EACT,UAAU,CAAC,SAAS,EACpB,YAAY,CAAC,YAAY;gCACzB,oBAAoB,CAAC,IAAI,CAC5B,CAAC;gCACF,IAAI,CAAC,IAAA,eAAO,EAAC,iBAAiB,CAAC,EAAE;oCAC7B,sEAAsE;oCACtE,6DAA6D;oCAC7D,IACI,CAAC,UAAU,CAAC,UAAU;wCACtB,CAAC,UAAU,CAAC,UAAU;wCACtB,IAAA,kBAAU,EAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,SAAU,CAAC,EACvE;wCACE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACjC,MAAA,kBAAkB,CAAC,SAAU,CAAC,wBAAwB,mCAAI,EAAE,CAC/D,CAAC;wCACF,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAsB,EAAE;4CACzD,SAAS,EAAE,UAAU,CAAC,SAAS;4CAC/B,UAAU,EAAE,UAAU,CAAC,UAAU;4CACjC,UAAU,EAAE,KAAK;4CACjB,UAAU,EAAE,IAAI;yCACnB,CAAC,CAAC;wCAEH,mDAAmD;wCACnD,kBAAkB,CAAC,OAAO,GAAG,iBAAS,CAAC,eAAe,CAClD,iBAAS,CAAC,gCAAgC,CACtC,iBAAS,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,SAAU,CAAC,EAC5D,qBAAqB,CACxB,CACJ,CAAC;wCACF,kBAAkB,CAAC,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC;qCAC7D;oCAED,OAAO,iBAAiB,CAAC;iCAC5B;6BACJ;yBACJ;wBAED,OAAO,SAAS,CAAC;oBACrB,CAAC,CAAC,CAAC;oBAEH,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE;wBACpB,gBAAgB,GAAG,KAAK,CAAC;qBAC5B;iBACJ;aACJ;iBAAM,IAAI,kBAAkB,CAAC,YAAY,EAAE;gBACxC,IAAI,YAAY,CAAC,QAAQ,oCAAyC,EAAE;oBAChE,MAAM,eAAe,GAAG,wBAAwB,CAC5C,SAAS,EACT,kBAAkB,CAAC,YAAY,CAAC,GAAG,EACnC,YAAY,CAAC,UAAU,EACvB,cAAc,CACjB,CAAC;oBACF,MAAM,iBAAiB,GAAG,wBAAwB,CAC9C,SAAS,EACT,kBAAkB,CAAC,YAAY,CAAC,KAAK,EACrC,YAAY,CAAC,YAAY,EACzB,cAAc,CACjB,CAAC;oBACF,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,IAAI,IAAA,eAAO,EAAC,iBAAiB,CAAC,EAAE;wBACxD,gBAAgB,GAAG,KAAK,CAAC;qBAC5B;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAY,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,uEAAuE;AACvE,kDAAkD;AAClD,SAAS,0BAA0B,CAAC,SAAwB,EAAE,IAAe;IACzE,MAAM,mBAAmB,GAAG,IAAA,6BAAiB,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACtE,IAAI,mBAAmB,EAAE;QACrB,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACrE,IACI,IAAA,uBAAe,EAAC,aAAa,CAAC;YAC9B,IAAA,wBAAY,EAAC,aAAa,CAAC;YAC3B,CAAC,IAAA,iCAAqB,EAAC,aAAa,CAAC;YACrC,aAAa,CAAC,kBAAkB,EAClC;YACE,MAAM,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC;YAEnD,oCAAoC;YACpC,IACI,SAAS,CAAC,KAAK,CACX,CAAC,GAAG,EAAE,EAAE,CACJ,IAAA,uBAAe,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAA,yBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,CACnG,EACH;gBACE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,CAAC,IAAkB,CAAC,YAAsB,CAAC,CAAC;aACjF;SACJ;KACJ;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,+BAA+B,CACpC,SAAwB,EACxB,IAAU,EACV,OAA2B,EAC3B,cAAuB;IAEvB,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAE3E,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACjC,IACI,IAAA,uBAAe,EAAC,WAAW,CAAC;gBAC5B,IAAA,yBAAa,EAAC,WAAW,CAAC;gBAC1B,IAAA,uBAAe,EAAC,OAAO,CAAC;gBACxB,IAAA,yBAAa,EAAC,OAAO,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAC5C;gBACE,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,IAAI,IAAA,sBAAc,EAAC,WAAW,CAAC,EAAE;gBACxD,OAAO,SAAS,CAAC;aACpB;YAED,6DAA6D;YAC7D,IACI,IAAA,uBAAe,EAAC,OAAO,CAAC;gBACxB,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBACpC,OAAO,CAAC,YAAY,KAAK,SAAS;gBAClC,IAAA,uBAAe,EAAC,WAAW,CAAC;gBAC5B,iBAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;gBACxC,WAAW,CAAC,YAAY,KAAK,SAAS,EACxC;gBACE,OAAO,iBAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAE,WAAW,CAAC,YAAwB,CAAC,CAAC;aAC1F;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;IAED,OAAO,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;YAC5C,OAAO,WAAW,CAAC;SACtB;QAED,wEAAwE;QACxE,gEAAgE;QAChE,IACI,IAAA,uBAAe,EAAC,WAAW,CAAC;YAC5B,IAAA,yBAAa,EAAC,WAAW,CAAC;YAC1B,IAAA,uBAAe,EAAC,OAAO,CAAC;YACxB,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,EACzB;YACE,IAAI,SAAS,CAAC,UAAU,CAAC,iBAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE;gBAC/F,OAAO,OAAO,CAAC;aAClB;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,6BAA6B,CAClC,SAAwB,EACxB,IAAU,EACV,OAAyB,EACzB,cAAuB;IAEvB,IAAI,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,0BAAiC,CAAC,IAAI,CAAC;IAErG,oEAAoE;IACpE,6CAA6C;IAC7C,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC9C,QAAQ,GAAG,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;KAC5C;IAED,IAAI,CAAC,cAAc,EAAE;QACjB,8FAA8F;QAC9F,IAAI,CAAC,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QAED,IAAI,SAAS,GAAG,QAAQ,CAAC;QAEzB,IAAI,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,SAAS,GAAG,iBAAS,CAAC,sBAAsB,CACxC,SAAS;YACT,mBAAmB,CAAC,SAAS;YAC7B,4BAA4B,CAAC,KAAK,CACrC,CAAC;SACL;QAED,MAAM,aAAa,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC,yBAAyB,CACtC,IAAI;QACJ,qBAAqB,CAAC,SAAS,EAC/B,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,EAAE;YACjD,IAAI,CAAC,IAAA,sBAAc,EAAC,sBAAsB,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,sBAAsB,CAAC,EAAE;gBACrF,OAAO,wBAAwB,CAAC;aACnC;YAED,IACI,IAAA,sBAAc,EAAC,sBAAsB,CAAC;gBACtC,IAAA,2BAAmB,EAAC,SAAS,CAAC;gBAC9B,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAC5C;gBACE,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,sBAAsB,CAAC,EAAE;gBAC9D,OAAO,sBAAsB,CAAC;aACjC;YAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IACI,IAAA,eAAO,EAAC,aAAa,CAAC;oBACtB,IAAA,eAAO,EAAC,sBAAsB,CAAC;oBAC/B,iBAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,sBAAsB,CAAC,EACrE;oBACE,yDAAyD;oBACzD,0BAA0B;oBAC1B,OAAO,SAAS,CAAC;iBACpB;gBAED,OAAO,sBAAsB,CAAC;aACjC;YAED,kEAAkE;YAClE,iEAAiE;YACjE,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,EAAE,aAAa,CAAC,EAAE;gBAC9D,IAAI,IAAA,eAAO,EAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE;oBAC/E,OAAO,sBAAsB,CAAC;iBACjC;aACJ;YAED,yEAAyE;YACzE,wEAAwE;YACxE,IAAI,kBAAkB,GAAa,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,IAAA,eAAO,EAAC,sBAAsB,CAAC,EAAE;oBACjC,kBAAkB,GAAG,0BAA0B,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;iBACtF;aACJ;YAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC3D,MAAM,eAAe,GAAG,gCAAgC,CACpD,SAAS,EACT,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EACxB,KAAK,EACL,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,CACjB,CAAC;gBAEF,IAAI,CAAC,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE;oBAC3B,OAAO,wBAAwB,CAAC;iBACnC;aACJ;YAED,+DAA+D;YAC/D,OAAO,SAAS,CAAC;QACrB,CAAC,CACJ,CAAC;KACL;IAED,IAAI,CAAC,gBAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,QAAQ,CAAC,EAAE;QAC1D,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAC9D,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC3F,OAAO,CAAC,SAAS,CACpB,CAAC;QACF,OAAO,iBAAS,CAAC,WAAW,EAAE,CAAC;KAClC;IAED,OAAO,SAAS,CAAC,yBAAyB,CACtC,QAAQ;IACR,qBAAqB,CAAC,SAAS,EAC/B,CAAC,eAAe,EAAE,iBAAiB,EAAE,EAAE;QACnC,IAAI,IAAA,sBAAc,EAAC,eAAe,CAAC,EAAE;YACjC,OAAO,iBAAiB,CAAC;SAC5B;QAED,IAAI,IAAA,2BAAmB,EAAC,eAAe,CAAC,EAAE;YACtC,OAAO,SAAS,CAAC,yBAAyB,CACtC,IAAI;YACJ,qBAAqB,CAAC,SAAS,EAC/B,CAAC,sBAAsB,EAAE,EAAE;gBACvB,IAAI,IAAA,sBAAc,EAAC,sBAAsB,CAAC,EAAE;oBACxC,OAAO,IAAA,6BAAiB,EAAC,iBAAiB,CAAC,CAAC;iBAC/C;gBAED,IACI,IAAA,sBAAc,EAAC,sBAAsB,CAAC;oBACtC,IAAA,2BAAmB,EAAC,eAAe,CAAC;oBACpC,iBAAS,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,EAClD;oBACE,OAAO,sBAAsB,CAAC;iBACjC;gBAED,IAAI,IAAA,uBAAe,EAAC,sBAAsB,CAAC,EAAE;oBACzC,IAAI,UAAgB,CAAC;oBAErB,IACI,SAAS,CAAC,UAAU,CAChB,eAAe,EACf,iBAAS,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CACxD,EACH;wBACE,UAAU,GAAG,sBAAsB,CAAC;qBACvC;yBAAM,IACH,SAAS,CAAC,UAAU,CAChB,iBAAS,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,EACrD,eAAe,CAClB,EACH;wBACE,UAAU,GAAG,IAAA,8BAAkB,EAC3B,IAAA,6BAAiB,EAAC,iBAAiB,CAAC,EACpC,IAAA,4BAAgB,EAAC,sBAAsB,CAAC,CAC3C,CAAC;wBAEF,+DAA+D;wBAC/D,IAAI,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,IAAI,IAAA,uBAAe,EAAC,sBAAsB,CAAC,EAAE;4BACnF,IACI,iBAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;gCAC7C,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EACrD;gCACE,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC;gCAChF,MAAM,sBAAsB,GAAG,iBAAS,CAAC,sBAAsB,CAC3D,iBAAiB;gCACjB,mBAAmB,CAAC,SAAS;gCAC7B,4BAA4B,CAAC,KAAK,CACrC,CAAC;gCAEF,MAAM,iBAAiB,GAAG,iBAAS,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;gCAC5E,IACI,IAAA,4DAAyC,EACrC,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,cAAc;gCACd,uBAAuB,CAAC,SAAS;gCACjC,iBAAiB,CAAC,SAAS,CAC9B,EACH;oCACE,UAAU,GAAG,IAAA,+BAAmB,EAAC,iBAAiB,EAAE,cAAc,EAAE;wCAChE,iBAAiB,EAAE,IAAI;qCAC1B,CAAc,CAAC;iCACnB;6BACJ;yBACJ;qBACJ;yBAAM;wBACH,OAAO,SAAS,CAAC;qBACpB;oBAED,yEAAyE;oBACzE,wEAAwE;oBACxE,IAAI,kBAAkB,GAAa,EAAE,CAAC;oBACtC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC5C,kBAAkB,GAAG,0BAA0B,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;qBAC/E;oBAED,IAAI,YAAY,GAAG,IAAI,CAAC;oBACxB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACrC,2EAA2E;wBAC3E,+EAA+E;wBAC/E,uCAAuC;wBACvC,MAAM,eAAe,GAAG,gCAAgC,CACpD,SAAS,EACT,GAAG,EACH,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,cAAc,CACjB,CAAC;wBAEF,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE;4BAC1B,YAAY,GAAG,KAAK,CAAC;yBACxB;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,YAAY,EAAE;wBACd,OAAO,UAAU,CAAC;qBACrB;iBACJ;gBAED,OAAO,SAAS,CAAC;YACrB,CAAC,CACJ,CAAC;SACL;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CACJ,CAAC;AACN,CAAC;AAED,2EAA2E;AAC3E,oCAAoC;AACpC,SAAS,iCAAiC,CAAC,SAAoB;IAC3D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;AAClG,CAAC;AAED,6DAA6D;AAC7D,SAAS,gCAAgC,CACrC,SAAwB,EACxB,GAA6B,EAC7B,QAAgB,EAChB,kBAA4B,EAC5B,SAAe,EACf,cAAuB;;IAEvB,IAAI,OAA2B,CAAC;IAEhC,IAAI,GAAG,CAAC,IAAI,EAAE;QACV,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KAC5B;SAAM,IAAI,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC7C,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;KAC1C;IAED,IAAI,IAAA,sBAAc,EAAC,SAAS,CAAC,EAAE;QAC3B,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,CAAC,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE;QACrB,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;KAC/B;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,yDAAyD;IACzD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,kBAAkB,GAAG,SAAS,CAAC;IAEnC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;QACnD,IAAI,iCAAiC,CAAC,SAAS,CAAC,EAAE;YAC9C,iBAAiB,GAAG,IAAI,CAAC;SAC5B;aAAM,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACvC,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,IAAI,iCAAiC,CAAC,QAAQ,CAAC,EAAE;oBAClE,kBAAkB,GAAG,QAAQ,CAAC;oBAC9B,iBAAiB,GAAG,IAAI,CAAC;iBAC5B;YACL,CAAC,CAAC,CAAC;SACN;KACJ;IAED,IAAI,OAAyB,CAAC;IAE9B,IAAI,iBAAiB,EAAE;QACnB,OAAO,GAAG,iBAAS,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC3D;SAAM;QACH,IAAI,OAAO,EAAE;YACT,OAAO,GAAG,MAAA,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;YAC7C,+EAA+E;YAC/E,6EAA6E;YAC7E,SAAS,CAAC,qBAAqB,CAC3B,GAA4B,EAC5B,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC,OAAQ,CACX,CACJ,0CAAE,IAAI,CAAC;SACX;QAED,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,uEAAuE;YACvE,sEAAsE;YACtE,iBAAiB;YACjB,IAAI,iBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9B,OAAO,iBAAS,CAAC,WAAW,EAAE,CAAC;aAClC;YAED,OAAO,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;SAClC;KACJ;IAED,OAAO,wBAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,6BAA6B,CAClC,SAAwB,EACxB,WAAiB,EACjB,OAAyB,EACzB,cAAuB;IAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,gBAAgB,GAAW,EAAE,CAAC;IAEpC,SAAS,CAAC,yBAAyB,CAC/B,SAAS;IACT,qBAAqB,CAAC,SAAS,EAC/B,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,EAAE;QAC7C,gBAAgB,CAAC,IAAI,CACjB,SAAS,CAAC,yBAAyB,CAC/B,WAAW,EACX,IAAA,4BAAgB,EAAC,oBAAoB,CAAC,EACtC,CAAC,sBAAsB,EAAE,EAAE;YACvB,yDAAyD;YACzD,IAAI,CAAC,cAAc,EAAE;gBACjB,IACI,IAAA,uBAAe,EAAC,sBAAsB,CAAC;oBACvC,iBAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC;oBAC7C,CAAC,IAAA,yBAAa,EAAC,sBAAsB,CAAC;oBACtC,IAAA,uBAAe,EAAC,oBAAoB,CAAC;oBACrC,IAAA,iCAAyB,EAAC,sBAAsB,EAAE,oBAAoB,CAAC;oBACvE,IAAA,yBAAa,EAAC,oBAAoB,CAAC,EACrC;oBACE,MAAM,YAAY,GAAG,IAAA,qCAAwB,EAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;oBACjF,IAAI,YAAY,EAAE;wBACd,OAAO,IAAA,oBAAY,EACf,YAAY,CAAC,MAAM,CACf,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAS,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAC9E,CACJ,CAAC;qBACL;iBACJ;qBAAM,IACH,IAAA,uBAAe,EAAC,sBAAsB,CAAC;oBACvC,IAAA,uBAAe,EAAC,oBAAoB,CAAC;oBACrC,IAAA,yBAAa,EAAC,sBAAsB,CAAC;oBACrC,iBAAS,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,EAC5E;oBACE,OAAO,SAAS,CAAC;iBACpB;gBAED,OAAO,sBAAsB,CAAC;aACjC;YAED,IAAI,IAAA,eAAO,EAAC,oBAAoB,CAAC,IAAI,IAAA,eAAO,EAAC,sBAAsB,CAAC,EAAE;gBAClE,OAAO,iBAAS,CAAC,WAAW,EAAE,CAAC;aAClC;YAED,IAAI,IAAA,sBAAc,EAAC,oBAAoB,CAAC,IAAI,IAAA,sBAAc,EAAC,sBAAsB,CAAC,EAAE;gBAChF,mEAAmE;gBACnE,OAAO,IAAA,iBAAS,EAAC,oBAAoB,CAAC,IAAI,IAAA,iBAAS,EAAC,sBAAsB,CAAC;oBACvE,CAAC,CAAC,IAAA,2BAAe,EAAC,oBAAoB,EAAE,sBAAsB,CAAC;oBAC/D,CAAC,CAAC,eAAO,CAAC,MAAM,EAAE,CAAC;aAC1B;YAED,+DAA+D;YAC/D,sCAAsC;YACtC,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CACrE,SAAS,CAAC,0BAA0B,CAChC,oBAAoB,EACpB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAClC,QAAQ,EACR,OAAO,CAAC,UAAU;YAClB,kBAAkB,CAAC,SAAS,CAC/B,CACJ,CAAC;YAEF,OAAO,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,CAAC,CACJ,CACJ,CAAC;QAEF,OAAO,SAAS,CAAC;IACrB,CAAC,CACJ,CAAC;IAEF,OAAO,IAAA,oBAAY,EAAC,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED,qFAAqF;AACrF,wBAAwB;AACxB,SAAS,qBAAqB,CAAC,SAAwB,EAAE,IAAU;IAC/D,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,eAAe,GAAG,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAExE,IAAI,IAAA,sBAAc,EAAC,eAAe,CAAC,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC;gBACb,OAAO;gBACP,YAAY,EAAE;oBACV,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,eAAe;iBACzB;aACJ,CAAC,CAAC;SACN;aAAM,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,EAAE;YACzC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE;gBAC7C,WAAW,CAAC,IAAI,CAAC;oBACb,OAAO;oBACP,SAAS,EAAE,eAAe;iBAC7B,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,oBAA2C,CAAC;gBAChD,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE;oBAChD,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;wBAC3E,oBAAoB,GAAG,QAAQ,CAAC;wBAChC,MAAM;qBACT;iBACJ;gBAED,IAAI,oBAAoB,EAAE;oBACtB,MAAM,kBAAkB,GAAG,IAAA,mCAAuB,EAC9C,oBAAoB,EACpB,eAAe,CACL,CAAC;oBACf,IAAI,kBAAkB,CAAC,aAAa,IAAI,kBAAkB,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;wBAClF,WAAW,CAAC,IAAI,CAAC;4BACb,OAAO;4BACP,YAAY,EAAE;gCACV,GAAG,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;gCACxC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;6BAC7C;yBACJ,CAAC,CAAC;qBACN;iBACJ;aACJ;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,sFAAsF;AACtF,sFAAsF;AACtF,sDAAsD;AACtD,SAAS,sBAAsB,CAC3B,SAAwB,EACxB,IAAU,EACV,UAAkB,EAClB,cAAkC;IAElC,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;IAEjF,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,eAAe,GAAG,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,oBAA2C,CAAC;QAChD,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,IAAA,sBAAc,EAAC,eAAe,CAAC,EAAE;YACjC,YAAY,CAAC,IAAI,CAAC;gBACd,OAAO;gBACP,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,qBAAqB,EAAE,IAAI;gBAC3B,eAAe,EAAE,KAAK;aACzB,CAAC,CAAC;YACH,OAAO;SACV;QAED,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,EAAE;YAClC,IAAI,iBAAS,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE;gBAChD,YAAY,CAAC,IAAI,CAAC;oBACd,OAAO;oBACP,UAAU,EAAE,CAAC,IAAA,6BAAiB,EAAC,eAAe,CAAC,CAAC;oBAChD,qBAAqB,EAAE,IAAI;oBAC3B,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,KAAK;iBACzB,CAAC,CAAC;gBACH,OAAO;aACV;YAED,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChD,IAAI,CAAC,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM;iBACT;gBAED,yDAAyD;gBACzD,IACI,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;oBACpC,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;oBACtC,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAC5C;oBACE,MAAM;iBACT;gBAED,IAAI,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;oBAC3C,oBAAoB,GAAG,QAAQ,CAAC;oBAChC,MAAM;iBACT;gBAED,IAAI,IAAA,wBAAY,EAAC,QAAQ,CAAC,EAAE;oBACxB,oBAAoB,GAAG,QAAQ,CAAC;oBAChC,MAAM;iBACT;aACJ;YAED,IAAI,oBAAoB,EAAE;gBACtB,MAAM,mBAAmB,GAAG,IAAA,mCAAuB,EAAC,oBAAoB,EAAE,eAAe,CAAc,CAAC;gBAExG,IAAI,IAAA,wBAAY,EAAC,mBAAmB,CAAC,EAAE;oBACnC,IAAI,mBAAmB,CAAC,kBAAkB,EAAE;wBACxC,IAAI,IAAA,iCAAqB,EAAC,mBAAmB,CAAC,EAAE;4BAC5C,YAAY,CAAC,IAAI,CAAC;gCACd,OAAO;gCACP,UAAU,EAAE,CAAC,IAAA,oBAAY,EAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gCACrF,qBAAqB,EAAE,IAAI;gCAC3B,OAAO,EAAE,IAAI;gCACb,eAAe,EAAE,KAAK;6BACzB,CAAC,CAAC;4BACH,WAAW,GAAG,IAAI,CAAC;yBACtB;6BAAM;4BACH,IACI,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,IAAI,aAAa;gCAC9D,CAAC,cAAc,KAAK,SAAS;oCACzB,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,KAAK,aAAa,CAAC,EACtE;gCACE,YAAY,CAAC,IAAI,CAAC;oCACd,OAAO;oCACP,UAAU,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oCACrE,qBAAqB,EAAE,KAAK;oCAC5B,OAAO,EAAE,IAAI;oCACb,eAAe,EAAE,KAAK;iCACzB,CAAC,CAAC;gCACH,WAAW,GAAG,IAAI,CAAC;6BACtB;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,YAAY,CAAC,IAAI,CAAC;wBACd,OAAO;wBACP,UAAU,EAAE;4BACR,mBAAmB,CAAC,aAAa,IAAI,mBAAmB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gCAC7E,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;gCACtC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE;yBAC7B;wBACD,qBAAqB,EAAE,IAAI;wBAC3B,eAAe,EAAE,KAAK;qBACzB,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC;iBACtB;aACJ;SACJ;QAED,oEAAoE;QACpE,IAAI,CAAC,WAAW,EAAE;YACd,YAAY,CAAC,IAAI,CAAC;gBACd,OAAO;gBACP,UAAU,EAAE,EAAE;gBACd,qBAAqB,EAAE,IAAI;gBAC3B,eAAe,EAAE,IAAI;aACxB,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,6BAA6B,CAClC,SAAwB,EACxB,IAAe,EACf,YAAiC,EACjC,UAAkB,EAClB,UAAkB,EAClB,cAAkC,EAClC,eAAwB,EACxB,eAAwB;IAExB,IAAI,YAAY,CAAC,qBAAqB,EAAE;QACpC,IAAI,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE3C,8DAA8D;QAC9D,gEAAgE;QAChE,oEAAoE;QACpE,IAAI,eAAe,EAAE;YACjB,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,UAAU,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE;gBAC3C,SAAS,GAAG,UAAU,CAAC;aAC1B;SACJ;QAED,IAAI,CAAC,eAAe,IAAI,UAAU,KAAK,cAAc,IAAI,CAAC,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE;YAC1E,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAC1D;QAED,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,cAAc,KAAK,SAAS,IAAI,UAAU,GAAG,cAAc,EAAE;QAC7D,OAAO,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KAC9C;IAED,IAAI,UAAU,KAAK,cAAc,EAAE;QAC/B,+DAA+D;QAC/D,yCAAyC;QACzC,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU;aACzC,KAAK,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;aACvF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,IAAI,SAAS,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;QAE7C,IAAI,CAAC,eAAe,EAAE;YAClB,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAC1D;QAED,OAAO,SAAS,CAAC;KACpB;IAED,kEAAkE;IAClE,+DAA+D;IAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC7E,IAAA,cAAM,EAAC,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAErE,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,wEAAwE;AACxE,kBAAkB;AAClB,SAAgB,0BAA0B,CACtC,SAAwB,EACxB,IAAU,EACV,gBAAyB,EACzB,eAAwB,EACxB,OAAwB;IAExB,iDAAiD;IACjD,IAAI,GAAG,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEnF,QAAQ,OAAO,CAAC,QAAQ,EAAE;QACtB,6BAAkC,CAAC,CAAC;YAChC,MAAM,YAAY,GAAG,sBAAsB,CACvC,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,cAAc,CACzB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEhD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAC1B,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,6BAA6B,CACzB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,cAAc;gBACtB,qBAAqB,CAAC,KAAK,EAC3B,eAAe,CAClB,CACJ,CACJ,CAAC;gBAEF,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3G,CAAC,CAAC,CAAC;YACH,MAAM;SACT;QAED,uBAA4B,CAAC,CAAC;YAC1B,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aAC5F;YAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrC,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAE1F,4DAA4D;gBAC5D,qBAAqB;gBACrB,IAAI,GAAG,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YACH,MAAM;SACT;QAED,4BAAiC,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,gBAAgB,EAAE;oBACnB,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC;oBACtC,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBACjB,SAAS,CAAC,aAAa,CACnB,QAAQ,CAAC,iBAAiB,CAAC,yBAAyB,EACpD,gCAAc,CAAC,yBAAyB,EACxC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,EACjD,OAAO,CAAC,MAAM,CACjB,CAAC;qBACL;yBAAM,IAAI,IAAA,2BAAe,EAAC,IAAI,CAAC,EAAE;wBAC9B,MAAM,YAAY,GAAG,IAAI,+BAAkB,EAAE,CAAC;wBAC9C,YAAY,CAAC,UAAU,CACnB,oBAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;4BAC/C,IAAI,EAAE,GAAG;4BACT,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;yBAC7D,CAAC,CACL,CAAC;wBACF,SAAS,CAAC,aAAa,CACnB,QAAQ,CAAC,iBAAiB,CAAC,yBAAyB,EACpD,gCAAc,CAAC,yBAAyB,EACxC,oBAAS,CAAC,UAAU,CAAC,mCAAmC,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,EACrF,OAAO,CAAC,MAAM,CACjB,CAAC;qBACL;iBACJ;aACJ;iBAAM;gBACH,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aAC5F;YACD,MAAM;SACT;QAED,4BAAiC,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE3D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;gBACrC,MAAM,QAAQ,GAAW,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAW,EAAE,CAAC;gBAE9B,WAAW,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;oBACvC,IAAI,kBAAkB,CAAC,SAAS,EAAE;wBAC9B,IAAI,YAAY,CAAC,QAAQ,oCAAyC,EAAE;4BAChE,MAAM,OAAO,GAAG,wBAAwB,CACpC,SAAS,EACT,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAC1C,YAAY,CAAC,UAAU;4BACvB,oBAAoB,CAAC,IAAI,CAC5B,CAAC;4BACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAEvB,IAAA,4BAAgB,EAAC,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE;gCACrC,IACI,IAAA,uBAAe,EAAC,UAAU,CAAC;oCAC3B,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;oCACtC,IAAA,yBAAa,EAAC,UAAU,CAAC,EAC3B;oCACE,MAAM,SAAS,GAAG,IAAA,wCAA2B,EACzC,SAAS,EACT,kBAAkB,CAAC,SAAU,CAChC,CAAC;oCACF,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,YAAsB,CAAC,CAAC;oCACnE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;iCAC3E;qCAAM;oCACH,UAAU,CAAC,IAAI,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;iCACzC;4BACL,CAAC,CAAC,CAAC;yBACN;6BAAM,IAAI,YAAY,CAAC,QAAQ,uCAA4C,EAAE;4BAC1E,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;4BAC1D,UAAU,CAAC,IAAI,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;yBACzC;qBACJ;yBAAM,IAAI,kBAAkB,CAAC,YAAY,EAAE;wBACxC,IAAI,YAAY,CAAC,QAAQ,oCAAyC,EAAE;4BAChE,MAAM,OAAO,GAAG,wBAAwB,CACpC,SAAS,EACT,kBAAkB,CAAC,YAAY,CAAC,GAAG,EACnC,YAAY,CAAC,UAAU;4BACvB,oBAAoB,CAAC,IAAI,CAC5B,CAAC;4BACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACvB,UAAU,CAAC,IAAI,CACX,wBAAwB,CACpB,SAAS,EACT,kBAAkB,CAAC,YAAY,CAAC,KAAK,EACrC,YAAY,CAAC,YAAY;4BACzB,oBAAoB,CAAC,IAAI,CAC5B,CACJ,CAAC;yBACL;6BAAM,IAAI,YAAY,CAAC,QAAQ,uCAA4C,EAAE;4BAC1E,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;4BACnD,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;yBAC1D;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,UAAU,CAAC,CAAC;gBAE3C,IAAI,YAAY,CAAC,QAAQ,oCAAyC,EAAE;oBAChE,0BAA0B,CACtB,SAAS,EACT,OAAO,EACP,gBAAgB;oBAChB,qBAAqB,CAAC,KAAK,EAC3B,YAAY,CAAC,UAAU,CAC1B,CAAC;oBACF,0BAA0B,CACtB,SAAS,EACT,SAAS,EACT,gBAAgB;oBAChB,qBAAqB,CAAC,KAAK,EAC3B,YAAY,CAAC,YAAY,CAC5B,CAAC;iBACL;qBAAM,IAAI,YAAY,CAAC,QAAQ,uCAA4C,EAAE;oBAC1E,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC3D,MAAM,QAAQ,GACV,SAAS,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC;wBACnE,CAAC,CAAC,iBAAS,CAAC,eAAe,CACrB,iBAAS,CAAC,sBAAsB,CAC5B,SAAS,EACT,CAAC,OAAO,EAAE,SAAS,CAAC;wBACpB,4BAA4B,CAAC,IAAI,CACpC,CACJ;wBACH,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;oBAC/B,SAAS,CAAC,sBAAsB,CAC5B,YAAY,CAAC,MAAM,EACnB,QAAQ,EACR,gBAAgB,EAChB,YAAY,CAAC,MAAM,CACtB,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;YACH,MAAM;SACT;QAED,0BAA+B,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAa,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAE9D,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,EAAE;gBAC3F,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,EAAE;oBAClC,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE;wBACtC,MAAM,eAAe,GAAG,SAAS,CAAC,4BAA4B,CAAC,cAAc,CAAC,CAAC;wBAE/E,IAAI,IAAA,sBAAc,EAAC,eAAe,CAAC,EAAE;4BACjC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gCACrC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAC1C,CAAC,CAAC,CAAC;yBACN;6BAAM,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,EAAE;4BACzC,yEAAyE;4BACzE,wEAAwE;4BACxE,IAAI,kBAAkB,GAAa,EAAE,CAAC;4BACtC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gCAC5C,kBAAkB,GAAG,0BAA0B,CAC3C,SAAS,EACT,iBAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,CACjD,CAAC;6BACL;4BAED,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gCACrC,MAAM,eAAe,GAAG,gCAAgC,CACpD,SAAS,EACT,GAAG,EACH,KAAK,EACL,kBAAkB,EAClB,iBAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;gCAC9C,oBAAoB,CAAC,IAAI,CAC5B,CAAC;gCACF,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAC1C,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACrC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/C,CAAC,CAAC,CAAC;iBACN;gBAED,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACrC,0BAA0B,CACtB,SAAS,EACT,IAAA,oBAAY,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC7B,gBAAgB;gBAChB,qBAAqB,CAAC,KAAK,EAC3B,GAAG,CAAC,OAAO,CACd,CAAC;YACN,CAAC,CAAC,CAAC;YACH,MAAM;SACT;QAED,6BAAkC;QAClC,2BAAgC;QAChC,kBAAwB,CAAC,CAAC;YACtB,sBAAsB;YACtB,MAAM;SACT;KACJ;AACL,CAAC;AAhQD,gEAgQC;AAED,SAAS,cAAc,CAAC,SAAwB,EAAE,IAAe,EAAE,IAAU;IACzE,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,IAAI,CAAC;KACf;IAED,MAAM,cAAc,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,IAAI,cAAc,IAAI,IAAA,uBAAe,EAAC,cAAc,CAAC,EAAE;QACnD,OAAO,iBAAS,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC;KACtG;IAED,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,oBAAoB,CAAC,SAAwB,EAAE,OAAyB;IACpF,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,0BAAiC,CAAC,IAAI,CAAC;IAEvG,IAAI,IAAA,sBAAc,EAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO;KACV;IAED,2EAA2E;IAC3E,IACI,QAAQ,CAAC,aAAa;QACtB,IAAA,2BAAmB,EAAC,QAAQ,CAAC;QAC7B,QAAQ,CAAC,aAAa;QACtB,QAAQ,CAAC,sBAAsB,EACjC;QACE,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAC9D,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC5F,OAAO,CAAC,SAAS,CACpB,CAAC;KACL;SAAM,IAAI,CAAC,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;QACvC,IAAI,CAAC,IAAA,eAAO,EAAC,QAAQ,CAAC,EAAE;YACpB,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAC9D,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC3F,OAAO,CAAC,SAAS,CACpB,CAAC;SACL;KACJ;SAAM;QACH,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAExG,iFAAiF;QACjF,IAAI,SAAS,EAAE;YACX,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAC9D,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAClD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CACvB,CAAC;aACL;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACpE,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAC9D,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,gCAAgC,EAAE,EACvD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5B,CAAC;aACL;SACJ;KACJ;AACL,CAAC;AAnDD,oDAmDC;AAED,2FAA2F;AAC3F,gFAAgF;AAChF,kDAAkD;AAClD,SAAgB,kCAAkC,CAC9C,SAAwB,EACxB,SAA0C,EAC1C,iBAAiC;IAEjC,yEAAyE;IACzE,qEAAqE;IACrE,8BAA8B;IAC9B,IACI,iBAAiB,CAAC,QAAQ,mBAAwB;QAClD,iBAAiB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACpC,CAAC,iBAAiB,CAAC,aAAa;QAChC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,mBAA4B;QACvE,IAAA,qCAAoB,EAAC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnE;QACE,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAClG,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;QAEvC,IAAI,IAAA,uBAAe,EAAC,SAAS,CAAC,IAAI,IAAA,yBAAa,EAAC,SAAS,CAAC,EAAE;YACxD,IAAI,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;gBAChD,MAAM,6BAA6B,GAAG,SAAS,CAAC,mBAAmB,CAC/D,iBAAiB,CAAC,cAAc,0BAEnC,CAAC;gBACF,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,IAAI,CAAC;gBAEnE,OAAO,CAAC,mBAAyB,EAAE,EAAE;oBACjC,IAAI,YAA8B,CAAC;oBAEnC,IAAI,IAAA,eAAO,EAAC,mBAAmB,CAAC,EAAE;wBAC9B,YAAY,GAAG,iBAAS,CAAC,WAAW,EAAE,CAAC;qBAC1C;yBAAM,IAAI,IAAA,uBAAe,EAAC,mBAAmB,CAAC,IAAI,mBAAmB,CAAC,YAAY,KAAK,SAAS,EAAE;wBAC/F,IAAI,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;4BACvC,YAAY,GAAG,IAAA,0DAA6C,EACxD,SAAS,EACT,uBAAuB,EACvB,SAAS,EACT,mBAAmB;4BACnB,oBAAoB,CAAC,IAAI,CAC5B,CAAC;yBACL;6BAAM;4BACH,YAAY,GAAG,IAAA,sDAAyC,EACpD,SAAS,EACT,uBAAuB,EACvB,SAAS,EACT,mBAAmB;4BACnB,oBAAoB,CAAC,IAAI,CAC5B,CAAC;yBACL;qBACJ;oBAED,IAAI,CAAC,YAAY,EAAE;wBACf,OAAO,SAAS,CAAC;qBACpB;oBAED,OAAO;wBACH,IAAI,EAAE,YAAY;wBAClB,YAAY,EAAE,eAAe,CAAC,YAAY,IAAI,6BAA6B,CAAC,YAAY;qBAC3F,CAAC;gBACN,CAAC,CAAC;aACL;SACJ;KACJ;IAED,4DAA4D;IAC5D,qCAAqC;IACrC,IAAI,iBAAiB,CAAC,QAAQ,mBAAwB,EAAE;QACpD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CACxE,IAAA,qCAAoB,EAAC,SAAS,EAAE,IAAI,CAAC,CACxC,CAAC;QACF,IAAI,kBAAkB,IAAI,CAAC,EAAE;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAEpG,OAAO,CAAC,mBAAyB,EAAE,EAAE;gBACjC,IAAI,SAAS,GAAG,IAAI,CAAC;gBACrB,MAAM,gBAAgB,GAAW,EAAE,CAAC;gBAEpC,IAAA,4BAAgB,EAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC9C,IACI,IAAA,uBAAe,EAAC,OAAO,CAAC;wBACxB,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;wBACrC,OAAO,CAAC,kBAAkB;wBAC1B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM;wBACtD,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EACzD;wBACE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC;qBAC9E;yBAAM;wBACH,SAAS,GAAG,KAAK,CAAC;qBACrB;gBACL,CAAC,CAAC,CAAC;gBAEH,OAAO,SAAS;oBACZ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAA,oBAAY,EAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE;oBACjF,CAAC,CAAC,SAAS,CAAC;YACpB,CAAC,CAAC;SACL;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAnGD,gFAmGC;AAED,SAAS,wBAAwB,CAAC,SAAwB,EAAE,OAAwB,EAAE,WAAiB;IACnG,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,2BAA2B,EAClE,gCAAc,CAAC,2BAA2B,EAC1C,oBAAS,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAC7F,OAAO,CACV,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"patternMatching.js","sourceRoot":"","sources":["../../../src/analyzer/patternMatching.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { SourceMapper } from './sourceMapper';
15
15
  import { Symbol } from './symbol';
16
16
  import { PrintTypeOptions, TypeEvaluator } from './typeEvaluatorTypes';
17
17
  import { Type } from './types';
18
+ import { FileSystem } from '../common/fileSystem';
18
19
  export interface SourceFileInfo {
19
20
  sourceFile: SourceFile;
20
21
  isTypeshedFile: boolean;
@@ -37,6 +38,7 @@ export interface MaxAnalysisTime {
37
38
  noOpenFilesTimeInMs: number;
38
39
  }
39
40
  export declare type PreCheckCallback = (parseResults: ParseResults, evaluator: TypeEvaluator) => void;
41
+ export declare type SourceFileFactory = (fs: FileSystem, filePath: string, moduleName: string, isThirdPartyImport: boolean, isThirdPartyPyTypedPresent: boolean, editMode: boolean, console?: ConsoleInterface, logTracker?: LogTracker, realFilePath?: string, ipythonMode?: IPythonMode) => SourceFile;
40
42
  export interface OpenFileOptions {
41
43
  isTracked: boolean;
42
44
  ipythonMode: IPythonMode;
@@ -59,14 +61,15 @@ export declare class Program {
59
61
  private _parsedFileCount;
60
62
  private _preCheckCallback;
61
63
  private _isEditMode;
62
- constructor(initialImportResolver: ImportResolver, initialConfigOptions: ConfigOptions, console?: ConsoleInterface, logTracker?: LogTracker, _disableChecker?: boolean | undefined, cacheManager?: CacheManager, id?: string);
64
+ private _sourceFileFactory;
65
+ constructor(initialImportResolver: ImportResolver, initialConfigOptions: ConfigOptions, console?: ConsoleInterface, logTracker?: LogTracker, sourceFileFactory?: SourceFileFactory, _disableChecker?: boolean | undefined, cacheManager?: CacheManager, id?: string);
63
66
  get id(): string;
64
67
  get console(): ConsoleInterface;
65
68
  get rootPath(): string;
66
69
  get evaluator(): TypeEvaluator | undefined;
67
70
  get configOptions(): ConfigOptions;
68
71
  get importResolver(): ImportResolver;
69
- get fileSystem(): import("../common/fileSystem").FileSystem;
72
+ get fileSystem(): FileSystem;
70
73
  dispose(): void;
71
74
  enterEditMode(): void;
72
75
  exitEditMode(): FileEditAction[];
@@ -53,6 +53,9 @@ const tracePrinter_1 = require("./tracePrinter");
53
53
  const typeEvaluatorWithTracker_1 = require("./typeEvaluatorWithTracker");
54
54
  const typeStubWriter_1 = require("./typeStubWriter");
55
55
  const _maxImportDepth = 256;
56
+ function DefaultSourceFileFactory(fs, filePath, moduleName, isThirdPartyImport, isThirdPartyPyTypedPresent, editMode, console, logTracker, realFilePath, ipythonMode) {
57
+ return new sourceFile_1.SourceFile(fs, filePath, moduleName, isThirdPartyImport, isThirdPartyPyTypedPresent, editMode, console, logTracker, realFilePath, ipythonMode);
58
+ }
56
59
  // Container for all of the files that are being analyzed. Files
57
60
  // can fall into one or more of the following categories:
58
61
  // Tracked - specified by the config options
@@ -60,7 +63,7 @@ const _maxImportDepth = 256;
60
63
  // Opened - temporarily opened in the editor
61
64
  // Shadowed - implementation file that shadows a type stub file
62
65
  class Program {
63
- constructor(initialImportResolver, initialConfigOptions, console, logTracker, _disableChecker, cacheManager, id) {
66
+ constructor(initialImportResolver, initialConfigOptions, console, logTracker, sourceFileFactory, _disableChecker, cacheManager, id) {
64
67
  this._disableChecker = _disableChecker;
65
68
  this._sourceFileList = [];
66
69
  this._sourceFileMap = new Map();
@@ -139,6 +142,7 @@ class Program {
139
142
  this._logTracker = logTracker !== null && logTracker !== void 0 ? logTracker : new logTracker_1.LogTracker(console, 'FG');
140
143
  this._importResolver = initialImportResolver;
141
144
  this._configOptions = initialConfigOptions;
145
+ this._sourceFileFactory = sourceFileFactory !== null && sourceFileFactory !== void 0 ? sourceFileFactory : DefaultSourceFileFactory;
142
146
  this._cacheManager = cacheManager !== null && cacheManager !== void 0 ? cacheManager : new cacheManager_1.CacheManager();
143
147
  this._cacheManager.registerCacheOwner(this);
144
148
  this._createNewEvaluator();
@@ -275,7 +279,7 @@ class Program {
275
279
  sourceFileInfo.isTracked = true;
276
280
  return sourceFileInfo.sourceFile;
277
281
  }
278
- const sourceFile = new sourceFile_1.SourceFile(this.fileSystem, filePath, importName, isThirdPartyImport, isInPyTypedPackage, this._isEditMode, this._console, this._logTracker);
282
+ const sourceFile = this._sourceFileFactory(this.fileSystem, filePath, importName, isThirdPartyImport, isInPyTypedPackage, this._isEditMode, this._console, this._logTracker);
279
283
  sourceFileInfo = {
280
284
  sourceFile,
281
285
  isTracked: true,
@@ -297,7 +301,7 @@ class Program {
297
301
  let sourceFileInfo = this.getSourceFileInfo(filePath);
298
302
  if (!sourceFileInfo) {
299
303
  const importName = this._getImportNameForFile(filePath);
300
- const sourceFile = new sourceFile_1.SourceFile(this.fileSystem, filePath, importName,
304
+ const sourceFile = this._sourceFileFactory(this.fileSystem, filePath, importName,
301
305
  /* isThirdPartyImport */ false,
302
306
  /* isInPyTypedPackage */ false, this._isEditMode, this._console, this._logTracker, options === null || options === void 0 ? void 0 : options.realFilePath, (_a = options === null || options === void 0 ? void 0 : options.ipythonMode) !== null && _a !== void 0 ? _a : sourceFile_1.IPythonMode.None);
303
307
  const chainedFilePath = options === null || options === void 0 ? void 0 : options.chainedFilePath;
@@ -1237,7 +1241,7 @@ class Program {
1237
1241
  }
1238
1242
  _createInterimFileInfo(filePath) {
1239
1243
  const importName = this._getImportNameForFile(filePath);
1240
- const sourceFile = new sourceFile_1.SourceFile(this.fileSystem, filePath, importName,
1244
+ const sourceFile = this._sourceFileFactory(this.fileSystem, filePath, importName,
1241
1245
  /* isThirdPartyImport */ false,
1242
1246
  /* isInPyTypedPackage */ false, this._isEditMode, this._console, this._logTracker);
1243
1247
  const sourceFileInfo = {
@@ -1487,7 +1491,13 @@ class Program {
1487
1491
  const handle = this._cacheManager.pauseTracking();
1488
1492
  try {
1489
1493
  for (let i = chainedByList.length - 1; i >= startIndex; i--) {
1490
- this._checkTypes(chainedByList[i], token, chainedByList);
1494
+ const file = chainedByList[i];
1495
+ if (!file) {
1496
+ continue;
1497
+ }
1498
+ if (!this._checkTypes(file, token, chainedByList)) {
1499
+ chainedByList[i] = undefined;
1500
+ }
1491
1501
  }
1492
1502
  }
1493
1503
  finally {
@@ -1497,8 +1507,9 @@ class Program {
1497
1507
  const dependentFiles = [];
1498
1508
  for (let i = startIndex; i < chainedByList.length; i++) {
1499
1509
  const file = chainedByList[i];
1500
- const parseResults = file.sourceFile.getParseResults();
1501
- if (parseResults) {
1510
+ const parseResults = file === null || file === void 0 ? void 0 : file.sourceFile.getParseResults();
1511
+ if (file && parseResults) {
1512
+ (0, debug_1.assert)(!file.sourceFile.isBindingRequired());
1502
1513
  dependentFiles.push(parseResults);
1503
1514
  }
1504
1515
  }