brighterscript 1.0.0-alpha.26 → 1.0.0-alpha.28

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 (200) hide show
  1. package/CHANGELOG.md +82 -5
  2. package/README.md +1 -1
  3. package/dist/AstValidationSegmenter.d.ts +1 -1
  4. package/dist/AstValidationSegmenter.js +4 -5
  5. package/dist/AstValidationSegmenter.js.map +1 -1
  6. package/dist/DiagnosticFilterer.d.ts +7 -4
  7. package/dist/DiagnosticFilterer.js +67 -37
  8. package/dist/DiagnosticFilterer.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -3
  10. package/dist/DiagnosticMessages.js +5 -8
  11. package/dist/DiagnosticMessages.js.map +1 -1
  12. package/dist/PluginInterface.js +1 -1
  13. package/dist/PluginInterface.js.map +1 -1
  14. package/dist/Program.d.ts +1 -1
  15. package/dist/Program.js +34 -31
  16. package/dist/Program.js.map +1 -1
  17. package/dist/Scope.d.ts +7 -34
  18. package/dist/Scope.js +45 -305
  19. package/dist/Scope.js.map +1 -1
  20. package/dist/SymbolTable.d.ts +1 -8
  21. package/dist/SymbolTable.js +1 -10
  22. package/dist/SymbolTable.js.map +1 -1
  23. package/dist/SymbolTypeFlag.d.ts +8 -0
  24. package/dist/SymbolTypeFlag.js +13 -0
  25. package/dist/SymbolTypeFlag.js.map +1 -0
  26. package/dist/XmlScope.d.ts +0 -8
  27. package/dist/XmlScope.js +6 -84
  28. package/dist/XmlScope.js.map +1 -1
  29. package/dist/astUtils/CachedLookups.d.ts +1 -2
  30. package/dist/astUtils/CachedLookups.js +4 -19
  31. package/dist/astUtils/CachedLookups.js.map +1 -1
  32. package/dist/astUtils/creators.d.ts +1 -0
  33. package/dist/astUtils/creators.js +48 -8
  34. package/dist/astUtils/creators.js.map +1 -1
  35. package/dist/astUtils/creators.spec.js +0 -10
  36. package/dist/astUtils/creators.spec.js.map +1 -1
  37. package/dist/astUtils/reflection.d.ts +3 -2
  38. package/dist/astUtils/reflection.js +11 -7
  39. package/dist/astUtils/reflection.js.map +1 -1
  40. package/dist/astUtils/reflection.spec.js +11 -16
  41. package/dist/astUtils/reflection.spec.js.map +1 -1
  42. package/dist/astUtils/visitors.d.ts +1 -2
  43. package/dist/astUtils/visitors.js.map +1 -1
  44. package/dist/astUtils/visitors.spec.js +1 -5
  45. package/dist/astUtils/visitors.spec.js.map +1 -1
  46. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  47. package/dist/bscPlugin/BscPlugin.js +4 -0
  48. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  49. package/dist/bscPlugin/SignatureHelpUtil.js +4 -3
  50. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  51. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -0
  52. package/dist/bscPlugin/completions/CompletionsProcessor.js +46 -29
  53. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  54. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +39 -0
  55. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  56. package/dist/bscPlugin/hover/HoverProcessor.d.ts +1 -0
  57. package/dist/bscPlugin/hover/HoverProcessor.js +30 -10
  58. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  59. package/dist/bscPlugin/hover/HoverProcessor.spec.js +125 -7
  60. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  61. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  62. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  63. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  64. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  65. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  66. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  67. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -3
  68. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  69. package/dist/bscPlugin/validation/BrsFileValidator.js +25 -31
  70. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  71. package/dist/bscPlugin/validation/ScopeValidator.d.ts +34 -1
  72. package/dist/bscPlugin/validation/ScopeValidator.js +435 -27
  73. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  74. package/dist/bscPlugin/validation/ScopeValidator.spec.js +178 -10
  75. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  76. package/dist/diagnosticUtils.d.ts +1 -1
  77. package/dist/files/BrsFile.Class.spec.js +15 -7
  78. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  79. package/dist/files/BrsFile.d.ts +14 -5
  80. package/dist/files/BrsFile.js +83 -150
  81. package/dist/files/BrsFile.js.map +1 -1
  82. package/dist/files/BrsFile.spec.js +429 -162
  83. package/dist/files/BrsFile.spec.js.map +1 -1
  84. package/dist/files/XmlFile.d.ts +2 -3
  85. package/dist/files/XmlFile.js +1 -3
  86. package/dist/files/XmlFile.js.map +1 -1
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.js +1 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/interfaces.d.ts +117 -85
  91. package/dist/interfaces.js +9 -9
  92. package/dist/interfaces.js.map +1 -1
  93. package/dist/lexer/Lexer.d.ts +9 -3
  94. package/dist/lexer/Lexer.js +36 -15
  95. package/dist/lexer/Lexer.js.map +1 -1
  96. package/dist/lexer/Lexer.spec.js +76 -38
  97. package/dist/lexer/Lexer.spec.js.map +1 -1
  98. package/dist/lexer/Token.js +1 -1
  99. package/dist/lexer/Token.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +1 -0
  101. package/dist/lexer/TokenKind.js +4 -1
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/AstNode.d.ts +1 -2
  104. package/dist/parser/AstNode.js +0 -1
  105. package/dist/parser/AstNode.js.map +1 -1
  106. package/dist/parser/BrsTranspileState.d.ts +1 -1
  107. package/dist/parser/Expression.d.ts +153 -135
  108. package/dist/parser/Expression.js +204 -114
  109. package/dist/parser/Expression.js.map +1 -1
  110. package/dist/parser/Parser.Class.spec.js +15 -16
  111. package/dist/parser/Parser.Class.spec.js.map +1 -1
  112. package/dist/parser/Parser.d.ts +8 -4
  113. package/dist/parser/Parser.js +108 -149
  114. package/dist/parser/Parser.js.map +1 -1
  115. package/dist/parser/Parser.spec.js +48 -72
  116. package/dist/parser/Parser.spec.js.map +1 -1
  117. package/dist/parser/SGParser.js +49 -35
  118. package/dist/parser/SGParser.js.map +1 -1
  119. package/dist/parser/SGTypes.d.ts +36 -24
  120. package/dist/parser/SGTypes.js +31 -60
  121. package/dist/parser/SGTypes.js.map +1 -1
  122. package/dist/parser/Statement.d.ts +214 -207
  123. package/dist/parser/Statement.js +248 -169
  124. package/dist/parser/Statement.js.map +1 -1
  125. package/dist/parser/Statement.spec.js +0 -13
  126. package/dist/parser/Statement.spec.js.map +1 -1
  127. package/dist/parser/TranspileState.d.ts +17 -8
  128. package/dist/parser/TranspileState.js +64 -6
  129. package/dist/parser/TranspileState.js.map +1 -1
  130. package/dist/parser/tests/Parser.spec.d.ts +1 -1
  131. package/dist/parser/tests/Parser.spec.js +1 -2
  132. package/dist/parser/tests/Parser.spec.js.map +1 -1
  133. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  134. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -3
  136. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +44 -0
  138. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +6 -6
  140. package/dist/parser/tests/expression/TernaryExpression.spec.js +47 -0
  141. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  142. package/dist/parser/tests/expression/TypeExpression.spec.js +8 -9
  143. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
  144. package/dist/parser/tests/statement/ConstStatement.spec.js +2 -2
  145. package/dist/parser/tests/statement/InterfaceStatement.spec.js +8 -1
  146. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  147. package/dist/parser/tests/statement/Misc.spec.js +25 -5
  148. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  149. package/dist/parser/tests/statement/TryCatch.spec.js +9 -2
  150. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  151. package/dist/preprocessor/Chunk.js +1 -2
  152. package/dist/preprocessor/Chunk.js.map +1 -1
  153. package/dist/preprocessor/PreprocessorParser.js +2 -1
  154. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  155. package/dist/roku-types/data.json +70 -52
  156. package/dist/roku-types/index.d.ts +43 -21
  157. package/dist/types/ArrayType.js +1 -2
  158. package/dist/types/ArrayType.js.map +1 -1
  159. package/dist/types/ArrayType.spec.js +7 -8
  160. package/dist/types/ArrayType.spec.js.map +1 -1
  161. package/dist/types/AssociativeArrayType.d.ts +3 -0
  162. package/dist/types/AssociativeArrayType.js +10 -2
  163. package/dist/types/AssociativeArrayType.js.map +1 -1
  164. package/dist/types/BscType.d.ts +1 -1
  165. package/dist/types/BscType.js +3 -3
  166. package/dist/types/BscType.js.map +1 -1
  167. package/dist/types/BuiltInInterfaceAdder.js +7 -8
  168. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  169. package/dist/types/BuiltInInterfaceAdder.spec.js +31 -32
  170. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
  171. package/dist/types/ClassType.spec.js +10 -11
  172. package/dist/types/ClassType.spec.js.map +1 -1
  173. package/dist/types/ComponentType.d.ts +2 -1
  174. package/dist/types/ComponentType.js.map +1 -1
  175. package/dist/types/EnumType.js +2 -3
  176. package/dist/types/EnumType.js.map +1 -1
  177. package/dist/types/InheritableType.js +3 -4
  178. package/dist/types/InheritableType.js.map +1 -1
  179. package/dist/types/InterfaceType.js +2 -3
  180. package/dist/types/InterfaceType.js.map +1 -1
  181. package/dist/types/InterfaceType.spec.js +3 -4
  182. package/dist/types/InterfaceType.spec.js.map +1 -1
  183. package/dist/types/ObjectType.js +1 -2
  184. package/dist/types/ObjectType.js.map +1 -1
  185. package/dist/types/ReferenceType.d.ts +1 -1
  186. package/dist/types/ReferenceType.spec.js +21 -22
  187. package/dist/types/ReferenceType.spec.js.map +1 -1
  188. package/dist/types/UnionType.js +3 -3
  189. package/dist/types/UnionType.js.map +1 -1
  190. package/dist/types/UnionType.spec.js +37 -38
  191. package/dist/types/UnionType.spec.js.map +1 -1
  192. package/dist/types/helper.spec.js +4 -5
  193. package/dist/types/helper.spec.js.map +1 -1
  194. package/dist/util.d.ts +21 -11
  195. package/dist/util.js +116 -37
  196. package/dist/util.js.map +1 -1
  197. package/dist/validators/ClassValidator.d.ts +0 -9
  198. package/dist/validators/ClassValidator.js +3 -46
  199. package/dist/validators/ClassValidator.js.map +1 -1
  200. package/package.json +6 -3
package/dist/Scope.js CHANGED
@@ -4,14 +4,10 @@ exports.Scope = void 0;
4
4
  /* eslint-disable @typescript-eslint/dot-notation */
5
5
  const path = require("path");
6
6
  const chalk_1 = require("chalk");
7
- const DiagnosticMessages_1 = require("./DiagnosticMessages");
8
7
  const interfaces_1 = require("./interfaces");
9
- const ClassValidator_1 = require("./validators/ClassValidator");
10
8
  const Parser_1 = require("./parser/Parser");
11
9
  const util_1 = require("./util");
12
- const globalCallables_1 = require("./globalCallables");
13
10
  const Cache_1 = require("./Cache");
14
- const vscode_uri_1 = require("vscode-uri");
15
11
  const Logger_1 = require("./Logger");
16
12
  const reflection_1 = require("./astUtils/reflection");
17
13
  const SymbolTable_1 = require("./SymbolTable");
@@ -19,8 +15,6 @@ const NamespaceType_1 = require("./types/NamespaceType");
19
15
  const ReferenceType_1 = require("./types/ReferenceType");
20
16
  const UnionType_1 = require("./types/UnionType");
21
17
  const AssociativeArrayType_1 = require("./types/AssociativeArrayType");
22
- const AstNode_1 = require("./parser/AstNode");
23
- const visitors_1 = require("./astUtils/visitors");
24
18
  /**
25
19
  * Assign some few factories to the SymbolTable to prevent cyclical imports. This file seems like the most intuitive place to do the linking
26
20
  * since Scope will be used by pretty much everything
@@ -212,21 +206,24 @@ class Scope {
212
206
  }
213
207
  return result;
214
208
  }
215
- getAllFileLinks(name, containingNamespace) {
216
- var _a, _b, _c, _d, _e, _f;
209
+ getAllFileLinks(name, containingNamespace, includeNameShadowsOutsideNamespace = false) {
210
+ var _a, _b;
217
211
  let links = [];
218
- links.push((_a = this.getClassFileLink(name)) !== null && _a !== void 0 ? _a : this.getClassFileLink(name, containingNamespace), (_b = this.getInterfaceFileLink(name)) !== null && _b !== void 0 ? _b : this.getInterfaceFileLink(name, containingNamespace), (_c = this.getConstFileLink(name)) !== null && _c !== void 0 ? _c : this.getConstFileLink(name, containingNamespace), (_d = this.getEnumFileLink(name)) !== null && _d !== void 0 ? _d : this.getEnumFileLink(name, containingNamespace));
212
+ links.push(this.getClassFileLink(name, containingNamespace), this.getInterfaceFileLink(name, containingNamespace), this.getConstFileLink(name, containingNamespace), this.getEnumFileLink(name, containingNamespace));
213
+ if (includeNameShadowsOutsideNamespace && containingNamespace) {
214
+ links.push(this.getClassFileLink(name), this.getInterfaceFileLink(name), this.getConstFileLink(name), this.getEnumFileLink(name));
215
+ }
219
216
  const nameSpaces = this.getNamespacesWithRoot(name, containingNamespace);
220
217
  if ((nameSpaces === null || nameSpaces === void 0 ? void 0 : nameSpaces.length) > 0) {
221
- const nsContainersWithStatement = (_e = nameSpaces.filter(nsContainer => { var _a; return ((_a = nsContainer === null || nsContainer === void 0 ? void 0 : nsContainer.namespaceStatements) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _e === void 0 ? void 0 : _e[0];
218
+ const nsContainersWithStatement = (_a = nameSpaces.filter(nsContainer => { var _a; return ((_a = nsContainer === null || nsContainer === void 0 ? void 0 : nsContainer.namespaceStatements) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _a === void 0 ? void 0 : _a[0];
222
219
  if (nsContainersWithStatement) {
223
- links.push({ item: (_f = nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.namespaceStatements) === null || _f === void 0 ? void 0 : _f[0], file: nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.file });
220
+ links.push({ item: (_b = nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.namespaceStatements) === null || _b === void 0 ? void 0 : _b[0], file: nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.file });
224
221
  }
225
222
  }
226
223
  const fullNameLower = (containingNamespace ? `${containingNamespace}.${name}` : name).toLowerCase();
227
224
  const callable = this.getCallableByName(name);
228
225
  if (callable) {
229
- if (!callable.hasNamespace || callable.getName(Parser_1.ParseMode.BrighterScript).toLowerCase() === fullNameLower) {
226
+ if ((!callable.hasNamespace && includeNameShadowsOutsideNamespace) || callable.getName(Parser_1.ParseMode.BrighterScript).toLowerCase() === fullNameLower) {
230
227
  // this callable has no namespace, or has same namespace
231
228
  links.push({ item: callable.functionStatement, file: callable.file });
232
229
  }
@@ -516,6 +513,36 @@ class Scope {
516
513
  return result;
517
514
  });
518
515
  }
516
+ getCallableContainerMap() {
517
+ return this.cache.getOrAdd('callableContainerMap', () => {
518
+ let callables = this.getAllCallables();
519
+ //sort the callables by filepath and then method name, so the errors will be consistent
520
+ // eslint-disable-next-line prefer-arrow-callback
521
+ callables = callables.sort((a, b) => {
522
+ const pathA = a.callable.file.srcPath;
523
+ const pathB = b.callable.file.srcPath;
524
+ //sort by path
525
+ if (pathA < pathB) {
526
+ return -1;
527
+ }
528
+ else if (pathA > pathB) {
529
+ return 1;
530
+ }
531
+ //sort by function name
532
+ const funcA = b.callable.name;
533
+ const funcB = b.callable.name;
534
+ if (funcA < funcB) {
535
+ return -1;
536
+ }
537
+ else if (funcA > funcB) {
538
+ return 1;
539
+ }
540
+ return 0;
541
+ });
542
+ //get a list of all callables, indexed by their lower case names
543
+ return util_1.util.getCallableContainersByLowerName(callables);
544
+ });
545
+ }
519
546
  /**
520
547
  * Iterate over Brs files not shadowed by typedefs
521
548
  */
@@ -614,32 +641,6 @@ class Scope {
614
641
  }
615
642
  //clear the scope's errors list (we will populate them from this method)
616
643
  this.clearScopeLevelDiagnostics();
617
- let callables = this.getAllCallables();
618
- //sort the callables by filepath and then method name, so the errors will be consistent
619
- // eslint-disable-next-line prefer-arrow-callback
620
- callables = callables.sort((a, b) => {
621
- const pathA = a.callable.file.srcPath;
622
- const pathB = b.callable.file.srcPath;
623
- //sort by path
624
- if (pathA < pathB) {
625
- return -1;
626
- }
627
- else if (pathA > pathB) {
628
- return 1;
629
- }
630
- //sort by function name
631
- const funcA = b.callable.name;
632
- const funcB = b.callable.name;
633
- if (funcA < funcB) {
634
- return -1;
635
- }
636
- else if (funcA > funcB) {
637
- return 1;
638
- }
639
- return 0;
640
- });
641
- //get a list of all callables, indexed by their lower case names
642
- let callableContainerMap = util_1.util.getCallableContainersByLowerName(callables);
643
644
  //Since statements from files are shared across multiple scopes, we need to link those statements to the current scope
644
645
  this.linkSymbolTable();
645
646
  const scopeValidateEvent = {
@@ -650,28 +651,12 @@ class Scope {
650
651
  };
651
652
  this.program.plugins.emit('beforeScopeValidate', scopeValidateEvent);
652
653
  this.program.plugins.emit('onScopeValidate', scopeValidateEvent);
653
- this._validate(callableContainerMap);
654
654
  this.program.plugins.emit('afterScopeValidate', scopeValidateEvent);
655
655
  //unlink all symbol tables from this scope (so they don't accidentally stick around)
656
656
  this.unlinkSymbolTable();
657
657
  this.isValidated = true;
658
658
  });
659
659
  }
660
- _validate(callableContainerMap) {
661
- //find all duplicate function declarations
662
- this.diagnosticFindDuplicateFunctionDeclarations(callableContainerMap);
663
- //detect missing and incorrect-case script imports
664
- this.diagnosticValidateScriptImportPaths();
665
- //enforce a series of checks on the bodies of class methods
666
- this.validateClasses();
667
- //do many per-file checks
668
- this.enumerateBrsFiles((file) => {
669
- this.diagnosticDetectShadowedLocalVars(file, callableContainerMap);
670
- this.diagnosticDetectFunctionCollisions(file);
671
- this.detectVariableNamespaceCollisions(file);
672
- this.detectNameCollisions(file);
673
- });
674
- }
675
660
  clearAstSegmentDiagnostics(astSegment) {
676
661
  this.diagnostics = this.diagnostics.filter(diag => !(diag.origin === interfaces_1.DiagnosticOrigin.ASTSegment && diag.astSegment === astSegment));
677
662
  }
@@ -694,7 +679,7 @@ class Scope {
694
679
  return this.cache.getOrAdd('symbolTable', () => {
695
680
  var _a;
696
681
  const result = new SymbolTable_1.SymbolTable(`Scope: '${this.name}'`, () => { var _a; return (_a = this.getParentScope()) === null || _a === void 0 ? void 0 : _a.symbolTable; });
697
- result.addSymbol('m', undefined, new AssociativeArrayType_1.AssociativeArrayType(), SymbolTable_1.SymbolTypeFlag.runtime);
682
+ result.addSymbol('m', undefined, new AssociativeArrayType_1.AssociativeArrayType(), 1 /* SymbolTypeFlag.runtime */);
698
683
  for (let file of this.getOwnFiles()) {
699
684
  if ((0, reflection_1.isBrsFile)(file)) {
700
685
  result.mergeSymbolTable((_a = file.parser) === null || _a === void 0 ? void 0 : _a.symbolTable);
@@ -733,7 +718,7 @@ class Scope {
733
718
  //Add namespace aggregates to namespace member tables
734
719
  const namespaceTypesKnown = new Map();
735
720
  // eslint-disable-next-line no-bitwise
736
- let getTypeOptions = { flags: SymbolTable_1.SymbolTypeFlag.runtime | SymbolTable_1.SymbolTypeFlag.typetime };
721
+ let getTypeOptions = { flags: 1 /* SymbolTypeFlag.runtime */ | 2 /* SymbolTypeFlag.typetime */ };
737
722
  for (const [nsName, nsContainer] of this.namespaceLookup) {
738
723
  let currentNSType = null;
739
724
  let parentNSType = null;
@@ -742,6 +727,7 @@ class Scope {
742
727
  parentNSType = namespaceTypesKnown.get(nsContainer.parentNameLower);
743
728
  if (!parentNSType) {
744
729
  // we don't know about the parent namespace... uh, oh!
730
+ this.program.logger.error(`Unable to find parent namespace type for namespace ${nsName}`);
745
731
  break;
746
732
  }
747
733
  currentNSType = parentNSType.getMemberType(nsContainer.fullNameLower, getTypeOptions);
@@ -750,7 +736,7 @@ class Scope {
750
736
  currentNSType = this.symbolTable.getSymbolType(nsContainer.fullNameLower, getTypeOptions);
751
737
  }
752
738
  if (!(0, reflection_1.isNamespaceType)(currentNSType)) {
753
- if (!currentNSType || (0, reflection_1.isReferenceType)(currentNSType)) {
739
+ if (!currentNSType || (0, reflection_1.isReferenceType)(currentNSType) || (0, reflection_1.isCallableType)(currentNSType)) {
754
740
  currentNSType = existingNsStmt
755
741
  ? existingNsStmt.getType(getTypeOptions)
756
742
  : new NamespaceType_1.NamespaceType(nsName);
@@ -765,7 +751,8 @@ class Scope {
765
751
  }
766
752
  }
767
753
  else {
768
- break;
754
+ // Something else already used the name this namespace is using.
755
+ continue;
769
756
  }
770
757
  }
771
758
  else {
@@ -790,224 +777,6 @@ class Scope {
790
777
  }
791
778
  this.linkSymbolTableDisposables = [];
792
779
  }
793
- detectVariableNamespaceCollisions(file) {
794
- var _a, _b;
795
- //find all function parameters
796
- for (let func of file['_cachedLookups'].functionExpressions) {
797
- for (let param of func.parameters) {
798
- let lowerParamName = param.tokens.name.text.toLowerCase();
799
- let namespace = this.getNamespace(lowerParamName, (_a = param.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript).toLowerCase());
800
- //see if the param matches any starting namespace part
801
- if (namespace) {
802
- this.diagnostics.push(Object.assign(Object.assign({ origin: interfaces_1.DiagnosticOrigin.Scope, file: file }, DiagnosticMessages_1.DiagnosticMessages.parameterMayNotHaveSameNameAsNamespace(param.tokens.name.text)), { range: param.tokens.name.range, relatedInformation: [{
803
- message: 'Namespace declared here',
804
- location: util_1.util.createLocation(vscode_uri_1.URI.file(namespace.file.srcPath).toString(), namespace.nameRange)
805
- }] }));
806
- }
807
- }
808
- }
809
- for (let assignment of file['_cachedLookups'].assignmentStatements) {
810
- let lowerAssignmentName = assignment.tokens.name.text.toLowerCase();
811
- let namespace = this.getNamespace(lowerAssignmentName, (_b = assignment.findAncestor(reflection_1.isNamespaceStatement)) === null || _b === void 0 ? void 0 : _b.getName(Parser_1.ParseMode.BrighterScript).toLowerCase());
812
- //see if the param matches any starting namespace part
813
- if (namespace) {
814
- this.diagnostics.push(Object.assign(Object.assign({ origin: interfaces_1.DiagnosticOrigin.Scope, file: file }, DiagnosticMessages_1.DiagnosticMessages.variableMayNotHaveSameNameAsNamespace(assignment.tokens.name.text)), { range: assignment.tokens.name.range, relatedInformation: [{
815
- message: 'Namespace declared here',
816
- location: util_1.util.createLocation(vscode_uri_1.URI.file(namespace.file.srcPath).toString(), namespace.nameRange)
817
- }] }));
818
- }
819
- }
820
- }
821
- /**
822
- * Find various function collisions
823
- */
824
- diagnosticDetectFunctionCollisions(file) {
825
- for (let func of file.callables) {
826
- const funcName = func.getName(Parser_1.ParseMode.BrighterScript);
827
- const lowerFuncName = funcName === null || funcName === void 0 ? void 0 : funcName.toLowerCase();
828
- if (lowerFuncName) {
829
- //find function declarations with the same name as a stdlib function
830
- if (globalCallables_1.globalCallableMap.has(lowerFuncName)) {
831
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.scopeFunctionShadowedByBuiltInFunction()), { range: func.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
832
- }
833
- //find any functions that have the same name as a class
834
- const klassLink = this.getClassFileLink(lowerFuncName);
835
- if (klassLink) {
836
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.functionCannotHaveSameNameAsClass(funcName)), { range: func.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope, relatedInformation: [{
837
- location: util_1.util.createLocation(vscode_uri_1.URI.file(klassLink.file.srcPath).toString(), klassLink.item.tokens.name.range),
838
- message: 'Original class declared here'
839
- }] }));
840
- }
841
- }
842
- }
843
- }
844
- detectNameCollisions(file) {
845
- file.ast.walk((0, visitors_1.createVisitor)({
846
- NamespaceStatement: (nsStmt) => {
847
- var _a;
848
- this.validateNameCollision(file, nsStmt, (_a = nsStmt.getNameParts()) === null || _a === void 0 ? void 0 : _a[0]);
849
- },
850
- ClassStatement: (classStmt) => {
851
- this.validateNameCollision(file, classStmt, classStmt.tokens.name);
852
- },
853
- InterfaceStatement: (ifaceStmt) => {
854
- this.validateNameCollision(file, ifaceStmt, ifaceStmt.tokens.name);
855
- },
856
- ConstStatement: (constStmt) => {
857
- this.validateNameCollision(file, constStmt, constStmt.tokens.name);
858
- },
859
- EnumStatement: (enumStmt) => {
860
- this.validateNameCollision(file, enumStmt, enumStmt.tokens.name);
861
- }
862
- }), {
863
- walkMode: visitors_1.WalkMode.visitStatements
864
- });
865
- }
866
- validateNameCollision(file, node, nameIdentifier) {
867
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
868
- const name = nameIdentifier === null || nameIdentifier === void 0 ? void 0 : nameIdentifier.text;
869
- if (!name || !node) {
870
- return;
871
- }
872
- const nameRange = nameIdentifier.range;
873
- const containingNamespace = (_a = node.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
874
- const links = this.getAllFileLinks(name, containingNamespace);
875
- for (let link of links) {
876
- if (!link || link.item === node) {
877
- // refers to same node
878
- continue;
879
- }
880
- if ((0, reflection_1.isNamespaceStatement)(link.item) && (0, reflection_1.isNamespaceStatement)(node)) {
881
- // namespace can be declared multiple times
882
- continue;
883
- }
884
- const thisNodeKindName = util_1.util.getAstNodeFriendlyName(node);
885
- const thatNodeKindName = link.file.srcPath === 'global' ? 'Global Function' : (_b = util_1.util.getAstNodeFriendlyName(link.item)) !== null && _b !== void 0 ? _b : '';
886
- let thatNameRange = (_f = (_e = (_d = (_c = link.item) === null || _c === void 0 ? void 0 : _c.tokens) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.range) !== null && _f !== void 0 ? _f : (_g = link.item) === null || _g === void 0 ? void 0 : _g.range;
887
- // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
888
- switch ((_h = link.item) === null || _h === void 0 ? void 0 : _h.kind) {
889
- case AstNode_1.AstNodeKind.ClassStatement: {
890
- thatNameRange = (_j = link.item.tokens.name) === null || _j === void 0 ? void 0 : _j.range;
891
- break;
892
- }
893
- case AstNode_1.AstNodeKind.NamespaceStatement: {
894
- thatNameRange = (_l = (_k = link.item.getNameParts()) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.range;
895
- break;
896
- }
897
- }
898
- const relatedInformation = thatNameRange ? [{
899
- message: `${thatNodeKindName} declared here`,
900
- location: util_1.util.createLocation(vscode_uri_1.URI.file((_m = link.file) === null || _m === void 0 ? void 0 : _m.srcPath).toString(), thatNameRange)
901
- }] : undefined;
902
- this.diagnostics.push(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.nameCollision(thisNodeKindName, thatNodeKindName, name)), { origin: interfaces_1.DiagnosticOrigin.Scope, range: nameRange, relatedInformation: relatedInformation }));
903
- }
904
- }
905
- getNewExpressions() {
906
- let result = [];
907
- this.enumerateBrsFiles((file) => {
908
- let expressions = file['_cachedLookups'].newExpressions;
909
- for (let expression of expressions) {
910
- expression.file = file;
911
- result.push(expression);
912
- }
913
- });
914
- return result;
915
- }
916
- validateClasses() {
917
- let validator = new ClassValidator_1.BsClassValidator(this);
918
- validator.validate();
919
- this.diagnostics.push(...validator.diagnostics.map(diag => {
920
- return Object.assign(Object.assign({}, diag), { origin: interfaces_1.DiagnosticOrigin.Scope });
921
- }));
922
- }
923
- /**
924
- * Detect local variables (function scope) that have the same name as scope calls
925
- */
926
- diagnosticDetectShadowedLocalVars(file, callableContainerMap) {
927
- var _a;
928
- const classMap = this.getClassMap();
929
- //loop through every function scope
930
- for (let funcScope of file.functionScopes) {
931
- //every var declaration in this function scope
932
- for (let varDeclaration of funcScope.variableDeclarations) {
933
- const varName = varDeclaration.name;
934
- const lowerVarName = varName.toLowerCase();
935
- const varIsFunction = () => {
936
- return (0, reflection_1.isCallableType)(varDeclaration.getType());
937
- };
938
- if (
939
- //has same name as stdlib
940
- globalCallables_1.globalCallableMap.has(lowerVarName)) {
941
- //local var function with same name as stdlib function
942
- if (varIsFunction()) {
943
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarFunctionShadowsParentFunction('stdlib')), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
944
- }
945
- }
946
- else if (callableContainerMap.has(lowerVarName)) {
947
- //is same name as a callable
948
- if (varIsFunction()) {
949
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarFunctionShadowsParentFunction('scope')), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
950
- }
951
- else {
952
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarShadowedByScopedFunction()), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
953
- }
954
- //has the same name as an in-scope class
955
- }
956
- else if (classMap.has(lowerVarName)) {
957
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarSameNameAsClass((_a = classMap.get(lowerVarName)) === null || _a === void 0 ? void 0 : _a.item.getName(Parser_1.ParseMode.BrighterScript))), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
958
- }
959
- }
960
- }
961
- }
962
- /**
963
- * Create diagnostics for any duplicate function declarations
964
- */
965
- diagnosticFindDuplicateFunctionDeclarations(callableContainersByLowerName) {
966
- //for each list of callables with the same name
967
- for (let [lowerName, callableContainers] of callableContainersByLowerName) {
968
- let globalCallables = [];
969
- let nonGlobalCallables = [];
970
- let ownCallables = [];
971
- let ancestorNonGlobalCallables = [];
972
- for (let container of callableContainers) {
973
- if (container.scope === this.program.globalScope) {
974
- globalCallables.push(container);
975
- }
976
- else {
977
- nonGlobalCallables.push(container);
978
- if (container.scope === this) {
979
- ownCallables.push(container);
980
- }
981
- else {
982
- ancestorNonGlobalCallables.push(container);
983
- }
984
- }
985
- }
986
- //add info diagnostics about child shadowing parent functions
987
- if (ownCallables.length > 0 && ancestorNonGlobalCallables.length > 0) {
988
- for (let container of ownCallables) {
989
- //skip the init function (because every component will have one of those){
990
- if (lowerName !== 'init') {
991
- let shadowedCallable = ancestorNonGlobalCallables[ancestorNonGlobalCallables.length - 1];
992
- if (!!shadowedCallable && shadowedCallable.callable.file === container.callable.file) {
993
- //same file: skip redundant imports
994
- continue;
995
- }
996
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.overridesAncestorFunction(container.callable.name, container.scope.name, shadowedCallable.callable.file.destPath,
997
- //grab the last item in the list, which should be the closest ancestor's version
998
- shadowedCallable.scope.name)), { range: container.callable.nameRange, file: container.callable.file, origin: interfaces_1.DiagnosticOrigin.Scope }));
999
- }
1000
- }
1001
- }
1002
- //add error diagnostics about duplicate functions in the same scope
1003
- if (ownCallables.length > 1) {
1004
- for (let callableContainer of ownCallables) {
1005
- let callable = callableContainer.callable;
1006
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateFunctionImplementation(callable.name, callableContainer.scope.name)), { range: util_1.util.createRange(callable.nameRange.start.line, callable.nameRange.start.character, callable.nameRange.start.line, callable.nameRange.end.character), file: callable.file, origin: interfaces_1.DiagnosticOrigin.Scope }));
1007
- }
1008
- }
1009
- }
1010
- }
1011
780
  /**
1012
781
  * Get the list of all script imports for this scope
1013
782
  */
@@ -1023,35 +792,6 @@ class Scope {
1023
792
  });
1024
793
  return result;
1025
794
  }
1026
- /**
1027
- * Verify that all of the scripts imported by each file in this scope actually exist
1028
- */
1029
- diagnosticValidateScriptImportPaths() {
1030
- let scriptImports = this.getOwnScriptImports();
1031
- //verify every script import
1032
- for (let scriptImport of scriptImports) {
1033
- let referencedFile = this.getFileByRelativePath(scriptImport.destPath);
1034
- //if we can't find the file
1035
- if (!referencedFile) {
1036
- //skip the default bslib file, it will exist at transpile time but should not show up in the program during validation cycle
1037
- if (scriptImport.destPath === this.program.bslibPkgPath) {
1038
- continue;
1039
- }
1040
- let dInfo;
1041
- if (scriptImport.text.trim().length === 0) {
1042
- dInfo = DiagnosticMessages_1.DiagnosticMessages.scriptSrcCannotBeEmpty();
1043
- }
1044
- else {
1045
- dInfo = DiagnosticMessages_1.DiagnosticMessages.referencedFileDoesNotExist();
1046
- }
1047
- this.diagnostics.push(Object.assign(Object.assign({}, dInfo), { range: scriptImport.filePathRange, file: scriptImport.sourceFile, origin: interfaces_1.DiagnosticOrigin.Scope }));
1048
- //if the character casing of the script import path does not match that of the actual path
1049
- }
1050
- else if (scriptImport.destPath !== referencedFile.destPath) {
1051
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.scriptImportCaseMismatch(referencedFile.destPath)), { range: scriptImport.filePathRange, file: scriptImport.sourceFile, origin: interfaces_1.DiagnosticOrigin.Scope }));
1052
- }
1053
- }
1054
- }
1055
795
  /**
1056
796
  * Find the file with the specified relative path
1057
797
  */
package/dist/Scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,6BAA6B;AAC7B,iCAA0B;AAC1B,6CAAgD;AAIhD,4CAA4C;AAC5C,iCAA8B;AAC9B,mCAAgC;AAChC,qCAAoC;AAGpC,sDAAsI;AACtI,+CAA4C;AAI5C,yDAAsD;AACtD,yDAA6D;AAC7D,iDAAqD;AACrD,uEAAoE;AAGpE;;;GAGG;AACH,yBAAW,CAAC,oBAAoB,GAAG,oCAAoB,CAAC;AACxD,yBAAW,CAAC,gBAAgB,GAAG,4BAAgB,CAAC;AAEhD;;GAEG;AACH,MAAa,KAAK;IACd,YACW,IAAY,EACZ,OAAgB,EACf,mBAA4B;QAF7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QACf,wBAAmB,GAAnB,mBAAmB,CAAS;QAa9B,UAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QA4V9B;;WAEG;QACO,gBAAW,GAAG,EAA8B,CAAC;QAoYvD;;WAEG;QACK,+BAA0B,GAAG,EAAE,CAAC;QAEhC,8BAAyB,GAAgE,EAAE,CAAC;QAnvBhG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,uCAAuC;QACvC,IAAI,CAAC,sBAAsB,GAAG,UAAU,eAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1E,CAAC;IAUD,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAW,eAAe;QACtB,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACnC,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACrC,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,CAAC,WAAW,CAAC;gBAC1D,IAAI,CAAC,iBAAiB,EAAE;oBACpB,MAAM;iBACT;aACJ;SACJ;QACD,IAAI,CAAC,iBAAiB,EAAE;YACpB,2BAA2B;YAC3B,4FAA4F;YAC5F,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,IAAY,EAAE,mBAA4B;QAC1D,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QAEpC,IAAI,EAAsB,CAAC;QAC3B,IAAI,mBAAmB,EAAE;YACrB,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;SACzE;QACD,0FAA0F;QAC1F,IAAI,CAAC,EAAE,EAAE;YACL,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC9B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,QAAgB,EAAE,mBAA4B;QACvE,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,mBAAmB,EAAE;YACrB,UAAU,GAAG,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC;SACrE;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,SAAiB,EAAE,mBAA4B;;QAC3D,OAAO,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,0CAAE,IAAI,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,SAAiB,EAAE,mBAA4B;;QAC/D,OAAO,MAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,CAAC,0CAAE,IAAI,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,QAAgB,EAAE,mBAA4B;;QACzD,OAAO,MAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,CAAC,0CAAE,IAAI,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,SAAiB,EAAE,mBAA4B;QACnE,MAAM,cAAc,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAClB,WAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,CAAC,CACtF,CAAC;QACF,mGAAmG;QACnG,IAAI,CAAC,GAAG,EAAE;YACN,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACtC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,SAAiB,EAAE,mBAA4B;QACvE,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAExC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CACpB,WAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,CAAC,CACjF,CAAC;QACF,mGAAmG;QACnG,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACnC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,QAAgB,EAAE,mBAA4B;QACjE,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CACzB,WAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,CAAC,CACjF,CAAC;QACF,iGAAiG;QACjG,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACxC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,qBAAqB,CAAC,cAAsB,EAAE,mBAA4B;;QAC7E,IAAI,cAAc,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,UAAU,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,SAAS,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CACzB,WAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,CAAC,CACjF,CAAC;QACF,iGAAiG;QACjG,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACxC;QACD,IAAI,WAAW,EAAE;YACb,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAsB,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,IAAA,kCAAqB,EAAC,KAAK,CAAC,IAAI,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,WAAW,EAAE,MAAK,UAAU,CAAA,EAAA,CAAC,CAAC;YAClJ,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACxE;IACL,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,SAAiB,EAAE,mBAA4B;QACnE,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CACrB,WAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,EAAE,CAAC,CACjF,CAAC;QACF,yGAAyG;QACzG,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,eAAe,CAAC,IAAY,EAAE,mBAA4B,EAAE,kCAAkC,GAAG,KAAK;;QACzG,IAAI,KAAK,GAA0B,EAAE,CAAC;QAEtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,CAAC,EACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,EACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAChD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrD,IAAI,kCAAkC,IAAI,mBAAmB,EAAE;YAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAClC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACzE,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,IAAG,CAAC,EAAE;YACxB,MAAM,yBAAyB,GAAG,MAAA,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,0CAAE,MAAM,IAAG,CAAC,CAAA,EAAA,CAAC,0CAAG,CAAC,CAAC,CAAC;YACtH,IAAI,yBAAyB,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,mBAAmB,0CAAG,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,IAAe,EAAE,CAAC,CAAC;aAC/H;SACJ;QACD,MAAM,aAAa,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpG,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,kCAAkC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,KAAK,aAAa,EAAE;gBAC9I,wDAAwD;gBACxD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAe,EAAE,CAAC,CAAC;aACpF;SACJ;QACD,qBAAqB;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;YACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBAC1C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;oBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;iBAC7D;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,SAAiB,EAAE,aAAsB;QACrD,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,SAAiB,EAAE,aAAsB;QACzD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,QAAgB,EAAE,aAAsB;QACnD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoC,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;oBACjB,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE;wBACpD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;wBACxD,kFAAkF;wBAClF,IAAI,SAAS,EAAE;4BACX,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC/D;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;oBACjB,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,EAAE;wBAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;wBAC1D,kFAAkF;wBAClF,IAAI,SAAS,EAAE;4BACX,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBACjE;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmC,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,cAAc,EAAE;oBACxD,8EAA8E;oBAC9E,IAAI,QAAQ,CAAC,QAAQ,EAAE;wBACnB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC5E;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoC,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE;oBACrD,8EAA8E;oBAC9E,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBACpE;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAOS,qBAAqB,CAAC,KAA6B;QACzD,IAAI,CAAC,QAAQ,CAAC,6CAA6C,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,OAAO;;QACV,MAAA,IAAI,CAAC,8BAA8B,oDAAI,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,aAAqB;QACzC,IAAI,kBAAkB,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,EAAE;gBAC9D,IAAI,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1D,IAAI,sBAAsB,KAAK,kBAAkB,IAAI,sBAAsB,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,EAAE;oBAC9G,OAAO,IAAI,CAAC;iBACf;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,cAAc;QACjB,IAAI,KAAwB,CAAC;QAC7B,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;YACnC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpC;QACD,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,gFAAgF;YAChF,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAQM,qBAAqB,CAAC,eAAgC;QACzD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACzC;QAED,wEAAwE;QACxE,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpI,kDAAkD;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAwB,QAAgB,EAAE,aAAa,GAAG,IAAI;QACxE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,GAAG,GAAgD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5G,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;aAC7C;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,GAAG,CACV,CAAC,aAAa,CAAC,CAAC,CAAC,WAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CACnE,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,wHAAwH;QACxH,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3C,IAAI,MAAM,GAAG,EAAe,CAAC;YAC7B,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpF,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE;gBACjC,+BAA+B;gBAC/B,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACrC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC5E,IAAI,IAAI,EAAE;wBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5C,IAAI,IAAI,EAAE;wBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACrB;iBACJ;aACJ;YACD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,cAAc;QACjB,4CAA4C;QAC5C,MAAM,WAAW,GAAmB;YAChC,kCAAkC;YAClC,GAAG,IAAI,CAAC,WAAW;YACnB,gCAAgC;YAChC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,WAAW,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC,IAAI,EAAE;SAC7D;YACG,yDAAyD;aACxD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,OAAO,CAAC,WAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACP,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,cAAc,CAAC,WAAqC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,kCAAkC;QAClC,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,WAAW,EAAE;YACb,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;SACxE;aAAM;YACH,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SACtC;IACL,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAC5B,IAAI,CAAC,WAAW,EAAE,CACrB,CAAC;IACN,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;;YAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC3C,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;gBACzC,MAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,0CAAE,WAAW,EAAE,CAAC;gBACxF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,CAAC,GAAG;gBACN,+DAA+D;gBAC/D,MAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,0CAAE,WAAW,EAAE,EAC5C,QAAQ,CAAC,QAAQ,CACpB,CAAC;aACL;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,uBAAuB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACpD,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvC,uFAAuF;YACvF,iDAAiD;YACjD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtC,cAAc;gBACd,IAAI,KAAK,GAAG,KAAK,EAAE;oBACf,OAAO,CAAC,CAAC,CAAC;iBACb;qBAAM,IAAI,KAAK,GAAG,KAAK,EAAE;oBACtB,OAAO,CAAC,CAAC;iBACZ;gBACD,uBAAuB;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9B,IAAI,KAAK,GAAG,KAAK,EAAE;oBACf,OAAO,CAAC,CAAC,CAAC;iBACb;qBAAM,IAAI,KAAK,GAAG,KAAK,EAAE;oBACtB,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,gEAAgE;YAChE,OAAO,WAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAAiC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,kCAAkC;YAClC,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAClB;SACJ;IACL,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAAiC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,kDAAkD;YAClD,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC1D,QAAQ,CAAC,IAAI,CAAC,CAAC;aAClB;SACJ;IACL,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,IAAI,MAAM,GAAG,EAAyB,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE1F,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;gBACjB,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;oBACjC,MAAM,CAAC,IAAI,CAAC;wBACR,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,IAAI;qBACd,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,UAAmC,EAAE,SAAS,EAAE,IAAI,EAAE;QAC9E,IAAI,eAAe,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC5D,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC;YAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE5D,KAAK,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,IAAI,mBAAmB,EAAE;gBACjE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;oBAC1C,MAAM,iBAAiB,mCAChB,WAAW,KACd,mBAAmB,EAAE,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,EACzD,WAAW,EAAE,IAAI,yBAAW,CAAC,yBAAyB,WAAW,CAAC,QAAQ,GAAG,CAAC,GACjF,CAAC;oBAEF,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBACxE,eAAe,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;iBAC9D;qBAAM;oBACH,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAClE,iBAAiB,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;oBACpH,iBAAiB,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;oBACpH,iBAAiB,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,cAAc,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;oBACjH,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC7H,iBAAiB,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;oBACrG,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAC/E,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;iBAC3E;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEM,yBAAyB;QAC5B,IAAI,MAAM,GAAG,EAA0B,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,QAAQ,CAAC,GAAG,IAAW;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,CAAC;IACpE,CAAC;IAGM,QAAQ,CAAC,oBAA4C,EAAE,KAAK,EAAE,KAAK,EAAE;QACxE,2DAA2D;QAC3D,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;SACV;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,EAAE,GAAG,EAAE;YAEvF,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAExC,gDAAgD;YAChD,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,KAAK,EAAE;gBAClD,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;gBACrD,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;aAC3C;YACD,wEAAwE;YACxE,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,sHAAsH;YACtH,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,kBAAkB,GAAG;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI;gBACX,YAAY,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY;gBAC7C,cAAc,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,cAAc;aACpD,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;YACpE,oFAAoF;YACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAExB,IAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B,CAAC,UAAmB;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAgB,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;IACzI,CAAC;IAED,gCAAgC,CAAC,IAAa;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAgB,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;IAC3J,CAAC;IAED,0BAA0B;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAgB,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED;;OAEG;IACI,UAAU;QACZ,IAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QAClC,+FAA+F;QAC/F,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;;YAC3C,MAAM,MAAM,GAAG,IAAI,yBAAW,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,cAAc,EAAE,0CAAE,WAAW,CAAA,EAAA,CAAC,CAAC;YAClG,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,2CAAoB,EAAE,iCAAyB,CAAC;YACrF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACjC,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;oBACjB,MAAM,CAAC,gBAAgB,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,CAAC,CAAC;iBACrD;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IASD;;;;;;;;;;;;;;;;;;OAkBG;IACI,eAAe;;QAClB,yBAAW,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACnC,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CACrE,CAAC;aACL;SACJ;QACD,qDAAqD;QACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;QAEvD,sCAAsC;QACtC,IAAI,cAAc,GAAG,EAAE,KAAK,EAAE,gEAAgD,EAAE,CAAC;QACjF,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtD,IAAI,aAAa,GAAY,IAAI,CAAC;YAClC,IAAI,YAAY,GAAY,IAAI,CAAC;YACjC,MAAM,cAAc,GAAG,MAAA,WAAW,CAAC,mBAAmB,0CAAG,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;gBACzB,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBACpE,IAAI,CAAC,YAAY,EAAE;oBACf,sDAAsD;oBACtD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;oBAC1F,MAAM;iBACT;gBACD,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;aACzF;iBAAM;gBACH,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;aAC7F;YACD,IAAI,CAAC,IAAA,4BAAe,EAAC,aAAa,CAAC,EAAE;gBACjC,IAAI,CAAC,aAAa,IAAI,IAAA,4BAAe,EAAC,aAAa,CAAC,IAAI,IAAA,2BAAc,EAAC,aAAa,CAAC,EAAE;oBACnF,aAAa,GAAG,cAAc;wBAC1B,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC;wBACxC,CAAC,CAAC,IAAI,6BAAa,CAAC,MAAM,CAAC,CAAC;oBAChC,IAAI,YAAY,EAAE;wBACd,oCAAoC;wBACpC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;wBACxH,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;qBACpJ;yBAAM;wBACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;wBAC5H,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;qBACvI;iBACJ;qBAAM;oBACH,gEAAgE;oBAChE,SAAS;iBACZ;aACJ;iBAAM;gBACH,2BAA2B;aAC9B;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAClC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;aAClD;YAED,KAAK,IAAI,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE;gBAChD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAChC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAC/D,CAAC;aACL;YAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAChC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAChE,CAAC;SACL;IACL,CAAC;IAEM,iBAAiB;QACpB,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,yBAAyB,EAAE;YACzD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACnD,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,mBAAmB;QACtB,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACzC;iBAAM,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD;;OAEG;IACI,qBAAqB,CAAC,YAAoB;QAC7C,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,EAAE;gBAC5D,OAAO,IAAI,CAAC;aACf;SACJ;IACL,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,IAAa;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,SAAiB,EAAE,iBAA0B;;QAClE,IAAI,KAAK,GAAG,EAAgC,CAAC;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/D,OAAO,IAAI,EAAE;YACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,eAAe,0CAAE,OAAO,EAAE,0CAAE,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;SACxG;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAj5BD,sBAi5BC"}
@@ -3,14 +3,7 @@ import type { ExtraSymbolData, GetTypeOptions } from './interfaces';
3
3
  import { CacheVerifier } from './CacheVerifier';
4
4
  import type { ReferenceType } from './types/ReferenceType';
5
5
  import type { UnionType } from './types/UnionType';
6
- export declare enum SymbolTypeFlag {
7
- runtime = 1,
8
- typetime = 2,
9
- optional = 4,
10
- private = 8,
11
- protected = 16,
12
- postTranspile = 32
13
- }
6
+ import type { SymbolTypeFlag } from './SymbolTypeFlag';
14
7
  /**
15
8
  * Stores the types associated with variables and functions in the Brighterscript code
16
9
  * Can be part of a hierarchy, so lookups can reference parent scopes
@@ -1,18 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SymbolTable = exports.SymbolTypeFlag = void 0;
3
+ exports.SymbolTable = void 0;
4
4
  const CacheVerifier_1 = require("./CacheVerifier");
5
5
  const helpers_1 = require("./types/helpers");
6
6
  const reflection_1 = require("./astUtils/reflection");
7
- var SymbolTypeFlag;
8
- (function (SymbolTypeFlag) {
9
- SymbolTypeFlag[SymbolTypeFlag["runtime"] = 1] = "runtime";
10
- SymbolTypeFlag[SymbolTypeFlag["typetime"] = 2] = "typetime";
11
- SymbolTypeFlag[SymbolTypeFlag["optional"] = 4] = "optional";
12
- SymbolTypeFlag[SymbolTypeFlag["private"] = 8] = "private";
13
- SymbolTypeFlag[SymbolTypeFlag["protected"] = 16] = "protected";
14
- SymbolTypeFlag[SymbolTypeFlag["postTranspile"] = 32] = "postTranspile";
15
- })(SymbolTypeFlag = exports.SymbolTypeFlag || (exports.SymbolTypeFlag = {}));
16
7
  /**
17
8
  * Stores the types associated with variables and functions in the Brighterscript code
18
9
  * Can be part of a hierarchy, so lookups can reference parent scopes