brighterscript 1.0.0-alpha.15 → 1.0.0-alpha.18

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 (163) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +28 -9
  3. package/dist/DependencyGraph.js +5 -4
  4. package/dist/DependencyGraph.js.map +1 -1
  5. package/dist/DiagnosticMessages.d.ts +16 -1
  6. package/dist/DiagnosticMessages.js +15 -0
  7. package/dist/DiagnosticMessages.js.map +1 -1
  8. package/dist/Logger.js +5 -5
  9. package/dist/Logger.js.map +1 -1
  10. package/dist/Program.d.ts +2 -2
  11. package/dist/Program.js +5 -3
  12. package/dist/Program.js.map +1 -1
  13. package/dist/ProgramBuilder.js +1 -1
  14. package/dist/ProgramBuilder.js.map +1 -1
  15. package/dist/Scope.d.ts +58 -8
  16. package/dist/Scope.js +142 -23
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/XmlScope.js +1 -1
  19. package/dist/XmlScope.js.map +1 -1
  20. package/dist/astUtils/creators.d.ts +10 -6
  21. package/dist/astUtils/creators.js +93 -12
  22. package/dist/astUtils/creators.js.map +1 -1
  23. package/dist/astUtils/creators.spec.js +10 -0
  24. package/dist/astUtils/creators.spec.js.map +1 -1
  25. package/dist/astUtils/reflection.d.ts +8 -3
  26. package/dist/astUtils/reflection.js +18 -2
  27. package/dist/astUtils/reflection.js.map +1 -1
  28. package/dist/astUtils/reflection.spec.js +15 -4
  29. package/dist/astUtils/reflection.spec.js.map +1 -1
  30. package/dist/astUtils/visitors.d.ts +4 -1
  31. package/dist/astUtils/visitors.js.map +1 -1
  32. package/dist/astUtils/visitors.spec.js +2 -0
  33. package/dist/astUtils/visitors.spec.js.map +1 -1
  34. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -2
  35. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  36. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +7 -3
  37. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  38. package/dist/{types/FunctionType.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  39. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +32 -0
  40. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  41. package/dist/diagnosticUtils.js +3 -3
  42. package/dist/diagnosticUtils.js.map +1 -1
  43. package/dist/examples/plugins/removePrint.js +12 -14
  44. package/dist/examples/plugins/removePrint.js.map +1 -1
  45. package/dist/files/BrsFile.Class.spec.js +3 -3
  46. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  47. package/dist/files/BrsFile.d.ts +2 -2
  48. package/dist/files/BrsFile.js +99 -63
  49. package/dist/files/BrsFile.js.map +1 -1
  50. package/dist/files/BrsFile.spec.js +187 -67
  51. package/dist/files/BrsFile.spec.js.map +1 -1
  52. package/dist/files/XmlFile.js +3 -3
  53. package/dist/files/XmlFile.js.map +1 -1
  54. package/dist/globalCallables.js +79 -79
  55. package/dist/globalCallables.js.map +1 -1
  56. package/dist/interfaces.d.ts +43 -4
  57. package/dist/parser/Expression.d.ts +91 -22
  58. package/dist/parser/Expression.js +191 -57
  59. package/dist/parser/Expression.js.map +1 -1
  60. package/dist/parser/Parser.Class.spec.js +6 -6
  61. package/dist/parser/Parser.Class.spec.js.map +1 -1
  62. package/dist/parser/Parser.d.ts +3 -6
  63. package/dist/parser/Parser.js +166 -155
  64. package/dist/parser/Parser.js.map +1 -1
  65. package/dist/parser/Parser.spec.js +61 -6
  66. package/dist/parser/Parser.spec.js.map +1 -1
  67. package/dist/parser/SGTypes.d.ts +2 -2
  68. package/dist/parser/SGTypes.js +2 -2
  69. package/dist/parser/SGTypes.js.map +1 -1
  70. package/dist/parser/Statement.d.ts +85 -57
  71. package/dist/parser/Statement.js +228 -173
  72. package/dist/parser/Statement.js.map +1 -1
  73. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  74. package/dist/parser/tests/statement/For.spec.js +46 -0
  75. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  76. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  77. package/dist/parser/tests/statement/ForEach.spec.js +37 -0
  78. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  79. package/dist/parser/tests/statement/InterfaceStatement.spec.js +181 -0
  80. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  81. package/dist/parser/tests/statement/TryCatch.spec.js +7 -5
  82. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  83. package/dist/types/ArrayType.js +4 -1
  84. package/dist/types/ArrayType.js.map +1 -1
  85. package/dist/types/ArrayType.spec.js +3 -1
  86. package/dist/types/ArrayType.spec.js.map +1 -1
  87. package/dist/types/BooleanType.d.ts +4 -2
  88. package/dist/types/BooleanType.js +7 -2
  89. package/dist/types/BooleanType.js.map +1 -1
  90. package/dist/types/BooleanType.spec.js +3 -1
  91. package/dist/types/BooleanType.spec.js.map +1 -1
  92. package/dist/types/BscType.d.ts +1 -0
  93. package/dist/types/BscType.js +16 -1
  94. package/dist/types/BscType.js.map +1 -1
  95. package/dist/types/CustomType.js +10 -0
  96. package/dist/types/CustomType.js.map +1 -1
  97. package/dist/types/DoubleType.d.ts +2 -0
  98. package/dist/types/DoubleType.js +7 -2
  99. package/dist/types/DoubleType.js.map +1 -1
  100. package/dist/types/DoubleType.spec.js +3 -1
  101. package/dist/types/DoubleType.spec.js.map +1 -1
  102. package/dist/types/DynamicType.d.ts +2 -0
  103. package/dist/types/DynamicType.js +5 -1
  104. package/dist/types/DynamicType.js.map +1 -1
  105. package/dist/types/FloatType.d.ts +3 -1
  106. package/dist/types/FloatType.js +7 -2
  107. package/dist/types/FloatType.js.map +1 -1
  108. package/dist/types/FloatType.spec.js +2 -0
  109. package/dist/types/FloatType.spec.js.map +1 -1
  110. package/dist/types/FunctionType.d.ts +3 -21
  111. package/dist/types/FunctionType.js +8 -65
  112. package/dist/types/FunctionType.js.map +1 -1
  113. package/dist/types/IntegerType.d.ts +3 -1
  114. package/dist/types/IntegerType.js +7 -2
  115. package/dist/types/IntegerType.js.map +1 -1
  116. package/dist/types/IntegerType.spec.js +3 -1
  117. package/dist/types/IntegerType.spec.js.map +1 -1
  118. package/dist/types/InterfaceType.d.ts +13 -10
  119. package/dist/types/InterfaceType.js +33 -29
  120. package/dist/types/InterfaceType.js.map +1 -1
  121. package/dist/types/InterfaceType.spec.js +36 -16
  122. package/dist/types/InterfaceType.spec.js.map +1 -1
  123. package/dist/types/InvalidType.d.ts +4 -2
  124. package/dist/types/InvalidType.js +7 -2
  125. package/dist/types/InvalidType.js.map +1 -1
  126. package/dist/types/InvalidType.spec.js +2 -0
  127. package/dist/types/InvalidType.spec.js.map +1 -1
  128. package/dist/types/LazyType.js +4 -0
  129. package/dist/types/LazyType.js.map +1 -1
  130. package/dist/types/LongIntegerType.d.ts +3 -1
  131. package/dist/types/LongIntegerType.js +7 -2
  132. package/dist/types/LongIntegerType.js.map +1 -1
  133. package/dist/types/LongIntegerType.spec.js +2 -0
  134. package/dist/types/LongIntegerType.spec.js.map +1 -1
  135. package/dist/types/ObjectType.d.ts +2 -1
  136. package/dist/types/ObjectType.js +4 -2
  137. package/dist/types/ObjectType.js.map +1 -1
  138. package/dist/types/StringType.d.ts +4 -2
  139. package/dist/types/StringType.js +7 -2
  140. package/dist/types/StringType.js.map +1 -1
  141. package/dist/types/StringType.spec.js +2 -0
  142. package/dist/types/StringType.spec.js.map +1 -1
  143. package/dist/types/TypedFunctionType.d.ts +28 -0
  144. package/dist/types/TypedFunctionType.js +88 -0
  145. package/dist/types/TypedFunctionType.js.map +1 -0
  146. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  147. package/dist/types/TypedFunctionType.spec.js +37 -0
  148. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  149. package/dist/types/UninitializedType.js.map +1 -1
  150. package/dist/types/VoidType.d.ts +4 -2
  151. package/dist/types/VoidType.js +5 -1
  152. package/dist/types/VoidType.js.map +1 -1
  153. package/dist/types/helpers.js +7 -2
  154. package/dist/types/helpers.js.map +1 -1
  155. package/dist/util.d.ts +2 -2
  156. package/dist/util.js +39 -46
  157. package/dist/util.js.map +1 -1
  158. package/dist/validators/ClassValidator.d.ts +14 -1
  159. package/dist/validators/ClassValidator.js +129 -82
  160. package/dist/validators/ClassValidator.js.map +1 -1
  161. package/package.json +2 -3
  162. package/dist/types/FunctionType.spec.js +0 -29
  163. package/dist/types/FunctionType.spec.js.map +0 -1
@@ -2,17 +2,22 @@ import type { Scope } from '../Scope';
2
2
  import type { BsDiagnostic } from '../interfaces';
3
3
  import type { BrsFile } from '../files/BrsFile';
4
4
  import type { TypeContext } from '../types/BscType';
5
- export declare class BsClassValidator {
5
+ export declare class BsClassValidator implements BsClassValidator {
6
6
  private scope;
7
7
  private file;
8
8
  diagnostics: BsDiagnostic[];
9
9
  private classes;
10
+ private interfaces;
10
11
  get typeContext(): TypeContext;
11
12
  validate(scope: Scope, file: BrsFile): void;
12
13
  /**
13
14
  * Given a class name optionally prefixed with a namespace name, find the class that matches
14
15
  */
15
16
  private getClassByName;
17
+ /**
18
+ * Given an interface name optionally prefixed with a namespace name, find the interface that matches
19
+ */
20
+ private getInterfaceByName;
16
21
  /**
17
22
  * Find all "new" statements in the program,
18
23
  * and make sure we can find a class with that name
@@ -20,7 +25,12 @@ export declare class BsClassValidator {
20
25
  private verifyNewExpressions;
21
26
  private findNamespaceNonNamespaceCollisions;
22
27
  private verifyChildConstructor;
28
+ private isMemberFieldStatement;
29
+ private isMemberMethodStatement;
30
+ private isMemberStatement;
31
+ private validateMemberCollisionsForStatements;
23
32
  private validateMemberCollisions;
33
+ private validateFieldTypesForStatements;
24
34
  /**
25
35
  * Check the types for fields, and validate they are valid types
26
36
  */
@@ -30,6 +40,9 @@ export declare class BsClassValidator {
30
40
  */
31
41
  private getAncestorMember;
32
42
  private cleanUp;
43
+ private findStatements;
33
44
  private findClasses;
45
+ private findInterfaces;
46
+ private linkWithParents;
34
47
  private linkClassesWithParents;
35
48
  }
@@ -20,6 +20,7 @@ class BsClassValidator {
20
20
  this.file = file;
21
21
  this.diagnostics = [];
22
22
  this.findClasses();
23
+ this.findInterfaces();
23
24
  this.findNamespaceNonNamespaceCollisions();
24
25
  this.linkClassesWithParents();
25
26
  this.validateMemberCollisions();
@@ -40,6 +41,18 @@ class BsClassValidator {
40
41
  }
41
42
  return cls;
42
43
  }
44
+ /**
45
+ * Given an interface name optionally prefixed with a namespace name, find the interface that matches
46
+ */
47
+ getInterfaceByName(ifaceName, namespaceName) {
48
+ let fullName = util_1.default.getFullyQualifiedClassName(ifaceName, namespaceName);
49
+ let iface = this.interfaces.get(fullName.toLowerCase());
50
+ //if we couldn't find the interface by its full namespaced name, look for a global interface with that name
51
+ if (!iface) {
52
+ iface = this.interfaces.get(ifaceName.toLowerCase());
53
+ }
54
+ return iface;
55
+ }
43
56
  /**
44
57
  * Find all "new" statements in the program,
45
58
  * and make sure we can find a class with that name
@@ -78,6 +91,16 @@ class BsClassValidator {
78
91
  }] }));
79
92
  }
80
93
  }
94
+ for (const [ifaceName, ifaceStatement] of this.interfaces) {
95
+ //catch namespace class collision with global class
96
+ let nonNamespaceInterface = this.interfaces.get(util_1.default.getTextAfterFinalDot(ifaceName).toLowerCase());
97
+ if (ifaceStatement.namespaceName && nonNamespaceInterface) {
98
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.namespacedInterfaceCannotShareNameWithNonNamespacedInterface(nonNamespaceInterface.tokens.name.text)), { file: ifaceStatement.file, range: ifaceStatement.tokens.name.range, relatedInformation: [{
99
+ location: vscode_languageserver_1.Location.create(vscode_uri_1.URI.file(nonNamespaceInterface.file.srcPath).toString(), nonNamespaceInterface.tokens.name.range),
100
+ message: 'Original interface declared here'
101
+ }] }));
102
+ }
103
+ }
81
104
  }
82
105
  verifyChildConstructor() {
83
106
  for (const [, classStatement] of this.classes) {
@@ -86,7 +109,7 @@ class BsClassValidator {
86
109
  //this class has a "new method"
87
110
  newMethod &&
88
111
  //this class has a parent class
89
- classStatement.parentClass) {
112
+ classStatement.parent) {
90
113
  //prevent use of `m.` anywhere before the `super()` call
91
114
  const cancellationToken = new vscode_languageserver_1.CancellationTokenSource();
92
115
  let superCall;
@@ -114,42 +137,51 @@ class BsClassValidator {
114
137
  }
115
138
  }
116
139
  }
117
- validateMemberCollisions() {
140
+ isMemberFieldStatement(stmt) {
141
+ return (0, reflection_1.isClassFieldStatement)(stmt) || (0, reflection_1.isInterfaceFieldStatement)(stmt);
142
+ }
143
+ isMemberMethodStatement(stmt) {
144
+ return (0, reflection_1.isClassMethodStatement)(stmt) || (0, reflection_1.isInterfaceMethodStatement)(stmt);
145
+ }
146
+ isMemberStatement(stmt) {
147
+ return this.isMemberFieldStatement(stmt) || this.isMemberMethodStatement(stmt);
148
+ }
149
+ validateMemberCollisionsForStatements(map) {
118
150
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
119
- for (const [, classStatement] of this.classes) {
151
+ for (const [, bodyStatement] of map) {
120
152
  let methods = {};
121
153
  let fields = {};
122
- for (let statement of classStatement.body) {
123
- if ((0, reflection_1.isClassMethodStatement)(statement) || (0, reflection_1.isClassFieldStatement)(statement)) {
154
+ for (let statement of bodyStatement.body) {
155
+ if (this.isMemberStatement(statement)) {
124
156
  let member = statement;
125
157
  let lowerMemberName = member.name.text.toLowerCase();
126
158
  //catch duplicate member names on same class
127
159
  if (methods[lowerMemberName] || fields[lowerMemberName]) {
128
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier(member.name.text)), { file: classStatement.file, range: member.name.range }));
160
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier(member.name.text)), { file: bodyStatement.file, range: member.name.range }));
129
161
  }
130
- let memberType = (0, reflection_1.isClassFieldStatement)(member) ? 'field' : 'method';
131
- let ancestorAndMember = this.getAncestorMember(classStatement, lowerMemberName);
162
+ let memberType = this.isMemberFieldStatement(member) ? 'field' : 'method';
163
+ let ancestorAndMember = this.getAncestorMember(bodyStatement, lowerMemberName);
132
164
  if (ancestorAndMember) {
133
- let ancestorMemberKind = (0, reflection_1.isClassFieldStatement)(ancestorAndMember.member) ? 'field' : 'method';
165
+ let ancestorMemberKind = this.isMemberFieldStatement(ancestorAndMember.member) ? 'field' : 'method';
134
166
  //mismatched member type (field/method in child, opposite in ancestor)
135
167
  if (memberType !== ancestorMemberKind) {
136
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classChildMemberDifferentMemberTypeThanAncestor(memberType, ancestorMemberKind, ancestorAndMember.classStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: classStatement.file, range: member.range }));
168
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classChildMemberDifferentMemberTypeThanAncestor(memberType, ancestorMemberKind, ancestorAndMember.ancestorStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: bodyStatement.file, range: member.range }));
137
169
  }
138
170
  //child field has same name as parent
139
- if ((0, reflection_1.isClassFieldStatement)(member)) {
171
+ if (this.isMemberFieldStatement(member)) {
140
172
  let ancestorMemberType = new DynamicType_1.DynamicType();
141
- if ((0, reflection_1.isClassFieldStatement)(ancestorAndMember.member)) {
173
+ if (this.isMemberFieldStatement(ancestorAndMember.member)) {
142
174
  ancestorMemberType = ancestorAndMember.member.getType();
143
175
  }
144
- else if ((0, reflection_1.isClassMethodStatement)(ancestorAndMember.member)) {
176
+ else if (this.isMemberMethodStatement(ancestorAndMember.member)) {
145
177
  ancestorMemberType = ancestorAndMember.member.func.getFunctionType();
146
178
  }
147
179
  const childFieldType = member.getType();
148
180
  if (!childFieldType.isAssignableTo(ancestorMemberType, this.typeContext)) {
149
181
  //flag incompatible child field type to ancestor field type
150
- const childFieldTypeName = (_a = childFieldType === null || childFieldType === void 0 ? void 0 : childFieldType.toString(this.typeContext)) !== null && _a !== void 0 ? _a : (_b = member.type) === null || _b === void 0 ? void 0 : _b.text;
151
- const ancestorFieldTypeName = (_c = ancestorMemberType === null || ancestorMemberType === void 0 ? void 0 : ancestorMemberType.toString(this.typeContext)) !== null && _c !== void 0 ? _c : ancestorAndMember.member.type.text;
152
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.childFieldTypeNotAssignableToBaseProperty(classStatement.getName(Parser_1.ParseMode.BrighterScript), ancestorAndMember.classStatement.getName(Parser_1.ParseMode.BrighterScript), member.name.text, childFieldTypeName, ancestorFieldTypeName)), { file: classStatement.file, range: member.range }));
182
+ const childFieldTypeName = (_a = childFieldType === null || childFieldType === void 0 ? void 0 : childFieldType.toString(this.typeContext)) !== null && _a !== void 0 ? _a : (_b = member.type) === null || _b === void 0 ? void 0 : _b.getText();
183
+ const ancestorFieldTypeName = (_c = ancestorMemberType === null || ancestorMemberType === void 0 ? void 0 : ancestorMemberType.toString(this.typeContext)) !== null && _c !== void 0 ? _c : ancestorAndMember.member.type.getText();
184
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.childFieldTypeNotAssignableToBaseProperty(bodyStatement.getName(Parser_1.ParseMode.BrighterScript), ancestorAndMember.ancestorStatement.getName(Parser_1.ParseMode.BrighterScript), member.name.text, childFieldTypeName, ancestorFieldTypeName)), { file: bodyStatement.file, range: member.range }));
153
185
  }
154
186
  }
155
187
  //child method missing the override keyword
@@ -160,86 +192,108 @@ class BsClassValidator {
160
192
  !member.override &&
161
193
  //is not the constructur function
162
194
  member.name.text.toLowerCase() !== 'new') {
163
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.missingOverrideKeyword(ancestorAndMember.classStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: classStatement.file, range: member.range }));
195
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.missingOverrideKeyword(ancestorAndMember.ancestorStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: bodyStatement.file, range: member.range }));
164
196
  }
165
197
  //child member has different visiblity
166
198
  if (
167
199
  //is a method
168
- (0, reflection_1.isClassMethodStatement)(member) &&
200
+ (0, reflection_1.isClassMethodStatement)(member) && (0, reflection_1.isClassMethodStatement)(ancestorAndMember.member) &&
169
201
  ((_e = (_d = member.accessModifier) === null || _d === void 0 ? void 0 : _d.kind) !== null && _e !== void 0 ? _e : TokenKind_1.TokenKind.Public) !== ((_g = (_f = ancestorAndMember.member.accessModifier) === null || _f === void 0 ? void 0 : _f.kind) !== null && _g !== void 0 ? _g : TokenKind_1.TokenKind.Public)) {
170
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.mismatchedOverriddenMemberVisibility(classStatement.name.text, (_h = ancestorAndMember.member.name) === null || _h === void 0 ? void 0 : _h.text, ((_j = member.accessModifier) === null || _j === void 0 ? void 0 : _j.text) || 'public', ((_k = ancestorAndMember.member.accessModifier) === null || _k === void 0 ? void 0 : _k.text) || 'public', ancestorAndMember.classStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: classStatement.file, range: member.range }));
202
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.mismatchedOverriddenMemberVisibility(bodyStatement.name.text, (_h = ancestorAndMember.member.name) === null || _h === void 0 ? void 0 : _h.text, ((_j = member.accessModifier) === null || _j === void 0 ? void 0 : _j.text) || 'public', ((_k = ancestorAndMember.member.accessModifier) === null || _k === void 0 ? void 0 : _k.text) || 'public', ancestorAndMember.ancestorStatement.getName(Parser_1.ParseMode.BrighterScript))), { file: bodyStatement.file, range: member.range }));
171
203
  }
172
204
  }
173
- if ((0, reflection_1.isClassMethodStatement)(member)) {
205
+ if (this.isMemberMethodStatement(member)) {
174
206
  methods[lowerMemberName] = member;
175
207
  }
176
- else if ((0, reflection_1.isClassFieldStatement)(member)) {
208
+ else if (this.isMemberFieldStatement(member)) {
177
209
  fields[lowerMemberName] = member;
178
210
  }
179
211
  }
180
212
  }
181
213
  }
182
214
  }
183
- /**
184
- * Check the types for fields, and validate they are valid types
185
- */
186
- validateFieldTypes() {
187
- var _a, _b, _c;
188
- for (const [, classStatement] of this.classes) {
189
- for (let statement of classStatement.body) {
190
- if ((0, reflection_1.isClassFieldStatement)(statement)) {
191
- let fieldType = (0, BscType_1.getTypeFromContext)(statement.getType(), this.typeContext);
192
- const fieldTypeName = (_a = fieldType === null || fieldType === void 0 ? void 0 : fieldType.toString(this.typeContext)) !== null && _a !== void 0 ? _a : (_b = statement.type) === null || _b === void 0 ? void 0 : _b.text;
215
+ validateMemberCollisions() {
216
+ this.validateMemberCollisionsForStatements(this.classes);
217
+ this.validateMemberCollisionsForStatements(this.interfaces);
218
+ }
219
+ validateFieldTypesForStatements(map) {
220
+ var _a, _b, _c, _d;
221
+ for (const [, statement] of map) {
222
+ for (let bodyStatement of statement.body) {
223
+ if (this.isMemberFieldStatement(bodyStatement)) {
224
+ let fieldType = (0, BscType_1.getTypeFromContext)(bodyStatement.getType(), this.typeContext);
225
+ const fieldTypeName = (_a = fieldType === null || fieldType === void 0 ? void 0 : fieldType.toString(this.typeContext)) !== null && _a !== void 0 ? _a : (_b = bodyStatement.type) === null || _b === void 0 ? void 0 : _b.getText();
193
226
  const lowerFieldTypeName = fieldTypeName === null || fieldTypeName === void 0 ? void 0 : fieldTypeName.toLowerCase();
194
227
  let addDiagnostic = false;
195
228
  if ((0, reflection_1.isCustomType)(fieldType)) {
196
229
  if (lowerFieldTypeName) {
197
- const currentNamespaceName = (_c = classStatement.namespaceName) === null || _c === void 0 ? void 0 : _c.getName(Parser_1.ParseMode.BrighterScript);
230
+ const currentNamespaceName = (_c = bodyStatement.namespaceName) === null || _c === void 0 ? void 0 : _c.getName(Parser_1.ParseMode.BrighterScript);
198
231
  //check if this custom type is in our class map
199
232
  if (!this.getClassByName(lowerFieldTypeName, currentNamespaceName)) {
200
233
  addDiagnostic = true;
201
234
  }
202
235
  }
203
236
  }
237
+ else if ((0, reflection_1.isInterfaceType)(fieldType)) {
238
+ if (lowerFieldTypeName) {
239
+ const currentNamespaceName = (_d = bodyStatement.namespaceName) === null || _d === void 0 ? void 0 : _d.getName(Parser_1.ParseMode.BrighterScript);
240
+ //check if this custom type is in our class map
241
+ if (!this.getInterfaceByName(lowerFieldTypeName, currentNamespaceName)) {
242
+ addDiagnostic = true;
243
+ }
244
+ }
245
+ }
204
246
  else if (!fieldType) {
205
247
  addDiagnostic = true;
206
248
  }
207
249
  if (addDiagnostic) {
208
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.cannotFindType(fieldTypeName)), { range: statement.type.range, file: classStatement.file }));
250
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.cannotFindType(fieldTypeName)), { range: bodyStatement.type.range, file: statement.file }));
209
251
  }
210
252
  }
211
253
  }
212
254
  }
213
255
  }
256
+ /**
257
+ * Check the types for fields, and validate they are valid types
258
+ */
259
+ validateFieldTypes() {
260
+ this.validateFieldTypesForStatements(this.classes);
261
+ this.validateFieldTypesForStatements(this.interfaces);
262
+ }
214
263
  /**
215
264
  * Get the closest member with the specified name (case-insensitive)
216
265
  */
217
266
  getAncestorMember(classStatement, memberName) {
218
267
  let lowerMemberName = memberName.toLowerCase();
219
- let ancestor = classStatement.parentClass;
268
+ let ancestor = classStatement.parent;
220
269
  while (ancestor) {
221
270
  let member = ancestor.memberMap[lowerMemberName];
222
271
  if (member) {
223
272
  return {
224
273
  member: member,
225
- classStatement: ancestor
274
+ ancestorStatement: ancestor
226
275
  };
227
276
  }
228
- ancestor = ancestor.parentClass;
277
+ ancestor = ancestor.parent;
229
278
  }
230
279
  }
231
280
  cleanUp() {
232
281
  //unlink all classes from their parents so it doesn't mess up the next scope
233
282
  for (const [, classStatement] of this.classes) {
234
- delete classStatement.parentClass;
283
+ delete classStatement.parent;
235
284
  delete classStatement.file;
236
285
  }
286
+ //unlink all interfaces from their parents so it doesn't mess up the next scope
287
+ for (const [, interfaceStatement] of this.interfaces) {
288
+ delete interfaceStatement.parent;
289
+ delete interfaceStatement.file;
290
+ }
237
291
  }
238
- findClasses() {
239
- this.classes = new Map();
292
+ findStatements(referencesFunc, dupeDiagnosticFunc) {
293
+ const map = new Map();
240
294
  this.scope.enumerateBrsFiles((file) => {
241
- var _a;
242
- for (let x of (_a = file.parser.references.classStatements) !== null && _a !== void 0 ? _a : []) {
295
+ const references = referencesFunc(file.parser.references);
296
+ for (let x of references !== null && references !== void 0 ? references : []) {
243
297
  let classStatement = x;
244
298
  let name = classStatement.getName(Parser_1.ParseMode.BrighterScript);
245
299
  //skip this class if it doesn't have a name
@@ -248,68 +302,61 @@ class BsClassValidator {
248
302
  }
249
303
  let lowerName = name.toLowerCase();
250
304
  //see if this class was already defined
251
- let alreadyDefinedClass = this.classes.get(lowerName);
305
+ let alreadyDefinedClass = map.get(lowerName);
252
306
  //if we don't already have this class, register it
253
307
  if (!alreadyDefinedClass) {
254
- this.classes.set(lowerName, classStatement);
308
+ map.set(lowerName, classStatement);
255
309
  classStatement.file = file;
256
310
  //add a diagnostic about this class already existing
257
311
  }
258
312
  else {
259
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateClassDeclaration(this.scope.name, name)), { file: file, range: classStatement.name.range, relatedInformation: [{
260
- location: vscode_languageserver_1.Location.create(vscode_uri_1.URI.file(alreadyDefinedClass.file.srcPath).toString(), this.classes.get(lowerName).range),
313
+ this.diagnostics.push(Object.assign(Object.assign({}, dupeDiagnosticFunc(this.scope.name, name)), { file: file, range: classStatement.name.range, relatedInformation: [{
314
+ location: vscode_languageserver_1.Location.create(vscode_uri_1.URI.file(alreadyDefinedClass.file.srcPath).toString(), map.get(lowerName).range),
261
315
  message: ''
262
316
  }] }));
263
317
  }
264
318
  }
265
319
  });
320
+ return map;
266
321
  }
267
- linkClassesWithParents() {
268
- var _a;
322
+ findClasses() {
323
+ this.classes = this.findStatements((references) => references.classStatements, DiagnosticMessages_1.DiagnosticMessages.duplicateClassDeclaration);
324
+ }
325
+ findInterfaces() {
326
+ this.interfaces = this.findStatements((references) => references.interfaceStatements, DiagnosticMessages_1.DiagnosticMessages.duplicateInterfaceDeclaration);
327
+ }
328
+ linkWithParents(map) {
269
329
  //link all classes with their parents
270
- for (const [, classStatement] of this.classes) {
271
- let parentClassName = (_a = classStatement.parentClassName) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
272
- if (parentClassName) {
273
- let relativeName;
274
- let absoluteName;
275
- //if the parent class name was namespaced in the declaration of this class,
276
- //compute the relative name of the parent class and the absolute name of the parent class
277
- if (parentClassName.indexOf('.') > 0) {
278
- absoluteName = parentClassName;
279
- let parts = parentClassName.split('.');
280
- relativeName = parts[parts.length - 1];
281
- //the parent class name was NOT namespaced.
282
- //compute the relative name of the parent class and prepend the current class's namespace
283
- //to the beginning of the parent class's name
284
- }
285
- else {
286
- if (classStatement.namespaceName) {
287
- absoluteName = `${classStatement.namespaceName.getName(Parser_1.ParseMode.BrighterScript)}.${parentClassName}`;
288
- }
289
- else {
290
- absoluteName = parentClassName;
291
- }
292
- relativeName = parentClassName;
293
- }
294
- let relativeParent = this.classes.get(relativeName.toLowerCase());
295
- let absoluteParent = this.classes.get(absoluteName.toLowerCase());
330
+ for (const [, classStatement] of map) {
331
+ if (classStatement.hasParent()) {
332
+ let parentNames = classStatement.getPossibleFullParentNames();
296
333
  let parentClass;
297
- //if we found a relative parent class
298
- if (relativeParent) {
299
- parentClass = relativeParent;
300
- //we found an absolute parent class
334
+ for (const parentName of parentNames) {
335
+ parentClass = map.get(parentName.toLowerCase());
336
+ if (parentClass) {
337
+ break;
338
+ }
301
339
  }
302
- else if (absoluteParent) {
303
- parentClass = absoluteParent;
304
- //couldn't find the parent class
340
+ if (parentClass) {
341
+ classStatement.parent = parentClass;
305
342
  }
306
343
  else {
307
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classCouldNotBeFound(parentClassName, this.scope.name)), { file: classStatement.file, range: classStatement.parentClassName.range }));
344
+ let parentExpression;
345
+ if ((0, reflection_1.isClassStatement)(classStatement)) {
346
+ parentExpression = classStatement.parentClassName;
347
+ }
348
+ else if ((0, reflection_1.isInterfaceStatement)(classStatement)) {
349
+ parentExpression = classStatement.parentInterfaceName;
350
+ }
351
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classCouldNotBeFound(parentExpression.getName(Parser_1.ParseMode.BrighterScript), this.scope.name)), { file: classStatement.file, range: parentExpression === null || parentExpression === void 0 ? void 0 : parentExpression.range }));
308
352
  }
309
- classStatement.parentClass = parentClass;
310
353
  }
311
354
  }
312
355
  }
356
+ linkClassesWithParents() {
357
+ this.linkWithParents(this.classes);
358
+ this.linkWithParents(this.interfaces);
359
+ }
313
360
  }
314
361
  exports.BsClassValidator = BsClassValidator;
315
362
  //# sourceMappingURL=ClassValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassValidator.js","sourceRoot":"","sources":["../../src/validators/ClassValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClassValidator.js","sourceRoot":"","sources":["../../src/validators/ClassValidator.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAE3D,6CAA6C;AAG7C,iEAA0E;AAE1E,2CAAiC;AACjC,kCAA2B;AAC3B,uDAAuO;AAEvO,mDAA+D;AAE/D,kDAA+C;AAC/C,sDAAmD;AAEnD,8CAAsD;AAItD,MAAa,gBAAgB;IAOzB,IAAI,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,KAAY,EAAE,IAAa;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,SAAiB,EAAE,aAAsB;QAC5D,IAAI,QAAQ,GAAG,cAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,mGAAmG;QACnG,IAAI,CAAC,GAAG,EAAE;YACN,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;SACnD;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;MAEE;IACM,kBAAkB,CAAC,SAAiB,EAAE,aAAsB;QAChE,IAAI,QAAQ,GAAG,cAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,2GAA2G;QAC3G,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;SACxD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,oBAAoB;QACxB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;;YAClC,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;YAC3D,KAAK,IAAI,aAAa,IAAI,cAAc,EAAE;gBACtC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;gBAC1E,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,CAClC,SAAS,EACT,MAAA,aAAa,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CACjE,CAAC;gBAEF,IAAI,CAAC,YAAY,EAAE;oBACf,wCAAwC;oBACxC,IAAI,QAAQ,GAAG,cAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAA,aAAa,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC1H,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACtD,wGAAwG;oBACxG,IAAI,QAAQ,EAAE;wBACV,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,4BAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KACvF,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IACtC,CAAC;wBAEH,uCAAuC;qBAC1C;yBAAM;wBACH,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KACtE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IACtC,CAAC;qBACN;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,mCAAmC;QACvC,KAAK,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACpD,mDAAmD;YACnD,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,IAAI,cAAc,CAAC,aAAa,IAAI,iBAAiB,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,oDAAoD,CACtE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAC9B,KACD,IAAI,EAAE,cAAc,CAAC,IAAI,EACzB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAChC,kBAAkB,EAAE,CAAC;4BACjB,QAAQ,EAAE,gCAAQ,CAAC,MAAM,CACrB,gBAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EACnD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAC/B;4BACD,OAAO,EAAE,8BAA8B;yBAC1C,CAAC,IACJ,CAAC;aACN;SACJ;QACD,KAAK,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YACvD,mDAAmD;YACnD,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACpG,IAAI,cAAc,CAAC,aAAa,IAAI,qBAAqB,EAAE;gBACvD,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,4DAA4D,CAC9E,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACzC,KACD,IAAI,EAAE,cAAc,CAAC,IAAI,EACzB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EACvC,kBAAkB,EAAE,CAAC;4BACjB,QAAQ,EAAE,gCAAQ,CAAC,MAAM,CACrB,gBAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EACvD,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAC1C;4BACD,OAAO,EAAE,kCAAkC;yBAC9C,CAAC,IACJ,CAAC;aACN;SACJ;IACL,CAAC;IAEO,sBAAsB;QAC1B,KAAK,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,GAA2B,CAAC;YAEvE;YACI,+BAA+B;YAC/B,SAAS;gBACT,+BAA+B;gBAC/B,cAAc,CAAC,MAAM,EACvB;gBACE,wDAAwD;gBACxD,MAAM,iBAAiB,GAAG,IAAI,+CAAuB,EAAE,CAAC;gBACxD,IAAI,SAAyB,CAAC;gBAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,wBAAa,EAAC;oBACnC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;;wBACvC,MAAM,mBAAmB,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,0CAAE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjE,IAAI,mBAAmB,KAAK,GAAG,EAAE;4BAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,4CAA4C,EAAE,KACpE,IAAI,EAAE,cAAc,CAAC,IAAI,EACzB,KAAK,EAAE,UAAU,CAAC,KAAK,IACzB,CAAC;yBACN;wBACD,IAAI,IAAA,6BAAgB,EAAC,MAAM,CAAC,IAAI,mBAAmB,KAAK,OAAO,EAAE;4BAC7D,SAAS,GAAG,MAAM,CAAC;4BACnB,cAAc;4BACd,iBAAiB,CAAC,MAAM,EAAE,CAAC;yBAC9B;oBACL,CAAC;iBACJ,CAAC,EAAE;oBACA,QAAQ,EAAE,mBAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,iBAAiB,CAAC,KAAK;iBAClC,CAAC,CAAC;gBAEH,2FAA2F;gBAC3F,IAAI,CAAC,SAAS,IAAI,CAAE,cAAc,CAAC,IAAgB,CAAC,SAAS,EAAE;oBAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,gCAAgC,EAAE,KACxD,IAAI,EAAE,cAAc,CAAC,IAAI,EACzB,KAAK,EAAE,SAAS,CAAC,KAAK,IACxB,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEO,sBAAsB,CAAC,IAAe;QAC1C,OAAO,IAAA,kCAAqB,EAAC,IAAI,CAAC,IAAI,IAAA,sCAAyB,EAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAEO,uBAAuB,CAAC,IAAe;QAC3C,OAAO,IAAA,mCAAsB,EAAC,IAAI,CAAC,IAAI,IAAA,uCAA0B,EAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAEO,iBAAiB,CAAC,IAAe;QACrC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAEO,qCAAqC,CAAkE,GAAmB;;QAC9H,KAAK,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,EAAE;YACjC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE;gBACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;oBACnC,IAAI,MAAM,GAAG,SAAS,CAAC;oBACvB,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAErD,4CAA4C;oBAC5C,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,EAAE;wBACrD,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAC3D,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAC1B,CAAC;qBACN;oBAED,IAAI,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC1E,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;oBAC/E,IAAI,iBAAiB,EAAE;wBACnB,IAAI,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAEpG,sEAAsE;wBACtE,IAAI,UAAU,KAAK,kBAAkB,EAAE;4BACnC,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,+CAA+C,CACjE,UAAU,EACV,kBAAkB,EAClB,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CACxE,KACD,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IACrB,CAAC;yBACN;wBAED,qCAAqC;wBACrC,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE;4BACrC,IAAI,kBAAkB,GAAY,IAAI,yBAAW,EAAE,CAAC;4BACpD,IAAI,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;gCACvD,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;6BAC3D;iCAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;gCAC/D,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;6BACxE;4BACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;4BACxC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;gCACtE,2DAA2D;gCAE3D,MAAM,kBAAkB,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAC;gCAChG,MAAM,qBAAqB,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAK,iBAAiB,CAAC,MAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gCACjJ,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,yCAAyC,CAC3D,aAAa,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,EAC/C,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,EACrE,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,kBAAkB,EAClB,qBAAqB,CACxB,KACD,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IACrB,CAAC;6BACN;yBACJ;wBAED,2CAA2C;wBAC3C;wBACI,aAAa;wBACb,IAAA,mCAAsB,EAAC,MAAM,CAAC;4BAC9B,mCAAmC;4BACnC,CAAC,MAAM,CAAC,QAAQ;4BAChB,iCAAiC;4BACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAC1C;4BACE,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,sBAAsB,CACxC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CACxE,KACD,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IACrB,CAAC;yBACN;wBAED,sCAAsC;wBACtC;wBACI,aAAa;wBACb,IAAA,mCAAsB,EAAC,MAAM,CAAC,IAAI,IAAA,mCAAsB,EAAC,iBAAiB,CAAC,MAAM,CAAC;4BAClF,CAAC,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,IAAI,mCAAI,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,MAAA,iBAAiB,CAAC,MAAM,CAAC,cAAc,0CAAE,IAAI,mCAAI,qBAAS,CAAC,MAAM,CAAC,EAC3H;4BACE,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,oCAAoC,CACtD,aAAa,CAAC,IAAI,CAAC,IAAI,EACvB,MAAA,iBAAiB,CAAC,MAAM,CAAC,IAAI,0CAAE,IAAI,EACnC,CAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,IAAI,KAAI,QAAQ,EACvC,CAAA,MAAA,iBAAiB,CAAC,MAAM,CAAC,cAAc,0CAAE,IAAI,KAAI,QAAQ,EACzD,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CACxE,KACD,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IACrB,CAAC;yBACN;qBACJ;oBAED,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;wBACtC,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;qBAErC;yBAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE;wBAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;qBACpC;iBACJ;aACJ;SACJ;IACL,CAAC;IAEO,wBAAwB;QAC5B,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAGO,+BAA+B,CAAkE,GAAmB;;QACxH,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,EAAE;YAC7B,KAAK,IAAI,aAAa,IAAI,SAAS,CAAC,IAAI,EAAE;gBACtC,IAAI,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE;oBAC5C,IAAI,SAAS,GAAG,IAAA,4BAAkB,EAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9E,MAAM,aAAa,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAI,MAAA,aAAa,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAC;oBAC7F,MAAM,kBAAkB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,EAAE,CAAC;oBAExD,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,IAAI,IAAA,yBAAY,EAAC,SAAS,CAAC,EAAE;wBACzB,IAAI,kBAAkB,EAAE;4BACpB,MAAM,oBAAoB,GAAG,MAAA,aAAa,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;4BAC5F,+CAA+C;4BAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EAAE;gCAChE,aAAa,GAAG,IAAI,CAAC;6BACxB;yBACJ;qBACJ;yBAAM,IAAI,IAAA,4BAAe,EAAC,SAAS,CAAC,EAAE;wBACnC,IAAI,kBAAkB,EAAE;4BACpB,MAAM,oBAAoB,GAAG,MAAA,aAAa,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;4BAC5F,+CAA+C;4BAC/C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EAAE;gCACpE,aAAa,GAAG,IAAI,CAAC;6BACxB;yBACJ;qBACJ;yBAAM,IAAI,CAAC,SAAS,EAAE;wBACnB,aAAa,GAAG,IAAI,CAAC;qBACxB;oBACD,IAAI,aAAa,EAAE;wBACf,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,cAAc,CAAC,aAAa,CAAC,KACnD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAC/B,IAAI,EAAE,SAAS,CAAC,IAAI,IACtB,CAAC;qBACN;iBACJ;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB;QACtB,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,cAAqE,EAAE,UAAkB;QAC/G,IAAI,eAAe,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,OAAO,QAAQ,EAAE;YACb,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE;gBACR,OAAO;oBACH,MAAM,EAAE,MAAM;oBACd,iBAAiB,EAAE,QAAQ;iBAC9B,CAAC;aACL;YACD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC9B;IACL,CAAC;IAEO,OAAO;QACX,4EAA4E;QAC5E,KAAK,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC3C,OAAO,cAAc,CAAC,MAAM,CAAC;YAC7B,OAAO,cAAc,CAAC,IAAI,CAAC;SAC9B;QACD,+EAA+E;QAC/E,KAAK,MAAM,CAAC,EAAE,kBAAkB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC;YACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC;SAClC;IACL,CAAC;IAGO,cAAc,CAAkE,cAA+C,EAAE,kBAA6G;QAClP,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,IAAI,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAAE;gBAC5B,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;gBAC5D,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,EAAE;oBACP,SAAS;iBACZ;gBACD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnC,uCAAuC;gBACvC,IAAI,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAE7C,kDAAkD;gBAClD,IAAI,CAAC,mBAAmB,EAAE;oBACtB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;oBACnC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;oBAE3B,oDAAoD;iBACvD;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAC5C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAChC,kBAAkB,EAAE,CAAC;gCACjB,QAAQ,EAAE,gCAAQ,CAAC,MAAM,CACrB,gBAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EACrD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAC3B;gCACD,OAAO,EAAE,EAAE;6BACd,CAAC,IACJ,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAC9B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,EAC1C,uCAAkB,CAAC,yBAAyB,CAC/C,CAAC;IACN,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CACjC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAC9C,uCAAkB,CAAC,6BAA6B,CACnD,CAAC;IACN,CAAC;IAEO,eAAe,CAAkE,GAAmB;QACxG,qCAAqC;QACrC,KAAK,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,GAAG,EAAE;YAClC,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE;gBAC5B,IAAI,WAAW,GAAG,cAAc,CAAC,0BAA0B,EAAE,CAAC;gBAC9D,IAAI,WAAc,CAAC;gBACnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;oBAClC,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;oBAChD,IAAI,WAAW,EAAE;wBACb,MAAM;qBACT;iBACJ;gBACD,IAAI,WAAW,EAAE;oBACb,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC;iBACvC;qBAAM;oBAEH,IAAI,gBAAkD,CAAC;oBACvD,IAAI,IAAA,6BAAgB,EAAC,cAAc,CAAC,EAAE;wBAClC,gBAAgB,GAAG,cAAc,CAAC,eAAe,CAAC;qBACrD;yBAAM,IAAI,IAAA,iCAAoB,EAAC,cAAc,CAAC,EAAE;wBAC7C,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC;qBACzD;oBACD,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAC/G,IAAI,EAAE,cAAc,CAAC,IAAI,EACzB,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,IAChC,CAAC;iBACN;aAEJ;SACJ;IACL,CAAC;IAEO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACJ;AAreD,4CAqeC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brighterscript",
3
- "version": "1.0.0-alpha.15",
3
+ "version": "1.0.0-alpha.18",
4
4
  "description": "A superset of Roku's BrightScript language.",
5
5
  "scripts": {
6
6
  "preversion": "npm run build && npm run lint && npm run test",
@@ -79,7 +79,6 @@
79
79
  "@types/glob": "^7.1.1",
80
80
  "@types/mocha": "^5.2.5",
81
81
  "@types/node": "^11.9.0",
82
- "@types/request": "^2.47.0",
83
82
  "@types/sinon": "^9.0.4",
84
83
  "@types/yargs": "^15.0.5",
85
84
  "@typescript-eslint/eslint-plugin": "4.32.0",
@@ -129,7 +128,7 @@
129
128
  "moment": "^2.23.0",
130
129
  "p-settle": "^2.1.0",
131
130
  "parse-ms": "^2.1.0",
132
- "roku-deploy": "^3.5.0",
131
+ "roku-deploy": "^3.5.4",
133
132
  "serialize-error": "^7.0.1",
134
133
  "source-map": "^0.7.3",
135
134
  "vscode-languageserver": "7.0.0",
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const DynamicType_1 = require("./DynamicType");
5
- const FloatType_1 = require("./FloatType");
6
- const FunctionType_1 = require("./FunctionType");
7
- const IntegerType_1 = require("./IntegerType");
8
- const StringType_1 = require("./StringType");
9
- const VoidType_1 = require("./VoidType");
10
- describe('FunctionType', () => {
11
- it('is equivalent to dynamic type', () => {
12
- (0, chai_1.expect)(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
13
- });
14
- it('validates using param and return types', () => {
15
- (0, chai_1.expect)(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).isAssignableTo(new FunctionType_1.FunctionType(new VoidType_1.VoidType()))).to.be.true;
16
- //different parameter count
17
- (0, chai_1.expect)(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).addParameter('a', new IntegerType_1.IntegerType(), false).isAssignableTo(new FunctionType_1.FunctionType(new VoidType_1.VoidType()))).to.be.false;
18
- //different parameter types
19
- (0, chai_1.expect)(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).addParameter('a', new IntegerType_1.IntegerType(), false).isAssignableTo(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).addParameter('a', new StringType_1.StringType(), false))).to.be.false;
20
- //different return type
21
- (0, chai_1.expect)(new FunctionType_1.FunctionType(new VoidType_1.VoidType()).isAssignableTo(new FunctionType_1.FunctionType(new IntegerType_1.IntegerType()))).to.be.false;
22
- });
23
- it('adds a callableParam object as a parameter', () => {
24
- const myFunc = new FunctionType_1.FunctionType(new IntegerType_1.IntegerType(), false, [{ name: 'a', type: new StringType_1.StringType(), isOptional: false }, { name: 'b', type: new DynamicType_1.DynamicType(), isOptional: true }]);
25
- myFunc.addParameter({ name: 'c', type: new FloatType_1.FloatType(), isOptional: true });
26
- (0, chai_1.expect)(myFunc.params.length).to.equal(3);
27
- });
28
- });
29
- //# sourceMappingURL=FunctionType.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FunctionType.spec.js","sourceRoot":"","sources":["../../src/types/FunctionType.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,+CAA4C;AAC5C,2CAAwC;AACxC,iDAA8C;AAC9C,+CAA4C;AAC5C,6CAA0C;AAC1C,yCAAsC;AAEtC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,IAAA,aAAM,EAAC,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAErG,2BAA2B;QAC3B,IAAA,aAAM,EACF,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,yBAAW,EAAE,EAAE,KAAK,CAAC,CAAC,cAAc,CACvF,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CACnC,CACJ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAEd,2BAA2B;QAC3B,IAAA,aAAM,EACF,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,yBAAW,EAAE,EAAE,KAAK,CAAC,CAAC,cAAc,CACvF,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,uBAAU,EAAE,EAAE,KAAK,CAAC,CAC9E,CACJ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAEd,uBAAuB;QACvB,IAAA,aAAM,EACF,IAAI,2BAAY,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC,cAAc,CAC3C,IAAI,2BAAY,CAAC,IAAI,yBAAW,EAAE,CAAC,CACtC,CACJ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,IAAI,yBAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,uBAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,yBAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChL,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,qBAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}