brighterscript 1.0.0-alpha.27 → 1.0.0-alpha.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +1 -1
  3. package/dist/AstValidationSegmenter.d.ts +1 -1
  4. package/dist/AstValidationSegmenter.js +2 -2
  5. package/dist/AstValidationSegmenter.js.map +1 -1
  6. package/dist/DiagnosticFilterer.d.ts +7 -4
  7. package/dist/DiagnosticFilterer.js +67 -37
  8. package/dist/DiagnosticFilterer.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -1
  10. package/dist/PluginInterface.js +1 -1
  11. package/dist/PluginInterface.js.map +1 -1
  12. package/dist/Program.d.ts +1 -1
  13. package/dist/Program.js +10 -6
  14. package/dist/Program.js.map +1 -1
  15. package/dist/Scope.d.ts +6 -27
  16. package/dist/Scope.js +40 -298
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/SymbolTable.d.ts +1 -1
  19. package/dist/{SymbolTableFlag.js → SymbolTypeFlag.js} +1 -1
  20. package/dist/SymbolTypeFlag.js.map +1 -0
  21. package/dist/XmlScope.d.ts +0 -8
  22. package/dist/XmlScope.js +0 -77
  23. package/dist/XmlScope.js.map +1 -1
  24. package/dist/astUtils/CachedLookups.js +4 -8
  25. package/dist/astUtils/CachedLookups.js.map +1 -1
  26. package/dist/astUtils/creators.d.ts +1 -0
  27. package/dist/astUtils/creators.js +3 -2
  28. package/dist/astUtils/creators.js.map +1 -1
  29. package/dist/astUtils/creators.spec.js +0 -10
  30. package/dist/astUtils/creators.spec.js.map +1 -1
  31. package/dist/astUtils/reflection.d.ts +1 -2
  32. package/dist/astUtils/reflection.js +3 -7
  33. package/dist/astUtils/reflection.js.map +1 -1
  34. package/dist/astUtils/reflection.spec.js +10 -15
  35. package/dist/astUtils/reflection.spec.js.map +1 -1
  36. package/dist/astUtils/visitors.d.ts +1 -2
  37. package/dist/astUtils/visitors.js.map +1 -1
  38. package/dist/astUtils/visitors.spec.js +1 -5
  39. package/dist/astUtils/visitors.spec.js.map +1 -1
  40. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  41. package/dist/bscPlugin/BscPlugin.js +4 -0
  42. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  43. package/dist/bscPlugin/SignatureHelpUtil.js +4 -3
  44. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  45. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -0
  46. package/dist/bscPlugin/completions/CompletionsProcessor.js +26 -9
  47. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  48. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +39 -0
  49. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  50. package/dist/bscPlugin/hover/HoverProcessor.js +5 -5
  51. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  52. package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -5
  53. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  54. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  55. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  56. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  57. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  58. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  59. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  60. package/dist/bscPlugin/validation/BrsFileValidator.js +1 -6
  61. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  62. package/dist/bscPlugin/validation/ScopeValidator.d.ts +28 -1
  63. package/dist/bscPlugin/validation/ScopeValidator.js +365 -7
  64. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  65. package/dist/bscPlugin/validation/ScopeValidator.spec.js +89 -3
  66. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  67. package/dist/files/BrsFile.Class.spec.js +11 -4
  68. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  69. package/dist/files/BrsFile.d.ts +12 -2
  70. package/dist/files/BrsFile.js +64 -38
  71. package/dist/files/BrsFile.js.map +1 -1
  72. package/dist/files/BrsFile.spec.js +373 -6
  73. package/dist/files/BrsFile.spec.js.map +1 -1
  74. package/dist/files/XmlFile.js +1 -1
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/index.d.ts +1 -0
  77. package/dist/index.js +1 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/interfaces.d.ts +41 -3
  80. package/dist/interfaces.js.map +1 -1
  81. package/dist/lexer/Lexer.d.ts +9 -3
  82. package/dist/lexer/Lexer.js +36 -15
  83. package/dist/lexer/Lexer.js.map +1 -1
  84. package/dist/lexer/Lexer.spec.js +76 -38
  85. package/dist/lexer/Lexer.spec.js.map +1 -1
  86. package/dist/lexer/Token.js +1 -1
  87. package/dist/lexer/Token.js.map +1 -1
  88. package/dist/lexer/TokenKind.d.ts +1 -0
  89. package/dist/lexer/TokenKind.js +4 -1
  90. package/dist/lexer/TokenKind.js.map +1 -1
  91. package/dist/parser/AstNode.d.ts +1 -2
  92. package/dist/parser/AstNode.js +0 -1
  93. package/dist/parser/AstNode.js.map +1 -1
  94. package/dist/parser/BrsTranspileState.d.ts +1 -1
  95. package/dist/parser/Expression.d.ts +71 -47
  96. package/dist/parser/Expression.js +155 -87
  97. package/dist/parser/Expression.js.map +1 -1
  98. package/dist/parser/Parser.d.ts +7 -2
  99. package/dist/parser/Parser.js +40 -87
  100. package/dist/parser/Parser.js.map +1 -1
  101. package/dist/parser/Parser.spec.js +21 -44
  102. package/dist/parser/Parser.spec.js.map +1 -1
  103. package/dist/parser/SGTypes.js +5 -5
  104. package/dist/parser/SGTypes.js.map +1 -1
  105. package/dist/parser/Statement.d.ts +92 -84
  106. package/dist/parser/Statement.js +199 -133
  107. package/dist/parser/Statement.js.map +1 -1
  108. package/dist/parser/Statement.spec.js +0 -13
  109. package/dist/parser/Statement.spec.js.map +1 -1
  110. package/dist/parser/TranspileState.d.ts +17 -8
  111. package/dist/parser/TranspileState.js +64 -6
  112. package/dist/parser/TranspileState.js.map +1 -1
  113. package/dist/parser/tests/Parser.spec.d.ts +1 -1
  114. package/dist/parser/tests/Parser.spec.js +1 -2
  115. package/dist/parser/tests/Parser.spec.js.map +1 -1
  116. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  117. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -3
  119. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +44 -0
  121. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +6 -6
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js +47 -0
  124. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  125. package/dist/parser/tests/statement/ConstStatement.spec.js +2 -2
  126. package/dist/parser/tests/statement/InterfaceStatement.spec.js +8 -1
  127. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Misc.spec.js +25 -5
  129. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  130. package/dist/preprocessor/Chunk.js +1 -2
  131. package/dist/preprocessor/Chunk.js.map +1 -1
  132. package/dist/preprocessor/PreprocessorParser.js +2 -1
  133. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  134. package/dist/types/AssociativeArrayType.d.ts +3 -0
  135. package/dist/types/AssociativeArrayType.js +9 -0
  136. package/dist/types/AssociativeArrayType.js.map +1 -1
  137. package/dist/types/BscType.d.ts +1 -1
  138. package/dist/types/BscType.js +1 -0
  139. package/dist/types/BscType.js.map +1 -1
  140. package/dist/types/ComponentType.d.ts +1 -1
  141. package/dist/types/ReferenceType.d.ts +1 -1
  142. package/dist/util.d.ts +18 -8
  143. package/dist/util.js +96 -18
  144. package/dist/util.js.map +1 -1
  145. package/package.json +6 -3
  146. package/dist/SymbolTableFlag.js.map +0 -1
  147. /package/dist/{SymbolTableFlag.d.ts → SymbolTypeFlag.d.ts} +0 -0
package/dist/Scope.js CHANGED
@@ -4,14 +4,10 @@ exports.Scope = void 0;
4
4
  /* eslint-disable @typescript-eslint/dot-notation */
5
5
  const path = require("path");
6
6
  const chalk_1 = require("chalk");
7
- const DiagnosticMessages_1 = require("./DiagnosticMessages");
8
7
  const interfaces_1 = require("./interfaces");
9
- const ClassValidator_1 = require("./validators/ClassValidator");
10
8
  const Parser_1 = require("./parser/Parser");
11
9
  const util_1 = require("./util");
12
- const globalCallables_1 = require("./globalCallables");
13
10
  const Cache_1 = require("./Cache");
14
- const vscode_uri_1 = require("vscode-uri");
15
11
  const Logger_1 = require("./Logger");
16
12
  const reflection_1 = require("./astUtils/reflection");
17
13
  const SymbolTable_1 = require("./SymbolTable");
@@ -19,8 +15,6 @@ const NamespaceType_1 = require("./types/NamespaceType");
19
15
  const ReferenceType_1 = require("./types/ReferenceType");
20
16
  const UnionType_1 = require("./types/UnionType");
21
17
  const AssociativeArrayType_1 = require("./types/AssociativeArrayType");
22
- const AstNode_1 = require("./parser/AstNode");
23
- const visitors_1 = require("./astUtils/visitors");
24
18
  /**
25
19
  * Assign some few factories to the SymbolTable to prevent cyclical imports. This file seems like the most intuitive place to do the linking
26
20
  * since Scope will be used by pretty much everything
@@ -212,21 +206,24 @@ class Scope {
212
206
  }
213
207
  return result;
214
208
  }
215
- getAllFileLinks(name, containingNamespace) {
216
- var _a, _b, _c, _d, _e, _f;
209
+ getAllFileLinks(name, containingNamespace, includeNameShadowsOutsideNamespace = false) {
210
+ var _a, _b;
217
211
  let links = [];
218
- links.push((_a = this.getClassFileLink(name)) !== null && _a !== void 0 ? _a : this.getClassFileLink(name, containingNamespace), (_b = this.getInterfaceFileLink(name)) !== null && _b !== void 0 ? _b : this.getInterfaceFileLink(name, containingNamespace), (_c = this.getConstFileLink(name)) !== null && _c !== void 0 ? _c : this.getConstFileLink(name, containingNamespace), (_d = this.getEnumFileLink(name)) !== null && _d !== void 0 ? _d : this.getEnumFileLink(name, containingNamespace));
212
+ links.push(this.getClassFileLink(name, containingNamespace), this.getInterfaceFileLink(name, containingNamespace), this.getConstFileLink(name, containingNamespace), this.getEnumFileLink(name, containingNamespace));
213
+ if (includeNameShadowsOutsideNamespace && containingNamespace) {
214
+ links.push(this.getClassFileLink(name), this.getInterfaceFileLink(name), this.getConstFileLink(name), this.getEnumFileLink(name));
215
+ }
219
216
  const nameSpaces = this.getNamespacesWithRoot(name, containingNamespace);
220
217
  if ((nameSpaces === null || nameSpaces === void 0 ? void 0 : nameSpaces.length) > 0) {
221
- const nsContainersWithStatement = (_e = nameSpaces.filter(nsContainer => { var _a; return ((_a = nsContainer === null || nsContainer === void 0 ? void 0 : nsContainer.namespaceStatements) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _e === void 0 ? void 0 : _e[0];
218
+ const nsContainersWithStatement = (_a = nameSpaces.filter(nsContainer => { var _a; return ((_a = nsContainer === null || nsContainer === void 0 ? void 0 : nsContainer.namespaceStatements) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _a === void 0 ? void 0 : _a[0];
222
219
  if (nsContainersWithStatement) {
223
- links.push({ item: (_f = nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.namespaceStatements) === null || _f === void 0 ? void 0 : _f[0], file: nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.file });
220
+ links.push({ item: (_b = nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.namespaceStatements) === null || _b === void 0 ? void 0 : _b[0], file: nsContainersWithStatement === null || nsContainersWithStatement === void 0 ? void 0 : nsContainersWithStatement.file });
224
221
  }
225
222
  }
226
223
  const fullNameLower = (containingNamespace ? `${containingNamespace}.${name}` : name).toLowerCase();
227
224
  const callable = this.getCallableByName(name);
228
225
  if (callable) {
229
- if (!callable.hasNamespace || callable.getName(Parser_1.ParseMode.BrighterScript).toLowerCase() === fullNameLower) {
226
+ if ((!callable.hasNamespace && includeNameShadowsOutsideNamespace) || callable.getName(Parser_1.ParseMode.BrighterScript).toLowerCase() === fullNameLower) {
230
227
  // this callable has no namespace, or has same namespace
231
228
  links.push({ item: callable.functionStatement, file: callable.file });
232
229
  }
@@ -516,6 +513,36 @@ class Scope {
516
513
  return result;
517
514
  });
518
515
  }
516
+ getCallableContainerMap() {
517
+ return this.cache.getOrAdd('callableContainerMap', () => {
518
+ let callables = this.getAllCallables();
519
+ //sort the callables by filepath and then method name, so the errors will be consistent
520
+ // eslint-disable-next-line prefer-arrow-callback
521
+ callables = callables.sort((a, b) => {
522
+ const pathA = a.callable.file.srcPath;
523
+ const pathB = b.callable.file.srcPath;
524
+ //sort by path
525
+ if (pathA < pathB) {
526
+ return -1;
527
+ }
528
+ else if (pathA > pathB) {
529
+ return 1;
530
+ }
531
+ //sort by function name
532
+ const funcA = b.callable.name;
533
+ const funcB = b.callable.name;
534
+ if (funcA < funcB) {
535
+ return -1;
536
+ }
537
+ else if (funcA > funcB) {
538
+ return 1;
539
+ }
540
+ return 0;
541
+ });
542
+ //get a list of all callables, indexed by their lower case names
543
+ return util_1.util.getCallableContainersByLowerName(callables);
544
+ });
545
+ }
519
546
  /**
520
547
  * Iterate over Brs files not shadowed by typedefs
521
548
  */
@@ -614,32 +641,6 @@ class Scope {
614
641
  }
615
642
  //clear the scope's errors list (we will populate them from this method)
616
643
  this.clearScopeLevelDiagnostics();
617
- let callables = this.getAllCallables();
618
- //sort the callables by filepath and then method name, so the errors will be consistent
619
- // eslint-disable-next-line prefer-arrow-callback
620
- callables = callables.sort((a, b) => {
621
- const pathA = a.callable.file.srcPath;
622
- const pathB = b.callable.file.srcPath;
623
- //sort by path
624
- if (pathA < pathB) {
625
- return -1;
626
- }
627
- else if (pathA > pathB) {
628
- return 1;
629
- }
630
- //sort by function name
631
- const funcA = b.callable.name;
632
- const funcB = b.callable.name;
633
- if (funcA < funcB) {
634
- return -1;
635
- }
636
- else if (funcA > funcB) {
637
- return 1;
638
- }
639
- return 0;
640
- });
641
- //get a list of all callables, indexed by their lower case names
642
- let callableContainerMap = util_1.util.getCallableContainersByLowerName(callables);
643
644
  //Since statements from files are shared across multiple scopes, we need to link those statements to the current scope
644
645
  this.linkSymbolTable();
645
646
  const scopeValidateEvent = {
@@ -650,28 +651,12 @@ class Scope {
650
651
  };
651
652
  this.program.plugins.emit('beforeScopeValidate', scopeValidateEvent);
652
653
  this.program.plugins.emit('onScopeValidate', scopeValidateEvent);
653
- this._validate(callableContainerMap);
654
654
  this.program.plugins.emit('afterScopeValidate', scopeValidateEvent);
655
655
  //unlink all symbol tables from this scope (so they don't accidentally stick around)
656
656
  this.unlinkSymbolTable();
657
657
  this.isValidated = true;
658
658
  });
659
659
  }
660
- _validate(callableContainerMap) {
661
- //find all duplicate function declarations
662
- this.diagnosticFindDuplicateFunctionDeclarations(callableContainerMap);
663
- //detect missing and incorrect-case script imports
664
- this.diagnosticValidateScriptImportPaths();
665
- //enforce a series of checks on the bodies of class methods
666
- this.validateClasses();
667
- //do many per-file checks
668
- this.enumerateBrsFiles((file) => {
669
- this.diagnosticDetectShadowedLocalVars(file, callableContainerMap);
670
- this.diagnosticDetectFunctionCollisions(file);
671
- this.detectVariableNamespaceCollisions(file);
672
- this.detectNameCollisions(file);
673
- });
674
- }
675
660
  clearAstSegmentDiagnostics(astSegment) {
676
661
  this.diagnostics = this.diagnostics.filter(diag => !(diag.origin === interfaces_1.DiagnosticOrigin.ASTSegment && diag.astSegment === astSegment));
677
662
  }
@@ -766,7 +751,7 @@ class Scope {
766
751
  }
767
752
  }
768
753
  else {
769
- this.program.logger.error(`Invalid existing type for namespace ${nsName} - ${currentNSType.toString()}`);
754
+ // Something else already used the name this namespace is using.
770
755
  continue;
771
756
  }
772
757
  }
@@ -792,220 +777,6 @@ class Scope {
792
777
  }
793
778
  this.linkSymbolTableDisposables = [];
794
779
  }
795
- detectVariableNamespaceCollisions(file) {
796
- var _a, _b;
797
- //find all function parameters
798
- for (let func of file['_cachedLookups'].functionExpressions) {
799
- for (let param of func.parameters) {
800
- let lowerParamName = param.tokens.name.text.toLowerCase();
801
- let namespace = this.getNamespace(lowerParamName, (_a = param.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript).toLowerCase());
802
- //see if the param matches any starting namespace part
803
- if (namespace) {
804
- this.diagnostics.push(Object.assign(Object.assign({ origin: interfaces_1.DiagnosticOrigin.Scope, file: file }, DiagnosticMessages_1.DiagnosticMessages.parameterMayNotHaveSameNameAsNamespace(param.tokens.name.text)), { range: param.tokens.name.range, relatedInformation: [{
805
- message: 'Namespace declared here',
806
- location: util_1.util.createLocation(vscode_uri_1.URI.file(namespace.file.srcPath).toString(), namespace.nameRange)
807
- }] }));
808
- }
809
- }
810
- }
811
- for (let assignment of file['_cachedLookups'].assignmentStatements) {
812
- let lowerAssignmentName = assignment.tokens.name.text.toLowerCase();
813
- let namespace = this.getNamespace(lowerAssignmentName, (_b = assignment.findAncestor(reflection_1.isNamespaceStatement)) === null || _b === void 0 ? void 0 : _b.getName(Parser_1.ParseMode.BrighterScript).toLowerCase());
814
- //see if the param matches any starting namespace part
815
- if (namespace) {
816
- this.diagnostics.push(Object.assign(Object.assign({ origin: interfaces_1.DiagnosticOrigin.Scope, file: file }, DiagnosticMessages_1.DiagnosticMessages.variableMayNotHaveSameNameAsNamespace(assignment.tokens.name.text)), { range: assignment.tokens.name.range, relatedInformation: [{
817
- message: 'Namespace declared here',
818
- location: util_1.util.createLocation(vscode_uri_1.URI.file(namespace.file.srcPath).toString(), namespace.nameRange)
819
- }] }));
820
- }
821
- }
822
- }
823
- /**
824
- * Find various function collisions
825
- */
826
- diagnosticDetectFunctionCollisions(file) {
827
- for (let func of file.callables) {
828
- const funcName = func.getName(Parser_1.ParseMode.BrighterScript);
829
- const lowerFuncName = funcName === null || funcName === void 0 ? void 0 : funcName.toLowerCase();
830
- if (lowerFuncName) {
831
- //find function declarations with the same name as a stdlib function
832
- if (globalCallables_1.globalCallableMap.has(lowerFuncName)) {
833
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.scopeFunctionShadowedByBuiltInFunction()), { range: func.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
834
- }
835
- //find any functions that have the same name as a class
836
- const klassLink = this.getClassFileLink(lowerFuncName);
837
- if (klassLink) {
838
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.functionCannotHaveSameNameAsClass(funcName)), { range: func.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope, relatedInformation: [{
839
- location: util_1.util.createLocation(vscode_uri_1.URI.file(klassLink.file.srcPath).toString(), klassLink.item.tokens.name.range),
840
- message: 'Original class declared here'
841
- }] }));
842
- }
843
- }
844
- }
845
- }
846
- detectNameCollisions(file) {
847
- file.ast.walk((0, visitors_1.createVisitor)({
848
- NamespaceStatement: (nsStmt) => {
849
- var _a;
850
- this.validateNameCollision(file, nsStmt, (_a = nsStmt.getNameParts()) === null || _a === void 0 ? void 0 : _a[0]);
851
- },
852
- ClassStatement: (classStmt) => {
853
- this.validateNameCollision(file, classStmt, classStmt.tokens.name);
854
- },
855
- InterfaceStatement: (ifaceStmt) => {
856
- this.validateNameCollision(file, ifaceStmt, ifaceStmt.tokens.name);
857
- },
858
- ConstStatement: (constStmt) => {
859
- this.validateNameCollision(file, constStmt, constStmt.tokens.name);
860
- },
861
- EnumStatement: (enumStmt) => {
862
- this.validateNameCollision(file, enumStmt, enumStmt.tokens.name);
863
- }
864
- }), {
865
- walkMode: visitors_1.WalkMode.visitStatements
866
- });
867
- }
868
- validateNameCollision(file, node, nameIdentifier) {
869
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
870
- const name = nameIdentifier === null || nameIdentifier === void 0 ? void 0 : nameIdentifier.text;
871
- if (!name || !node) {
872
- return;
873
- }
874
- const nameRange = nameIdentifier.range;
875
- const containingNamespace = (_a = node.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
876
- const links = this.getAllFileLinks(name, containingNamespace);
877
- for (let link of links) {
878
- if (!link || link.item === node) {
879
- // refers to same node
880
- continue;
881
- }
882
- if ((0, reflection_1.isNamespaceStatement)(link.item) && (0, reflection_1.isNamespaceStatement)(node)) {
883
- // namespace can be declared multiple times
884
- continue;
885
- }
886
- if ((0, reflection_1.isFunctionStatement)(link.item) || ((_b = link.file) === null || _b === void 0 ? void 0 : _b.destPath) === 'global') {
887
- // the thing found is a function OR from global (which is also a function)
888
- if ((0, reflection_1.isNamespaceStatement)(node)) {
889
- // these are not callable functions in transpiled code - ignore them
890
- continue;
891
- }
892
- }
893
- const thisNodeKindName = util_1.util.getAstNodeFriendlyName(node);
894
- const thatNodeKindName = link.file.srcPath === 'global' ? 'Global Function' : (_c = util_1.util.getAstNodeFriendlyName(link.item)) !== null && _c !== void 0 ? _c : '';
895
- let thatNameRange = (_g = (_f = (_e = (_d = link.item) === null || _d === void 0 ? void 0 : _d.tokens) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.range) !== null && _g !== void 0 ? _g : (_h = link.item) === null || _h === void 0 ? void 0 : _h.range;
896
- // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
897
- switch ((_j = link.item) === null || _j === void 0 ? void 0 : _j.kind) {
898
- case AstNode_1.AstNodeKind.ClassStatement: {
899
- thatNameRange = (_k = link.item.tokens.name) === null || _k === void 0 ? void 0 : _k.range;
900
- break;
901
- }
902
- case AstNode_1.AstNodeKind.NamespaceStatement: {
903
- thatNameRange = (_m = (_l = link.item.getNameParts()) === null || _l === void 0 ? void 0 : _l[0]) === null || _m === void 0 ? void 0 : _m.range;
904
- break;
905
- }
906
- }
907
- const relatedInformation = thatNameRange ? [{
908
- message: `${thatNodeKindName} declared here`,
909
- location: util_1.util.createLocation(vscode_uri_1.URI.file((_o = link.file) === null || _o === void 0 ? void 0 : _o.srcPath).toString(), thatNameRange)
910
- }] : undefined;
911
- this.diagnostics.push(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.nameCollision(thisNodeKindName, thatNodeKindName, name)), { origin: interfaces_1.DiagnosticOrigin.Scope, range: nameRange, relatedInformation: relatedInformation }));
912
- }
913
- }
914
- validateClasses() {
915
- let validator = new ClassValidator_1.BsClassValidator(this);
916
- validator.validate();
917
- this.diagnostics.push(...validator.diagnostics.map(diag => {
918
- return Object.assign(Object.assign({}, diag), { origin: interfaces_1.DiagnosticOrigin.Scope });
919
- }));
920
- }
921
- /**
922
- * Detect local variables (function scope) that have the same name as scope calls
923
- */
924
- diagnosticDetectShadowedLocalVars(file, callableContainerMap) {
925
- var _a;
926
- const classMap = this.getClassMap();
927
- //loop through every function scope
928
- for (let funcScope of file.functionScopes) {
929
- //every var declaration in this function scope
930
- for (let varDeclaration of funcScope.variableDeclarations) {
931
- const varName = varDeclaration.name;
932
- const lowerVarName = varName.toLowerCase();
933
- const varIsFunction = () => {
934
- return (0, reflection_1.isCallableType)(varDeclaration.getType());
935
- };
936
- if (
937
- //has same name as stdlib
938
- globalCallables_1.globalCallableMap.has(lowerVarName)) {
939
- //local var function with same name as stdlib function
940
- if (varIsFunction()) {
941
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarFunctionShadowsParentFunction('stdlib')), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
942
- }
943
- }
944
- else if (callableContainerMap.has(lowerVarName)) {
945
- //is same name as a callable
946
- if (varIsFunction()) {
947
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarFunctionShadowsParentFunction('scope')), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
948
- }
949
- else {
950
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarShadowedByScopedFunction()), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
951
- }
952
- //has the same name as an in-scope class
953
- }
954
- else if (classMap.has(lowerVarName)) {
955
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarSameNameAsClass((_a = classMap.get(lowerVarName)) === null || _a === void 0 ? void 0 : _a.item.getName(Parser_1.ParseMode.BrighterScript))), { range: varDeclaration.nameRange, file: file, origin: interfaces_1.DiagnosticOrigin.Scope }));
956
- }
957
- }
958
- }
959
- }
960
- /**
961
- * Create diagnostics for any duplicate function declarations
962
- */
963
- diagnosticFindDuplicateFunctionDeclarations(callableContainersByLowerName) {
964
- //for each list of callables with the same name
965
- for (let [lowerName, callableContainers] of callableContainersByLowerName) {
966
- let globalCallables = [];
967
- let nonGlobalCallables = [];
968
- let ownCallables = [];
969
- let ancestorNonGlobalCallables = [];
970
- for (let container of callableContainers) {
971
- if (container.scope === this.program.globalScope) {
972
- globalCallables.push(container);
973
- }
974
- else {
975
- nonGlobalCallables.push(container);
976
- if (container.scope === this) {
977
- ownCallables.push(container);
978
- }
979
- else {
980
- ancestorNonGlobalCallables.push(container);
981
- }
982
- }
983
- }
984
- //add info diagnostics about child shadowing parent functions
985
- if (ownCallables.length > 0 && ancestorNonGlobalCallables.length > 0) {
986
- for (let container of ownCallables) {
987
- //skip the init function (because every component will have one of those){
988
- if (lowerName !== 'init') {
989
- let shadowedCallable = ancestorNonGlobalCallables[ancestorNonGlobalCallables.length - 1];
990
- if (!!shadowedCallable && shadowedCallable.callable.file === container.callable.file) {
991
- //same file: skip redundant imports
992
- continue;
993
- }
994
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.overridesAncestorFunction(container.callable.name, container.scope.name, shadowedCallable.callable.file.destPath,
995
- //grab the last item in the list, which should be the closest ancestor's version
996
- shadowedCallable.scope.name)), { range: container.callable.nameRange, file: container.callable.file, origin: interfaces_1.DiagnosticOrigin.Scope }));
997
- }
998
- }
999
- }
1000
- //add error diagnostics about duplicate functions in the same scope
1001
- if (ownCallables.length > 1) {
1002
- for (let callableContainer of ownCallables) {
1003
- let callable = callableContainer.callable;
1004
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateFunctionImplementation(callable.name, callableContainer.scope.name)), { range: util_1.util.createRange(callable.nameRange.start.line, callable.nameRange.start.character, callable.nameRange.start.line, callable.nameRange.end.character), file: callable.file, origin: interfaces_1.DiagnosticOrigin.Scope }));
1005
- }
1006
- }
1007
- }
1008
- }
1009
780
  /**
1010
781
  * Get the list of all script imports for this scope
1011
782
  */
@@ -1021,35 +792,6 @@ class Scope {
1021
792
  });
1022
793
  return result;
1023
794
  }
1024
- /**
1025
- * Verify that all of the scripts imported by each file in this scope actually exist
1026
- */
1027
- diagnosticValidateScriptImportPaths() {
1028
- let scriptImports = this.getOwnScriptImports();
1029
- //verify every script import
1030
- for (let scriptImport of scriptImports) {
1031
- let referencedFile = this.getFileByRelativePath(scriptImport.destPath);
1032
- //if we can't find the file
1033
- if (!referencedFile) {
1034
- //skip the default bslib file, it will exist at transpile time but should not show up in the program during validation cycle
1035
- if (scriptImport.destPath === this.program.bslibPkgPath) {
1036
- continue;
1037
- }
1038
- let dInfo;
1039
- if (scriptImport.text.trim().length === 0) {
1040
- dInfo = DiagnosticMessages_1.DiagnosticMessages.scriptSrcCannotBeEmpty();
1041
- }
1042
- else {
1043
- dInfo = DiagnosticMessages_1.DiagnosticMessages.referencedFileDoesNotExist();
1044
- }
1045
- this.diagnostics.push(Object.assign(Object.assign({}, dInfo), { range: scriptImport.filePathRange, file: scriptImport.sourceFile, origin: interfaces_1.DiagnosticOrigin.Scope }));
1046
- //if the character casing of the script import path does not match that of the actual path
1047
- }
1048
- else if (scriptImport.destPath !== referencedFile.destPath) {
1049
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.scriptImportCaseMismatch(referencedFile.destPath)), { range: scriptImport.filePathRange, file: scriptImport.sourceFile, origin: interfaces_1.DiagnosticOrigin.Scope }));
1050
- }
1051
- }
1052
- }
1053
795
  /**
1054
796
  * Find the file with the specified relative path
1055
797
  */
package/dist/Scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { ExtraSymbolData, GetTypeOptions } from './interfaces';
3
3
  import { CacheVerifier } from './CacheVerifier';
4
4
  import type { ReferenceType } from './types/ReferenceType';
5
5
  import type { UnionType } from './types/UnionType';
6
- import type { SymbolTypeFlag } from './SymbolTableFlag';
6
+ import type { SymbolTypeFlag } from './SymbolTypeFlag';
7
7
  /**
8
8
  * Stores the types associated with variables and functions in the Brighterscript code
9
9
  * Can be part of a hierarchy, so lookups can reference parent scopes
@@ -10,4 +10,4 @@ var SymbolTypeFlag;
10
10
  SymbolTypeFlag[SymbolTypeFlag["protected"] = 16] = "protected";
11
11
  SymbolTypeFlag[SymbolTypeFlag["postTranspile"] = 32] = "postTranspile";
12
12
  })(SymbolTypeFlag = exports.SymbolTypeFlag || (exports.SymbolTypeFlag = {}));
13
- //# sourceMappingURL=SymbolTableFlag.js.map
13
+ //# sourceMappingURL=SymbolTypeFlag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SymbolTypeFlag.js","sourceRoot":"","sources":["../src/SymbolTypeFlag.ts"],"names":[],"mappings":";;;AACA,IAAkB,cAOjB;AAPD,WAAkB,cAAc;IAC5B,yDAAW,CAAA;IACX,2DAAY,CAAA;IACZ,2DAAY,CAAA;IACZ,yDAAW,CAAA;IACX,8DAAc,CAAA;IACd,sEAAkB,CAAA;AACtB,CAAC,EAPiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAO/B"}
@@ -1,6 +1,5 @@
1
1
  import { Scope } from './Scope';
2
2
  import type { XmlFile } from './files/XmlFile';
3
- import type { CallableContainerMap } from './interfaces';
4
3
  import type { Program } from './Program';
5
4
  import type { BscFile } from './files/BscFile';
6
5
  import { ComponentType } from './types/ComponentType';
@@ -15,13 +14,6 @@ export declare class XmlScope extends Scope {
15
14
  */
16
15
  getParentScope(): Scope;
17
16
  getComponentType(): ComponentType;
18
- protected _validate(callableContainerMap: CallableContainerMap): void;
19
- private diagnosticValidateInterface;
20
- private diagnosticMissingAttribute;
21
- /**
22
- * Detect when a child has imported a script that an ancestor also imported
23
- */
24
- private diagnosticDetectDuplicateAncestorScriptImports;
25
17
  getAllFiles(): BscFile[];
26
18
  /**
27
19
  * Get the list of files referenced by this scope that are actually loaded in the program.