brighterscript 1.0.0-alpha.47 → 1.0.0-alpha.49

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 (171) hide show
  1. package/README.md +7 -10
  2. package/bsconfig.schema.json +34 -7
  3. package/dist/AstValidationSegmenter.js +21 -3
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +6 -35
  6. package/dist/CrossScopeValidator.d.ts +1 -0
  7. package/dist/CrossScopeValidator.js +28 -4
  8. package/dist/CrossScopeValidator.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -1
  10. package/dist/DiagnosticMessages.js +20 -6
  11. package/dist/DiagnosticMessages.js.map +1 -1
  12. package/dist/LanguageServer.d.ts +22 -6
  13. package/dist/LanguageServer.js +62 -25
  14. package/dist/LanguageServer.js.map +1 -1
  15. package/dist/PluginInterface.js +4 -1
  16. package/dist/PluginInterface.js.map +1 -1
  17. package/dist/Program.d.ts +9 -3
  18. package/dist/Program.js +111 -74
  19. package/dist/Program.js.map +1 -1
  20. package/dist/ProgramBuilder.d.ts +0 -2
  21. package/dist/ProgramBuilder.js +10 -28
  22. package/dist/ProgramBuilder.js.map +1 -1
  23. package/dist/SymbolTable.js +3 -2
  24. package/dist/SymbolTable.js.map +1 -1
  25. package/dist/astUtils/reflection.d.ts +14 -2
  26. package/dist/astUtils/reflection.js +70 -18
  27. package/dist/astUtils/reflection.js.map +1 -1
  28. package/dist/astUtils/visitors.d.ts +2 -1
  29. package/dist/astUtils/visitors.js.map +1 -1
  30. package/dist/bscPlugin/CallExpressionInfo.js +9 -3
  31. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  32. package/dist/bscPlugin/completions/CompletionsProcessor.js +3 -0
  33. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  34. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +34 -1
  35. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  36. package/dist/bscPlugin/hover/HoverProcessor.spec.js +31 -0
  37. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  38. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +10 -4
  39. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  40. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +17 -0
  41. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  42. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +5 -0
  43. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +71 -3
  44. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  45. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +7 -7
  46. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -1
  47. package/dist/bscPlugin/validation/BrsFileValidator.js +43 -14
  48. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  49. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +99 -0
  50. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  51. package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
  52. package/dist/bscPlugin/validation/ScopeValidator.js +19 -4
  53. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  54. package/dist/bscPlugin/validation/ScopeValidator.spec.js +372 -0
  55. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  56. package/dist/cli.js +11 -18
  57. package/dist/cli.js.map +1 -1
  58. package/dist/files/BrsFile.Class.spec.js +336 -200
  59. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  60. package/dist/files/BrsFile.spec.js +168 -10
  61. package/dist/files/BrsFile.spec.js.map +1 -1
  62. package/dist/files/XmlFile.d.ts +7 -0
  63. package/dist/files/XmlFile.js +36 -0
  64. package/dist/files/XmlFile.js.map +1 -1
  65. package/dist/files/XmlFile.spec.js +7 -9
  66. package/dist/files/XmlFile.spec.js.map +1 -1
  67. package/dist/files/tests/imports.spec.js +3 -3
  68. package/dist/files/tests/imports.spec.js.map +1 -1
  69. package/dist/files/tests/optionalChaning.spec.js +1 -1
  70. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  71. package/dist/interfaces.d.ts +12 -4
  72. package/dist/interfaces.js.map +1 -1
  73. package/dist/lexer/Lexer.spec.js +12 -2
  74. package/dist/lexer/Lexer.spec.js.map +1 -1
  75. package/dist/lexer/TokenKind.js +6 -3
  76. package/dist/lexer/TokenKind.js.map +1 -1
  77. package/dist/lsp/LspProject.d.ts +17 -9
  78. package/dist/lsp/Project.d.ts +8 -7
  79. package/dist/lsp/Project.js +21 -23
  80. package/dist/lsp/Project.js.map +1 -1
  81. package/dist/lsp/Project.spec.js +44 -12
  82. package/dist/lsp/Project.spec.js.map +1 -1
  83. package/dist/lsp/ProjectManager.d.ts +31 -10
  84. package/dist/lsp/ProjectManager.js +130 -60
  85. package/dist/lsp/ProjectManager.js.map +1 -1
  86. package/dist/lsp/ProjectManager.spec.js +245 -115
  87. package/dist/lsp/ProjectManager.spec.js.map +1 -1
  88. package/dist/lsp/worker/WorkerThreadProject.d.ts +6 -7
  89. package/dist/lsp/worker/WorkerThreadProject.js +27 -21
  90. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  91. package/dist/lsp/worker/WorkerThreadProject.spec.js +4 -1
  92. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -1
  93. package/dist/lsp/worker/run.d.ts +1 -0
  94. package/dist/lsp/worker/run.js +14 -0
  95. package/dist/lsp/worker/run.js.map +1 -0
  96. package/dist/parser/AstNode.d.ts +8 -1
  97. package/dist/parser/AstNode.js +9 -0
  98. package/dist/parser/AstNode.js.map +1 -1
  99. package/dist/parser/AstNode.spec.js +1 -1
  100. package/dist/parser/AstNode.spec.js.map +1 -1
  101. package/dist/parser/Expression.d.ts +43 -0
  102. package/dist/parser/Expression.js +120 -7
  103. package/dist/parser/Expression.js.map +1 -1
  104. package/dist/parser/Parser.Class.spec.js +25 -0
  105. package/dist/parser/Parser.Class.spec.js.map +1 -1
  106. package/dist/parser/Parser.d.ts +4 -0
  107. package/dist/parser/Parser.js +117 -7
  108. package/dist/parser/Parser.js.map +1 -1
  109. package/dist/parser/Parser.spec.js +200 -1
  110. package/dist/parser/Parser.spec.js.map +1 -1
  111. package/dist/parser/Statement.d.ts +32 -1
  112. package/dist/parser/Statement.js +128 -64
  113. package/dist/parser/Statement.js.map +1 -1
  114. package/dist/parser/tests/statement/ConstStatement.spec.js +238 -0
  115. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  116. package/dist/roku-types/data.json +422 -64
  117. package/dist/roku-types/index.d.ts +50 -0
  118. package/dist/types/ArrayType.js +3 -0
  119. package/dist/types/ArrayType.js.map +1 -1
  120. package/dist/types/BscType.d.ts +4 -3
  121. package/dist/types/BscType.js +2 -4
  122. package/dist/types/BscType.js.map +1 -1
  123. package/dist/types/BscTypeKind.d.ts +2 -0
  124. package/dist/types/BscTypeKind.js +2 -0
  125. package/dist/types/BscTypeKind.js.map +1 -1
  126. package/dist/types/CallFuncableType.d.ts +24 -0
  127. package/dist/types/CallFuncableType.js +91 -0
  128. package/dist/types/CallFuncableType.js.map +1 -0
  129. package/dist/types/ComponentType.d.ts +3 -15
  130. package/dist/types/ComponentType.js +2 -56
  131. package/dist/types/ComponentType.js.map +1 -1
  132. package/dist/types/DoubleType.js +1 -1
  133. package/dist/types/DoubleType.js.map +1 -1
  134. package/dist/types/FloatType.js +1 -1
  135. package/dist/types/FloatType.js.map +1 -1
  136. package/dist/types/InlineInterfaceType.d.ts +5 -0
  137. package/dist/types/InlineInterfaceType.js +17 -0
  138. package/dist/types/InlineInterfaceType.js.map +1 -0
  139. package/dist/types/IntegerType.js +1 -1
  140. package/dist/types/IntegerType.js.map +1 -1
  141. package/dist/types/InterfaceType.d.ts +2 -2
  142. package/dist/types/InterfaceType.js +5 -4
  143. package/dist/types/InterfaceType.js.map +1 -1
  144. package/dist/types/LongIntegerType.js +1 -1
  145. package/dist/types/LongIntegerType.js.map +1 -1
  146. package/dist/types/ObjectType.d.ts +1 -0
  147. package/dist/types/ObjectType.js +3 -0
  148. package/dist/types/ObjectType.js.map +1 -1
  149. package/dist/types/ReferenceType.d.ts +3 -2
  150. package/dist/types/ReferenceType.js +54 -22
  151. package/dist/types/ReferenceType.js.map +1 -1
  152. package/dist/types/TypeStatementType.d.ts +18 -0
  153. package/dist/types/TypeStatementType.js +45 -0
  154. package/dist/types/TypeStatementType.js.map +1 -0
  155. package/dist/types/UnionType.d.ts +3 -0
  156. package/dist/types/UnionType.js +7 -0
  157. package/dist/types/UnionType.js.map +1 -1
  158. package/dist/types/UnionType.spec.js +43 -0
  159. package/dist/types/UnionType.spec.js.map +1 -1
  160. package/dist/types/roFunctionType.d.ts +11 -0
  161. package/dist/types/roFunctionType.js +37 -0
  162. package/dist/types/roFunctionType.js.map +1 -0
  163. package/dist/types/roFunctionType.spec.d.ts +1 -0
  164. package/dist/types/roFunctionType.spec.js +20 -0
  165. package/dist/types/roFunctionType.spec.js.map +1 -0
  166. package/dist/util.d.ts +9 -94
  167. package/dist/util.js +67 -305
  168. package/dist/util.js.map +1 -1
  169. package/dist/validators/ClassValidator.js +1 -1
  170. package/dist/validators/ClassValidator.js.map +1 -1
  171. package/package.json +3 -3
@@ -82,7 +82,6 @@ export declare class ProgramBuilder {
82
82
  * NOTE: This should only be called by `runOnce`.
83
83
  */
84
84
  private _runOnce;
85
- private createPackageIfEnabled;
86
85
  private buildThrottler;
87
86
  /**
88
87
  * Build the entire project and place the contents into the staging directory
@@ -93,7 +92,6 @@ export declare class ProgramBuilder {
93
92
  * @deprecated use `.build()` instead
94
93
  */
95
94
  transpile(): Promise<void>;
96
- private deployPackageIfEnabled;
97
95
  /**
98
96
  * Load every file into the project
99
97
  */
@@ -96,7 +96,7 @@ class ProgramBuilder {
96
96
  this.logger.logLevel = (_b = this.options) === null || _b === void 0 ? void 0 : _b.logLevel;
97
97
  }
98
98
  if (this.options.noProject) {
99
- this.logger.log(`'no-project' flag is set so bsconfig.json loading is disabled'`);
99
+ this.logger.log(`'noProject' flag is set so bsconfig.json loading is disabled'`);
100
100
  }
101
101
  else if (this.options.project) {
102
102
  this.logger.log(`Using config file: "${this.options.project}"`);
@@ -139,13 +139,15 @@ class ProgramBuilder {
139
139
  if (this.options.watch) {
140
140
  this.logger.log('Starting compilation in watch mode...');
141
141
  await this.runOnce({
142
- validate: options === null || options === void 0 ? void 0 : options.validate
142
+ validate: options === null || options === void 0 ? void 0 : options.validate,
143
+ noEmit: options === null || options === void 0 ? void 0 : options.noEmit
143
144
  });
144
145
  this.enableWatchMode();
145
146
  }
146
147
  else {
147
148
  await this.runOnce({
148
- validate: options === null || options === void 0 ? void 0 : options.validate
149
+ validate: options === null || options === void 0 ? void 0 : options.validate,
150
+ noEmit: options === null || options === void 0 ? void 0 : options.noEmit
149
151
  });
150
152
  }
151
153
  }
@@ -247,7 +249,8 @@ class ProgramBuilder {
247
249
  //start the new run
248
250
  return this._runOnce({
249
251
  cancellationToken: cancellationToken,
250
- validate: options === null || options === void 0 ? void 0 : options.validate
252
+ validate: options === null || options === void 0 ? void 0 : options.validate,
253
+ noEmit: options === null || options === void 0 ? void 0 : options.noEmit
251
254
  });
252
255
  });
253
256
  //a function used to cancel this run
@@ -342,14 +345,13 @@ class ProgramBuilder {
342
345
  this.logger.log(`Found ${errorCount} ${errorCount === 1 ? 'error' : 'errors'}`);
343
346
  return errorCount;
344
347
  }
345
- //create the deployment package (and transpile as well)
346
- await this.createPackageIfEnabled();
348
+ if (options.noEmit !== true) {
349
+ await this.transpile();
350
+ }
347
351
  //maybe cancel?
348
352
  if (((_c = options === null || options === void 0 ? void 0 : options.cancellationToken) === null || _c === void 0 ? void 0 : _c.isCanceled) === true) {
349
353
  return -1;
350
354
  }
351
- //deploy the package
352
- await this.deployPackageIfEnabled();
353
355
  return 0;
354
356
  }
355
357
  catch (e) {
@@ -359,18 +361,6 @@ class ProgramBuilder {
359
361
  throw e;
360
362
  }
361
363
  }
362
- async createPackageIfEnabled() {
363
- if (this.options.copyToStaging || this.options.createPackage || this.options.deploy) {
364
- //transpile the project
365
- await this.transpile();
366
- //create the zip file if configured to do so
367
- if (this.options.createPackage !== false || this.options.deploy) {
368
- await this.logger.time(logging_1.LogLevel.log, [`Creating package at ${this.options.outFile}`], async () => {
369
- await roku_deploy_1.rokuDeploy.zipPackage(Object.assign(Object.assign({}, this.options), { logLevel: this.options.logLevel, outDir: util_1.util.getOutDir(this.options), outFile: path.basename(this.options.outFile) }));
370
- });
371
- }
372
- }
373
- }
374
364
  /**
375
365
  * Build the entire project and place the contents into the staging directory
376
366
  */
@@ -403,14 +393,6 @@ class ProgramBuilder {
403
393
  async transpile() {
404
394
  return this.build();
405
395
  }
406
- async deployPackageIfEnabled() {
407
- //deploy the project if configured to do so
408
- if (this.options.deploy) {
409
- await this.logger.time(logging_1.LogLevel.log, ['Deploying package to', this.options.host], async () => {
410
- await roku_deploy_1.rokuDeploy.publish(Object.assign(Object.assign({}, this.options), { logLevel: this.options.logLevel, outDir: util_1.util.getOutDir(this.options), outFile: path.basename(this.options.outFile) }));
411
- });
412
- }
413
- }
414
396
  /**
415
397
  * Load every file into the project
416
398
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ProgramBuilder.js","sourceRoot":"","sources":["../src/ProgramBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProgramBuilder.js","sourceRoot":"","sources":["../src/ProgramBuilder.ts"],"names":[],"mappings":"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"}
@@ -351,7 +351,7 @@ class SymbolTable {
351
351
  resolvedType = SymbolTable.referenceTypeFactory(name, options.fullName, options.flags, options.tableProvider);
352
352
  }
353
353
  const resolvedTypeIsReference = (0, reflection_1.isAnyReferenceType)(resolvedType);
354
- const newNonReferenceType = originalIsReferenceType && !(0, reflection_1.isAnyReferenceType)(resolvedType);
354
+ const newNonReferenceType = originalIsReferenceType && !(0, reflection_1.isAnyReferenceType)(resolvedType) && resolvedType;
355
355
  doSetCache = doSetCache && (options.onlyCacheResolvedTypes ? !resolvedTypeIsReference : true);
356
356
  if (doSetCache || newNonReferenceType) {
357
357
  this.setCachedType(name, { type: resolvedType, data: data, flags: foundFlags }, options);
@@ -368,6 +368,7 @@ class SymbolTable {
368
368
  options.data.isFromDocComment = data === null || data === void 0 ? void 0 : data.isFromDocComment;
369
369
  options.data.isBuiltIn = data === null || data === void 0 ? void 0 : data.isBuiltIn;
370
370
  options.data.isFromCallFunc = data === null || data === void 0 ? void 0 : data.isFromCallFunc;
371
+ options.data.isFromTypeStatement = data === null || data === void 0 ? void 0 : data.isFromTypeStatement;
371
372
  }
372
373
  return resolvedType;
373
374
  }
@@ -495,7 +496,7 @@ class SymbolTable {
495
496
  }
496
497
  setCachedType(name, cacheEntry, options) {
497
498
  var _a, _b, _c;
498
- if (!cacheEntry) {
499
+ if (!cacheEntry || !cacheEntry.type) {
499
500
  return;
500
501
  }
501
502
  if (SymbolTable.cacheVerifier) {
@@ -1 +1 @@
1
- {"version":3,"file":"SymbolTable.js","sourceRoot":"","sources":["../src/SymbolTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SymbolTable.js","sourceRoot":"","sources":["../src/SymbolTable.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Body, AssignmentStatement, Block, ExpressionStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassStatement, InterfaceFieldStatement, InterfaceMethodStatement, InterfaceStatement, EnumStatement, EnumMemberStatement, TryCatchStatement, CatchStatement, ThrowStatement, MethodStatement, FieldStatement, ConstStatement, ContinueStatement, DimStatement, TypecastStatement, AliasStatement, AugmentedAssignmentStatement, ConditionalCompileConstStatement, ConditionalCompileErrorStatement, ConditionalCompileStatement, ExitStatement } from '../parser/Statement';
2
- import type { LiteralExpression, BinaryExpression, CallExpression, FunctionExpression, DottedGetExpression, XmlAttributeGetExpression, IndexedGetExpression, GroupingExpression, EscapedCharCodeLiteralExpression, ArrayLiteralExpression, AALiteralExpression, UnaryExpression, VariableExpression, SourceLiteralExpression, NewExpression, CallfuncExpression, TemplateStringQuasiExpression, TemplateStringExpression, TaggedTemplateStringExpression, AnnotationExpression, FunctionParameterExpression, AAMemberExpression, TernaryExpression, NullCoalescingExpression, PrintSeparatorExpression, TypecastExpression, TypedArrayExpression, TypeExpression } from '../parser/Expression';
1
+ import type { Body, AssignmentStatement, Block, ExpressionStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassStatement, InterfaceFieldStatement, InterfaceMethodStatement, InterfaceStatement, EnumStatement, EnumMemberStatement, TryCatchStatement, CatchStatement, ThrowStatement, MethodStatement, FieldStatement, ConstStatement, ContinueStatement, DimStatement, TypecastStatement, AliasStatement, AugmentedAssignmentStatement, ConditionalCompileConstStatement, ConditionalCompileErrorStatement, ConditionalCompileStatement, ExitStatement, TypeStatement } from '../parser/Statement';
2
+ import type { LiteralExpression, BinaryExpression, CallExpression, FunctionExpression, DottedGetExpression, XmlAttributeGetExpression, IndexedGetExpression, GroupingExpression, EscapedCharCodeLiteralExpression, ArrayLiteralExpression, AALiteralExpression, UnaryExpression, VariableExpression, SourceLiteralExpression, NewExpression, CallfuncExpression, TemplateStringQuasiExpression, TemplateStringExpression, TaggedTemplateStringExpression, AnnotationExpression, FunctionParameterExpression, AAMemberExpression, TernaryExpression, NullCoalescingExpression, PrintSeparatorExpression, TypecastExpression, TypedArrayExpression, TypeExpression, InlineInterfaceMemberExpression, InlineInterfaceExpression } from '../parser/Expression';
3
3
  import type { BrsFile } from '../files/BrsFile';
4
4
  import type { XmlFile } from '../files/XmlFile';
5
5
  import type { BsDiagnostic, TypedefProvider } from '../interfaces';
@@ -27,6 +27,7 @@ import type { UnionType } from '../types/UnionType';
27
27
  import type { UninitializedType } from '../types/UninitializedType';
28
28
  import type { ArrayType } from '../types/ArrayType';
29
29
  import type { InheritableType } from '../types/InheritableType';
30
+ import type { CallFuncableType } from '../types/CallFuncableType';
30
31
  import type { NamespaceType } from '../types/NamespaceType';
31
32
  import type { BaseFunctionType } from '../types/BaseFunctionType';
32
33
  import type { BscFile } from '../files/BscFile';
@@ -34,6 +35,7 @@ import type { ComponentType } from '../types/ComponentType';
34
35
  import type { AssociativeArrayType } from '../types/AssociativeArrayType';
35
36
  import type { Program } from '../Program';
36
37
  import type { Project } from '../lsp/Project';
38
+ import type { TypeStatementType } from '../types/TypeStatementType';
37
39
  export declare function isBrsFile(file: BscFile | undefined): file is BrsFile;
38
40
  export declare function isXmlFile(file: (BscFile | XmlFile | undefined)): file is XmlFile;
39
41
  export declare function isAssetFile(file: (BscFile | AssetFile | undefined)): file is AssetFile;
@@ -94,6 +96,7 @@ export declare function isConditionalCompileErrorStatement(element: AstNode | un
94
96
  export declare function isAugmentedAssignmentStatement(element: AstNode | undefined): element is AugmentedAssignmentStatement;
95
97
  export declare function isTypecastStatement(element: AstNode | undefined): element is TypecastStatement;
96
98
  export declare function isAliasStatement(element: AstNode | undefined): element is AliasStatement;
99
+ export declare function isTypeStatement(element: AstNode | undefined): element is TypeStatement;
97
100
  /**
98
101
  * Determine if the variablvalue is a descendent of the Expression base class.
99
102
  * Due to performance restrictions, this expects all statements to directly extend Expression,
@@ -129,6 +132,8 @@ export declare function isTypeExpression(element: any): element is TypeExpressio
129
132
  export declare function isTypecastExpression(element: any): element is TypecastExpression;
130
133
  export declare function isTypedArrayExpression(element: any): element is TypedArrayExpression;
131
134
  export declare function isPrintSeparatorExpression(element: any): element is PrintSeparatorExpression;
135
+ export declare function isInlineInterfaceExpression(element: any): element is InlineInterfaceExpression;
136
+ export declare function isInlineInterfaceMemberExpression(element: any): element is InlineInterfaceMemberExpression;
132
137
  export declare function isStringType(value: any): value is StringType;
133
138
  export declare function isRoStringType(value: any): value is InterfaceType;
134
139
  export declare function isStringTypeLike(value: any): value is StringType | InterfaceType;
@@ -172,13 +177,20 @@ export declare function isUnionType(value: any): value is UnionType;
172
177
  export declare function isUninitializedType(value: any): value is UninitializedType;
173
178
  export declare function isArrayType(value: any): value is ArrayType;
174
179
  export declare function isAssociativeArrayType(value: any): value is AssociativeArrayType;
180
+ export declare function isTypeStatementType(value: any): value is TypeStatementType;
175
181
  export declare function isInheritableType(target: any): target is InheritableType;
182
+ export declare function isCallFuncableType(target: any): target is CallFuncableType;
176
183
  export declare function isCallableType(target: any): target is BaseFunctionType;
177
184
  export declare function isAnyReferenceType(target: any): target is AnyReferenceType;
178
185
  export declare function isNumberType(value: any): value is IntegerType | LongIntegerType | FloatType | DoubleType | InterfaceType;
186
+ export declare function isNumberTypeLike(value: any): value is IntegerType | LongIntegerType | FloatType | DoubleType | InterfaceType;
179
187
  export declare function isPrimitiveType(value?: any): value is IntegerType | LongIntegerType | FloatType | DoubleType | StringType | BooleanType | InterfaceType;
188
+ export declare function isPrimitiveTypeLike(value?: any): value is IntegerType | LongIntegerType | FloatType | DoubleType | StringType | BooleanType | InterfaceType;
180
189
  export declare function isBuiltInType(value: any, name: string): value is InterfaceType;
181
190
  export declare function isNativeType(value: any): value is IntegerType | LongIntegerType | FloatType | DoubleType | StringType | BooleanType | VoidType | DynamicType | ObjectType | FunctionType | InterfaceType;
191
+ export declare function isTypeStatementTypeOf(value: any, typeGuard: (val: any) => boolean): boolean;
192
+ export declare function isUnionTypeOf(value: any, typeGuard: (val: any) => boolean): boolean;
193
+ export declare function isComplexTypeOf(value: any, typeGuard: (val: any) => boolean): boolean;
182
194
  export declare function isLiteralInvalid(value: any): value is LiteralExpression & {
183
195
  type: InvalidType;
184
196
  };
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isConditionalCompileConstStatement = exports.isConditionalCompileStatement = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isMemberMethod = exports.isMemberField = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isDimStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isNullCoalescingExpression = exports.isTernaryExpression = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isProject = exports.isProgram = exports.isXmlScope = exports.isBscFile = exports.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
4
- exports.isRoFloatType = exports.isFloatType = exports.isLongIntegerTypeLike = exports.isRoLongIntegerType = exports.isLongIntegerType = exports.isIntegerTypeLike = exports.isRoIntType = exports.isIntegerType = exports.isBooleanTypeLike = exports.isRoBooleanType = exports.isBooleanType = exports.isFunctionTypeLike = exports.isRoFunctionType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringTypeLike = exports.isRoStringType = exports.isStringType = exports.isPrintSeparatorExpression = exports.isTypedArrayExpression = exports.isTypecastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isAliasStatement = exports.isTypecastStatement = exports.isAugmentedAssignmentStatement = exports.isConditionalCompileErrorStatement = void 0;
5
- exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNativeType = exports.isBuiltInType = exports.isPrimitiveType = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isInheritableType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = exports.isParamTypeFromValueReferenceType = exports.isArrayDefaultTypeReferenceType = exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidTypeLike = exports.isRoInvalidType = exports.isInvalidType = exports.isDoubleTypeLike = exports.isRoDoubleType = exports.isDoubleType = exports.isFloatTypeLike = void 0;
4
+ exports.isRoLongIntegerType = exports.isLongIntegerType = exports.isIntegerTypeLike = exports.isRoIntType = exports.isIntegerType = exports.isBooleanTypeLike = exports.isRoBooleanType = exports.isBooleanType = exports.isFunctionTypeLike = exports.isRoFunctionType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringTypeLike = exports.isRoStringType = exports.isStringType = exports.isInlineInterfaceMemberExpression = exports.isInlineInterfaceExpression = exports.isPrintSeparatorExpression = exports.isTypedArrayExpression = exports.isTypecastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isTypeStatement = exports.isAliasStatement = exports.isTypecastStatement = exports.isAugmentedAssignmentStatement = exports.isConditionalCompileErrorStatement = void 0;
5
+ exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isComplexTypeOf = exports.isUnionTypeOf = exports.isTypeStatementTypeOf = exports.isNativeType = exports.isBuiltInType = exports.isPrimitiveTypeLike = exports.isPrimitiveType = exports.isNumberTypeLike = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isCallFuncableType = exports.isInheritableType = exports.isTypeStatementType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = exports.isParamTypeFromValueReferenceType = exports.isArrayDefaultTypeReferenceType = exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidTypeLike = exports.isRoInvalidType = exports.isInvalidType = exports.isDoubleTypeLike = exports.isRoDoubleType = exports.isDoubleType = exports.isFloatTypeLike = exports.isRoFloatType = exports.isFloatType = exports.isLongIntegerTypeLike = void 0;
6
+ exports.isBsDiagnostic = void 0;
6
7
  const visitors_1 = require("./visitors");
7
8
  const AstNode_1 = require("../parser/AstNode");
8
9
  const BscTypeKind_1 = require("../types/BscTypeKind");
@@ -239,6 +240,11 @@ function isAliasStatement(element) {
239
240
  return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AliasStatement';
240
241
  }
241
242
  exports.isAliasStatement = isAliasStatement;
243
+ function isTypeStatement(element) {
244
+ var _a;
245
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TypeStatement';
246
+ }
247
+ exports.isTypeStatement = isTypeStatement;
242
248
  // Expressions reflection
243
249
  /**
244
250
  * Determine if the variablvalue is a descendent of the Expression base class.
@@ -360,6 +366,14 @@ function isPrintSeparatorExpression(element) {
360
366
  return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintSeparatorExpression;
361
367
  }
362
368
  exports.isPrintSeparatorExpression = isPrintSeparatorExpression;
369
+ function isInlineInterfaceExpression(element) {
370
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceExpression;
371
+ }
372
+ exports.isInlineInterfaceExpression = isInlineInterfaceExpression;
373
+ function isInlineInterfaceMemberExpression(element) {
374
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceMemberExpression;
375
+ }
376
+ exports.isInlineInterfaceMemberExpression = isInlineInterfaceMemberExpression;
363
377
  // BscType reflection
364
378
  function isStringType(value) {
365
379
  return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
@@ -370,7 +384,7 @@ function isRoStringType(value) {
370
384
  }
371
385
  exports.isRoStringType = isRoStringType;
372
386
  function isStringTypeLike(value) {
373
- return isStringType(value) || isRoStringType(value);
387
+ return isStringType(value) || isRoStringType(value) || isComplexTypeOf(value, isStringTypeLike);
374
388
  }
375
389
  exports.isStringTypeLike = isStringTypeLike;
376
390
  function isTypedFunctionType(value) {
@@ -382,11 +396,11 @@ function isFunctionType(value) {
382
396
  }
383
397
  exports.isFunctionType = isFunctionType;
384
398
  function isRoFunctionType(value) {
385
- return isBuiltInType(value, 'roFunction');
399
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.RoFunctionType || isBuiltInType(value, 'roFunction');
386
400
  }
387
401
  exports.isRoFunctionType = isRoFunctionType;
388
402
  function isFunctionTypeLike(value) {
389
- return isFunctionType(value) || isRoFunctionType(value);
403
+ return isFunctionType(value) || isRoFunctionType(value) || isComplexTypeOf(value, isFunctionTypeLike);
390
404
  }
391
405
  exports.isFunctionTypeLike = isFunctionTypeLike;
392
406
  function isBooleanType(value) {
@@ -398,7 +412,7 @@ function isRoBooleanType(value) {
398
412
  }
399
413
  exports.isRoBooleanType = isRoBooleanType;
400
414
  function isBooleanTypeLike(value) {
401
- return isBooleanType(value) || isRoBooleanType(value);
415
+ return isBooleanType(value) || isRoBooleanType(value) || isComplexTypeOf(value, isBooleanTypeLike);
402
416
  }
403
417
  exports.isBooleanTypeLike = isBooleanTypeLike;
404
418
  function isIntegerType(value) {
@@ -410,7 +424,7 @@ function isRoIntType(value) {
410
424
  }
411
425
  exports.isRoIntType = isRoIntType;
412
426
  function isIntegerTypeLike(value) {
413
- return isIntegerType(value) || isRoIntType(value);
427
+ return isIntegerType(value) || isRoIntType(value) || isComplexTypeOf(value, isIntegerTypeLike);
414
428
  }
415
429
  exports.isIntegerTypeLike = isIntegerTypeLike;
416
430
  function isLongIntegerType(value) {
@@ -422,7 +436,7 @@ function isRoLongIntegerType(value) {
422
436
  }
423
437
  exports.isRoLongIntegerType = isRoLongIntegerType;
424
438
  function isLongIntegerTypeLike(value) {
425
- return isLongIntegerType(value) || isRoLongIntegerType(value);
439
+ return isLongIntegerType(value) || isRoLongIntegerType(value) || isComplexTypeOf(value, isLongIntegerTypeLike);
426
440
  }
427
441
  exports.isLongIntegerTypeLike = isLongIntegerTypeLike;
428
442
  function isFloatType(value) {
@@ -434,7 +448,7 @@ function isRoFloatType(value) {
434
448
  }
435
449
  exports.isRoFloatType = isRoFloatType;
436
450
  function isFloatTypeLike(value) {
437
- return isFloatType(value) || isRoFloatType(value);
451
+ return isFloatType(value) || isRoFloatType(value) || isComplexTypeOf(value, isFloatTypeLike);
438
452
  }
439
453
  exports.isFloatTypeLike = isFloatTypeLike;
440
454
  function isDoubleType(value) {
@@ -446,7 +460,7 @@ function isRoDoubleType(value) {
446
460
  }
447
461
  exports.isRoDoubleType = isRoDoubleType;
448
462
  function isDoubleTypeLike(value) {
449
- return isDoubleType(value) || isRoDoubleType(value);
463
+ return isDoubleType(value) || isRoDoubleType(value) || isComplexTypeOf(value, isDoubleTypeLike);
450
464
  }
451
465
  exports.isDoubleTypeLike = isDoubleTypeLike;
452
466
  function isInvalidType(value) {
@@ -458,7 +472,7 @@ function isRoInvalidType(value) {
458
472
  }
459
473
  exports.isRoInvalidType = isRoInvalidType;
460
474
  function isInvalidTypeLike(value) {
461
- return isInvalidType(value) || isRoInvalidType(value);
475
+ return isInvalidType(value) || isRoInvalidType(value) || isComplexTypeOf(value, isInvalidTypeLike);
462
476
  }
463
477
  exports.isInvalidTypeLike = isInvalidTypeLike;
464
478
  function isVoidType(value) {
@@ -538,12 +552,20 @@ function isAssociativeArrayType(value) {
538
552
  return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType;
539
553
  }
540
554
  exports.isAssociativeArrayType = isAssociativeArrayType;
555
+ function isTypeStatementType(value) {
556
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypeStatementType;
557
+ }
558
+ exports.isTypeStatementType = isTypeStatementType;
541
559
  function isInheritableType(target) {
542
- return isClassType(target) || isInterfaceType(target) || isComponentType(target);
560
+ return isClassType(target) || isCallFuncableType(target) || isComplexTypeOf(target, isInheritableType);
543
561
  }
544
562
  exports.isInheritableType = isInheritableType;
563
+ function isCallFuncableType(target) {
564
+ return isInterfaceType(target) || isComponentType(target) || isComplexTypeOf(target, isCallFuncableType);
565
+ }
566
+ exports.isCallFuncableType = isCallFuncableType;
545
567
  function isCallableType(target) {
546
- return isFunctionTypeLike(target) || isTypedFunctionType(target) || (isDynamicType(target) && !isAnyReferenceType(target));
568
+ return isFunctionTypeLike(target) || isTypedFunctionType(target) || isObjectType(target) || (isDynamicType(target) && !isAnyReferenceType(target));
547
569
  }
548
570
  exports.isCallableType = isCallableType;
549
571
  function isAnyReferenceType(target) {
@@ -553,20 +575,36 @@ function isAnyReferenceType(target) {
553
575
  }
554
576
  exports.isAnyReferenceType = isAnyReferenceType;
555
577
  function isNumberType(value) {
578
+ return isIntegerType(value) ||
579
+ isLongIntegerType(value) ||
580
+ isFloatType(value) ||
581
+ isDoubleType(value);
582
+ }
583
+ exports.isNumberType = isNumberType;
584
+ function isNumberTypeLike(value) {
556
585
  return isIntegerTypeLike(value) ||
557
586
  isLongIntegerTypeLike(value) ||
558
587
  isFloatTypeLike(value) ||
559
- isDoubleTypeLike(value);
588
+ isDoubleTypeLike(value) ||
589
+ isComplexTypeOf(value, isNumberTypeLike);
560
590
  }
561
- exports.isNumberType = isNumberType;
591
+ exports.isNumberTypeLike = isNumberTypeLike;
562
592
  function isPrimitiveType(value = false) {
563
593
  return isNumberType(value) ||
564
- isBooleanTypeLike(value) ||
565
- isStringTypeLike(value);
594
+ isBooleanType(value) ||
595
+ isStringType(value);
566
596
  }
567
597
  exports.isPrimitiveType = isPrimitiveType;
598
+ function isPrimitiveTypeLike(value = false) {
599
+ return isNumberTypeLike(value) ||
600
+ isBooleanTypeLike(value) ||
601
+ isStringTypeLike(value) ||
602
+ isTypeStatementTypeOf(value, isPrimitiveTypeLike);
603
+ }
604
+ exports.isPrimitiveTypeLike = isPrimitiveTypeLike;
568
605
  function isBuiltInType(value, name) {
569
- return isInterfaceType(value) && value.name.toLowerCase() === name.toLowerCase() && value.isBuiltIn;
606
+ return (isInterfaceType(value) && value.name.toLowerCase() === name.toLowerCase() && value.isBuiltIn) ||
607
+ (isTypeStatementType(value) && isBuiltInType(value.wrappedType, name));
570
608
  }
571
609
  exports.isBuiltInType = isBuiltInType;
572
610
  const nativeTypeKinds = [
@@ -579,6 +617,20 @@ function isNativeType(value) {
579
617
  return isPrimitiveType(value) || nativeTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
580
618
  }
581
619
  exports.isNativeType = isNativeType;
620
+ function isTypeStatementTypeOf(value, typeGuard) {
621
+ return isTypeStatementType(value) && typeGuard(value.wrappedType);
622
+ }
623
+ exports.isTypeStatementTypeOf = isTypeStatementTypeOf;
624
+ function isUnionTypeOf(value, typeGuard) {
625
+ return isUnionType(value) && value.types.every(typeGuard);
626
+ }
627
+ exports.isUnionTypeOf = isUnionTypeOf;
628
+ function isComplexTypeOf(value, typeGuard) {
629
+ // TODO: add more complex type checks as needed, like IntersectionType
630
+ return isTypeStatementTypeOf(value, typeGuard) ||
631
+ isUnionTypeOf(value, typeGuard);
632
+ }
633
+ exports.isComplexTypeOf = isComplexTypeOf;
582
634
  // Literal reflection
583
635
  function isLiteralInvalid(value) {
584
636
  return isLiteralExpression(value) && value.tokens.value.kind === TokenKind_1.TokenKind.Invalid;