brighterscript 1.0.0-alpha.25 → 1.0.0-alpha.26

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 (120) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/bsconfig.schema.json +5 -0
  3. package/dist/AstValidationSegmenter.js +4 -4
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +1 -0
  6. package/dist/Program.d.ts +1 -1
  7. package/dist/Program.js +18 -19
  8. package/dist/Program.js.map +1 -1
  9. package/dist/Scope.d.ts +0 -5
  10. package/dist/Scope.js +8 -14
  11. package/dist/Scope.js.map +1 -1
  12. package/dist/XmlScope.d.ts +0 -5
  13. package/dist/XmlScope.js +3 -21
  14. package/dist/XmlScope.js.map +1 -1
  15. package/dist/astUtils/CachedLookups.js +3 -3
  16. package/dist/astUtils/CachedLookups.js.map +1 -1
  17. package/dist/astUtils/Editor.spec.js +1 -1
  18. package/dist/astUtils/Editor.spec.js.map +1 -1
  19. package/dist/astUtils/creators.js +32 -12
  20. package/dist/astUtils/creators.js.map +1 -1
  21. package/dist/astUtils/creators.spec.js +4 -4
  22. package/dist/astUtils/creators.spec.js.map +1 -1
  23. package/dist/astUtils/reflection.d.ts +1 -1
  24. package/dist/astUtils/reflection.js +1 -1
  25. package/dist/astUtils/reflection.js.map +1 -1
  26. package/dist/astUtils/reflection.spec.js +59 -42
  27. package/dist/astUtils/reflection.spec.js.map +1 -1
  28. package/dist/astUtils/visitors.spec.js +30 -19
  29. package/dist/astUtils/visitors.spec.js.map +1 -1
  30. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  31. package/dist/bscPlugin/BscPlugin.js +7 -3
  32. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  33. package/dist/bscPlugin/CallExpressionInfo.js +7 -7
  34. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  35. package/dist/bscPlugin/SignatureHelpUtil.js +5 -4
  36. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  37. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
  38. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  39. package/dist/bscPlugin/completions/CompletionsProcessor.js +3 -3
  40. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  41. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  42. package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
  43. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  44. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +1 -0
  45. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
  46. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  47. package/dist/bscPlugin/hover/HoverProcessor.js +2 -2
  48. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  49. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +0 -2
  50. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  51. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +8 -6
  52. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  53. package/dist/bscPlugin/validation/BrsFileValidator.js +28 -28
  54. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  55. package/dist/bscPlugin/validation/ScopeValidator.d.ts +4 -0
  56. package/dist/bscPlugin/validation/ScopeValidator.js +51 -20
  57. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  58. package/dist/bscPlugin/validation/ScopeValidator.spec.js +73 -0
  59. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  60. package/dist/files/BrsFile.Class.spec.js +3 -3
  61. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  62. package/dist/files/BrsFile.d.ts +4 -11
  63. package/dist/files/BrsFile.js +39 -206
  64. package/dist/files/BrsFile.js.map +1 -1
  65. package/dist/files/BrsFile.spec.js +56 -2
  66. package/dist/files/BrsFile.spec.js.map +1 -1
  67. package/dist/interfaces.d.ts +32 -1
  68. package/dist/interfaces.js.map +1 -1
  69. package/dist/parser/AstNode.spec.js +6 -6
  70. package/dist/parser/AstNode.spec.js.map +1 -1
  71. package/dist/parser/Expression.d.ts +288 -145
  72. package/dist/parser/Expression.js +310 -271
  73. package/dist/parser/Expression.js.map +1 -1
  74. package/dist/parser/Parser.Class.spec.js +11 -11
  75. package/dist/parser/Parser.Class.spec.js.map +1 -1
  76. package/dist/parser/Parser.d.ts +5 -0
  77. package/dist/parser/Parser.js +315 -120
  78. package/dist/parser/Parser.js.map +1 -1
  79. package/dist/parser/Parser.spec.js +42 -185
  80. package/dist/parser/Parser.spec.js.map +1 -1
  81. package/dist/parser/Statement.d.ts +332 -188
  82. package/dist/parser/Statement.js +475 -364
  83. package/dist/parser/Statement.js.map +1 -1
  84. package/dist/parser/Statement.spec.js +2 -2
  85. package/dist/parser/Statement.spec.js.map +1 -1
  86. package/dist/parser/tests/controlFlow/For.spec.js +1 -1
  87. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  88. package/dist/parser/tests/controlFlow/ForEach.spec.js +2 -2
  89. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  90. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -1
  91. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  92. package/dist/parser/tests/expression/Call.spec.js +11 -11
  93. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  94. package/dist/parser/tests/expression/Indexing.spec.js +30 -5
  95. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  96. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +2 -2
  97. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  98. package/dist/parser/tests/expression/TernaryExpression.spec.js +2 -2
  99. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  100. package/dist/parser/tests/statement/ConstStatement.spec.js +1 -1
  101. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  102. package/dist/parser/tests/statement/Dim.spec.js +8 -8
  103. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  104. package/dist/parser/tests/statement/Enum.spec.js +2 -2
  105. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  106. package/dist/parser/tests/statement/LibraryStatement.spec.js +2 -2
  107. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  108. package/dist/parser/tests/statement/Misc.spec.js +2 -2
  109. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  110. package/dist/parser/tests/statement/PrintStatement.spec.js +1 -1
  111. package/dist/parser/tests/statement/TryCatch.spec.js +1 -1
  112. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  113. package/dist/types/BuiltInInterfaceAdder.js +11 -4
  114. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  115. package/dist/util.d.ts +17 -8
  116. package/dist/util.js +96 -51
  117. package/dist/util.js.map +1 -1
  118. package/dist/validators/ClassValidator.js +6 -6
  119. package/dist/validators/ClassValidator.js.map +1 -1
  120. package/package.json +1 -1
@@ -64,7 +64,6 @@ class BrsFileSemanticTokensProcessor {
64
64
  }
65
65
  }
66
66
  addToken(locatable, type, modifiers = []) {
67
- console.log(' - ', locatable.text, util_1.default.rangeToString(locatable.range), type);
68
67
  this.event.semanticTokens.push({
69
68
  range: locatable.range,
70
69
  tokenType: type,
@@ -96,7 +95,6 @@ class BrsFileSemanticTokensProcessor {
96
95
  else if ((0, reflection_1.isNewExpression)(node)) {
97
96
  node = node.call.callee;
98
97
  }
99
- console.log(node.kind, util_1.default.rangeToString(node.range));
100
98
  const containingNamespaceNameLower = (_a = node.findAncestor(reflection_1.isNamespaceStatement)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript).toLowerCase();
101
99
  const tokens = util_1.default.getAllDottedGetParts(node);
102
100
  const processedNames = [];
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFileSemanticTokensProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.ts"],"names":[],"mappings":";;;AACA,mFAAwE;AACxE,mFAAoE;AACpE,0DAAkP;AAIlP,gDAAgD;AAEhD,qCAA8B;AAC9B,mDAAmD;AAGnD,MAAa,8BAA8B;IACvC,YACW,KAAwC;QAAxC,UAAK,GAAL,KAAK,CAAmC;IAGnD,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,uBAAuB;QAC3B,2DAA2D;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE;YAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,mDAAkB,CAAC,QAAQ,EAAE,CAAC,uDAAsB,CAAC,QAAQ,EAAE,uDAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;SAClI;IACL,CAAC;IAEO,aAAa;QAEjB,MAAM,OAAO,GAAG,EAAuE,CAAC;QAExF,sCAAsC;QACtC,2DAA2D;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,EAAE;YACtE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAA,wBAAW,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;oBAChE,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAqB,iCAAoB,CAAC,CAAC;oBAC/E,OAAO,CAAC,IAAI,CAAC;wBACT,SAAS,EAAE,cAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wBAChG,aAAa,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC;wBAC3D,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK;qBACpC,CAAC,CAAC;iBACN;aACJ;SACJ;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACvB,IACI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACxB,0CAA0C;gBAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAC3E;gBACE,MAAM,MAAM,GAAG,cAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,mDAAkB,CAAC,KAAK,EAAE,mDAAkB,CAAC,SAAS,CAAC,CAAC;aAC5F;SACJ;IACL,CAAC;IAED;;;OAGG;IACK,SAAS,CAAC,UAAuB,EAAE,GAAG,kBAAwC;;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,uCAAuC;YACvC,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAE;gBAClB,IAAI,CAAC,QAAQ,CACT,UAAU,CAAC,CAAC,CAAC;gBACb,wDAAwD;gBACxD,MAAA,kBAAkB,CAAC,CAAC,CAAC,mCAAI,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7E,CAAC;aACL;SACJ;IACL,CAAC;IAEO,QAAQ,CAAC,SAAoB,EAAE,IAAwB,EAAE,YAAsC,EAAE;QAErG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,cAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,SAAS;SAC5B,CAAC,CAAC;IACP,CAAC;IAEO,YAAY;;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEnC,uEAAuE;QACvE,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QACD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG;YACV,2DAA2D;YAC3D,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW;YAChD,gGAAgG;YAChG,2DAA2D;YAC3D,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,oBAAoB;YACzD,2DAA2D;YAC3D,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;SACzF,CAAC;QAEF,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACpB,2EAA2E;YAC3E,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;aACtB;iBAAM,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;gBAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,cAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEvD,MAAM,4BAA4B,GAAG,MAAA,IAAI,CAAC,YAAY,CAAqB,iCAAoB,CAAC,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;YAClJ,MAAM,MAAM,GAAG,cAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAAE;gBAC9B,cAAc,CAAC,IAAI,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,UAAU,CAAC,CAAC;iBACvD;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBAChE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,IAAI,CAAC,CAAC;iBACjD;qBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,KAAK,CAAC,CAAC;iBAClD;qBAAM,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,SAAS,CAAC,CAAC;iBACtD;qBAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,QAAQ,CAAC,CAAC;iBACrD;qBAAM,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,SAAS,CAAC,CAAC;iBACtD;qBAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;oBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mDAAkB,CAAC,QAAQ,EAAE,CAAC,uDAAsB,CAAC,QAAQ,EAAE,uDAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;iBACvH;qBAAM;oBACH,MAAM,SAAS,GAAG,EAAE,CAAC;oBACrB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,4BAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACpH,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,EAAE,EAAE;wBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;qBAClH;iBACJ;aACJ;SACJ;QACD,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC9B,CAAC;IAED,+EAA+E;IACvE,4BAA4B,CAAC,IAAa,EAAE,SAA0B,EAAE,UAAU,GAAG,KAAK;QAC9F,IAAI,IAAA,6BAAgB,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,CAAC,EAAE;YAC3C,OAAO,mDAAkB,CAAC,QAAQ,CAAC;SACtC;aAAM,IAAI,IAAA,wBAAW,EAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,mDAAkB,CAAC,KAAK,CAAC;SACnC;aAAM,IAAI,IAAA,2BAAc,EAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,UAAU,CAAC,CAAC,CAAC,mDAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,mDAAkB,CAAC,QAAQ,CAAC;SAC/E;aAAM,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,mDAAkB,CAAC,SAAS,CAAC;SACvC;aAAM,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,mDAAkB,CAAC,KAAK,CAAC;SACnC;aAAM,IAAI,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE;YACzB,OAAO,mDAAkB,CAAC,IAAI,CAAC;SAClC;aAAM,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,EAAE;YAC/B,OAAO,mDAAkB,CAAC,UAAU,CAAC;SACxC;aAAM,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,mDAAkB,CAAC,SAAS,CAAC;SACvC;aAAM,IAAI,IAAA,yBAAY,EAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,mDAAkB,CAAC,IAAI,CAAC;SAClC;QACD,OAAO,UAAU,CAAC,CAAC,CAAC,mDAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,mDAAkB,CAAC,QAAQ,CAAC;IAClF,CAAC;CACJ;AApKD,wEAoKC"}
1
+ {"version":3,"file":"BrsFileSemanticTokensProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,8 @@ class BrsFilePreTranspileProcessor {
24
24
  file.ast.walk((0, visitors_1.createVisitor)({
25
25
  FunctionStatement: (statement) => {
26
26
  //add the bslib prefix
27
- if (!statement.name.text.startsWith('bslib_')) {
28
- editor.setProperty(statement.name, 'text', `bslib_${statement.name.text}`);
27
+ if (!statement.tokens.name.text.startsWith('bslib_')) {
28
+ editor.setProperty(statement.tokens.name, 'text', `bslib_${statement.tokens.name.text}`);
29
29
  }
30
30
  }
31
31
  }), {
@@ -69,9 +69,11 @@ class BrsFilePreTranspileProcessor {
69
69
  const value = result.item.getMemberValue(memberName);
70
70
  return {
71
71
  enum: result.item,
72
- value: new Expression_1.LiteralExpression((0, creators_1.createToken)(
73
- //just use float literal for now...it will transpile properly with any literal value
74
- (value === null || value === void 0 ? void 0 : value.startsWith('"')) ? TokenKind_1.TokenKind.StringLiteral : TokenKind_1.TokenKind.FloatLiteral, value))
72
+ value: new Expression_1.LiteralExpression({
73
+ value: (0, creators_1.createToken)(
74
+ //just use float literal for now...it will transpile properly with any literal value
75
+ (value === null || value === void 0 ? void 0 : value.startsWith('"')) ? TokenKind_1.TokenKind.StringLiteral : TokenKind_1.TokenKind.FloatLiteral, value)
76
+ })
75
77
  };
76
78
  }
77
79
  }
@@ -83,7 +85,7 @@ class BrsFilePreTranspileProcessor {
83
85
  for (let part of parts) {
84
86
  let entityName;
85
87
  if ((0, reflection_1.isVariableExpression)(part) || (0, reflection_1.isDottedGetExpression)(part)) {
86
- processedNames.push((_c = (_b = part === null || part === void 0 ? void 0 : part.name) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase());
88
+ processedNames.push((_c = (_b = part === null || part === void 0 ? void 0 : part.tokens.name) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase());
87
89
  entityName = processedNames.join('.');
88
90
  }
89
91
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFileTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrsFileTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ class BrsFileValidator {
47
47
  },
48
48
  CallfuncExpression: (node) => {
49
49
  if (node.args.length > 5) {
50
- this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.callfuncHasToManyArgs(node.args.length)), { range: node.methodName.range }));
50
+ this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.callfuncHasToManyArgs(node.args.length)), { range: node.tokens.methodName.range }));
51
51
  }
52
52
  },
53
53
  EnumStatement: (node) => {
@@ -61,18 +61,18 @@ class BrsFileValidator {
61
61
  },
62
62
  ClassStatement: (node) => {
63
63
  var _a, _b;
64
- this.validateDeclarationLocations(node, 'class', () => util_1.default.createBoundingRange(node.classKeyword, node.name));
64
+ this.validateDeclarationLocations(node, 'class', () => util_1.default.createBoundingRange(node.tokens.class, node.tokens.name));
65
65
  //register this class
66
66
  const nodeType = node.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
67
67
  node.getSymbolTable().addSymbol('m', undefined, nodeType, SymbolTable_1.SymbolTypeFlag.runtime);
68
68
  // eslint-disable-next-line no-bitwise
69
- (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol((_b = node.name) === null || _b === void 0 ? void 0 : _b.text, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.typetime | SymbolTable_1.SymbolTypeFlag.runtime);
69
+ (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol((_b = node.tokens.name) === null || _b === void 0 ? void 0 : _b.text, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.typetime | SymbolTable_1.SymbolTypeFlag.runtime);
70
70
  },
71
71
  AssignmentStatement: (node) => {
72
72
  var _a;
73
73
  //register this variable
74
74
  const nodeType = node.getType({ flags: SymbolTable_1.SymbolTypeFlag.runtime });
75
- (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol(node.name.text, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.runtime);
75
+ (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol(node.tokens.name.text, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.runtime);
76
76
  },
77
77
  DottedSetStatement: (node) => {
78
78
  this.validateNoOptionalChainingInVarSet(node, [node.obj]);
@@ -85,23 +85,23 @@ class BrsFileValidator {
85
85
  //register the for loop variable
86
86
  const loopTargetType = node.target.getType({ flags: SymbolTable_1.SymbolTypeFlag.runtime });
87
87
  const loopVarType = (0, reflection_1.isArrayType)(loopTargetType) ? loopTargetType.defaultType : DynamicType_1.DynamicType.instance;
88
- (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol(node.item.text, { definingNode: node }, loopVarType, SymbolTable_1.SymbolTypeFlag.runtime);
88
+ (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol(node.tokens.item.text, { definingNode: node }, loopVarType, SymbolTable_1.SymbolTypeFlag.runtime);
89
89
  },
90
90
  NamespaceStatement: (node) => {
91
- this.validateDeclarationLocations(node, 'namespace', () => util_1.default.createBoundingRange(node.keyword, node.nameExpression));
91
+ this.validateDeclarationLocations(node, 'namespace', () => util_1.default.createBoundingRange(node.tokens.namespace, node.nameExpression));
92
92
  //Namespace Types are added at the Scope level - This is handled when the SymbolTables get linked
93
93
  },
94
94
  FunctionStatement: (node) => {
95
95
  var _a, _b;
96
- this.validateDeclarationLocations(node, 'function', () => util_1.default.createBoundingRange(node.func.functionType, node.name));
96
+ this.validateDeclarationLocations(node, 'function', () => util_1.default.createBoundingRange(node.func.tokens.functionType, node.tokens.name));
97
97
  const funcType = node.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
98
- if ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) {
99
- node.parent.getSymbolTable().addSymbol(node.name.text, { definingNode: node }, funcType, SymbolTable_1.SymbolTypeFlag.runtime);
98
+ if ((_a = node.tokens.name) === null || _a === void 0 ? void 0 : _a.text) {
99
+ node.parent.getSymbolTable().addSymbol(node.tokens.name.text, { definingNode: node }, funcType, SymbolTable_1.SymbolTypeFlag.runtime);
100
100
  }
101
101
  const namespace = node.findAncestor(reflection_1.isNamespaceStatement);
102
102
  //this function is declared inside a namespace
103
103
  if (namespace) {
104
- namespace.getSymbolTable().addSymbol((_b = node.name) === null || _b === void 0 ? void 0 : _b.text, { definingNode: node }, funcType, SymbolTable_1.SymbolTypeFlag.runtime);
104
+ namespace.getSymbolTable().addSymbol((_b = node.tokens.name) === null || _b === void 0 ? void 0 : _b.text, { definingNode: node }, funcType, SymbolTable_1.SymbolTypeFlag.runtime);
105
105
  //add the transpiled name for namespaced functions to the root symbol table
106
106
  const transpiledNamespaceFunctionName = node.getName(Parser_1.ParseMode.BrightScript);
107
107
  this.event.file.parser.ast.symbolTable.addSymbol(transpiledNamespaceFunctionName, { definingNode: node }, funcType,
@@ -116,7 +116,7 @@ class BrsFileValidator {
116
116
  },
117
117
  FunctionParameterExpression: (node) => {
118
118
  var _a, _b;
119
- const paramName = (_a = node.name) === null || _a === void 0 ? void 0 : _a.text;
119
+ const paramName = (_a = node.tokens.name) === null || _a === void 0 ? void 0 : _a.text;
120
120
  const symbolTable = (_b = node.findAncestor(reflection_1.isFunctionExpression)) === null || _b === void 0 ? void 0 : _b.body.getSymbolTable();
121
121
  const nodeType = node.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
122
122
  symbolTable === null || symbolTable === void 0 ? void 0 : symbolTable.addSymbol(paramName, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.runtime);
@@ -133,11 +133,11 @@ class BrsFileValidator {
133
133
  node.parent.getSymbolTable().addSymbol(node.tokens.name.text, { definingNode: node }, nodeType, SymbolTable_1.SymbolTypeFlag.runtime);
134
134
  },
135
135
  CatchStatement: (node) => {
136
- node.parent.getSymbolTable().addSymbol(node.exceptionVariable.text, { definingNode: node }, DynamicType_1.DynamicType.instance, SymbolTable_1.SymbolTypeFlag.runtime);
136
+ node.parent.getSymbolTable().addSymbol(node.tokens.exceptionVariable.text, { definingNode: node }, DynamicType_1.DynamicType.instance, SymbolTable_1.SymbolTypeFlag.runtime);
137
137
  },
138
138
  DimStatement: (node) => {
139
- if (node.identifier) {
140
- node.parent.getSymbolTable().addSymbol(node.identifier.text, { definingNode: node }, DynamicType_1.DynamicType.instance, SymbolTable_1.SymbolTypeFlag.runtime);
139
+ if (node.tokens.name) {
140
+ node.parent.getSymbolTable().addSymbol(node.tokens.name.text, { definingNode: node }, node.getType({ flags: SymbolTable_1.SymbolTypeFlag.runtime }), SymbolTable_1.SymbolTypeFlag.runtime);
141
141
  }
142
142
  },
143
143
  ContinueStatement: (node) => {
@@ -166,13 +166,13 @@ class BrsFileValidator {
166
166
  this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel(keyword)), { range: (_c = rangeFactory === null || rangeFactory === void 0 ? void 0 : rangeFactory()) !== null && _c !== void 0 ? _c : statement.range }));
167
167
  }
168
168
  validateEnumDeclaration(stmt) {
169
- var _a, _b, _c, _d, _e;
169
+ var _a, _b, _c, _d, _e, _f;
170
170
  const members = stmt.getMembers();
171
171
  //the enum data type is based on the first member value
172
- const enumValueKind = (_d = (_c = (_b = (_a = members.find(x => x.value)) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.token) === null || _c === void 0 ? void 0 : _c.kind) !== null && _d !== void 0 ? _d : TokenKind_1.TokenKind.IntegerLiteral;
172
+ const enumValueKind = (_e = (_d = (_c = (_b = (_a = members.find(x => x.value)) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.tokens) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.kind) !== null && _e !== void 0 ? _e : TokenKind_1.TokenKind.IntegerLiteral;
173
173
  const memberNames = new Set();
174
174
  for (const member of members) {
175
- const memberNameLower = (_e = member.name) === null || _e === void 0 ? void 0 : _e.toLowerCase();
175
+ const memberNameLower = (_f = member.name) === null || _f === void 0 ? void 0 : _f.toLowerCase();
176
176
  /**
177
177
  * flag duplicate member names
178
178
  */
@@ -187,18 +187,18 @@ class BrsFileValidator {
187
187
  }
188
188
  }
189
189
  validateEnumValueTypes(member, enumValueKind) {
190
- var _a, _b, _c, _d, _e, _f, _g;
190
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
191
191
  let memberValueKind;
192
192
  let memberValue;
193
193
  if ((0, reflection_1.isUnaryExpression)(member.value)) {
194
- memberValueKind = (_c = (_b = (_a = member.value) === null || _a === void 0 ? void 0 : _a.right) === null || _b === void 0 ? void 0 : _b.token) === null || _c === void 0 ? void 0 : _c.kind;
195
- memberValue = (_d = member.value) === null || _d === void 0 ? void 0 : _d.right;
194
+ memberValueKind = (_d = (_c = (_b = (_a = member.value) === null || _a === void 0 ? void 0 : _a.right) === null || _b === void 0 ? void 0 : _b.tokens) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.kind;
195
+ memberValue = (_e = member.value) === null || _e === void 0 ? void 0 : _e.right;
196
196
  }
197
197
  else {
198
- memberValueKind = (_f = (_e = member.value) === null || _e === void 0 ? void 0 : _e.token) === null || _f === void 0 ? void 0 : _f.kind;
198
+ memberValueKind = (_h = (_g = (_f = member.value) === null || _f === void 0 ? void 0 : _f.tokens) === null || _g === void 0 ? void 0 : _g.value) === null || _h === void 0 ? void 0 : _h.kind;
199
199
  memberValue = member.value;
200
200
  }
201
- const range = (_g = (memberValue !== null && memberValue !== void 0 ? memberValue : member)) === null || _g === void 0 ? void 0 : _g.range;
201
+ const range = (_j = (memberValue !== null && memberValue !== void 0 ? memberValue : member)) === null || _j === void 0 ? void 0 : _j.range;
202
202
  if (
203
203
  //is integer enum, has value, that value type is not integer
204
204
  (enumValueKind === TokenKind_1.TokenKind.IntegerLiteral && memberValueKind && memberValueKind !== enumValueKind) ||
@@ -298,7 +298,7 @@ class BrsFileValidator {
298
298
  return true;
299
299
  }
300
300
  else if ((0, reflection_1.isForStatement)(node)) {
301
- validateLoopTypeMatch(node.forToken.kind);
301
+ validateLoopTypeMatch(node.tokens.for.kind);
302
302
  return true;
303
303
  }
304
304
  else if ((0, reflection_1.isForEachStatement)(node)) {
@@ -322,18 +322,18 @@ class BrsFileValidator {
322
322
  const node = nodes.shift();
323
323
  if (
324
324
  // a?.b = true or a.b?.c = true
325
- (((0, reflection_1.isDottedSetStatement)(node) || (0, reflection_1.isDottedGetExpression)(node)) && ((_a = node.dot) === null || _a === void 0 ? void 0 : _a.kind) === TokenKind_1.TokenKind.QuestionDot) ||
325
+ (((0, reflection_1.isDottedSetStatement)(node) || (0, reflection_1.isDottedGetExpression)(node)) && ((_a = node.tokens.dot) === null || _a === void 0 ? void 0 : _a.kind) === TokenKind_1.TokenKind.QuestionDot) ||
326
326
  // a.b?[2] = true
327
- ((0, reflection_1.isIndexedGetExpression)(node) && (((_b = node === null || node === void 0 ? void 0 : node.questionDotToken) === null || _b === void 0 ? void 0 : _b.kind) === TokenKind_1.TokenKind.QuestionDot || ((_c = node.openingSquare) === null || _c === void 0 ? void 0 : _c.kind) === TokenKind_1.TokenKind.QuestionLeftSquare)) ||
327
+ ((0, reflection_1.isIndexedGetExpression)(node) && (((_b = node === null || node === void 0 ? void 0 : node.tokens.questionDot) === null || _b === void 0 ? void 0 : _b.kind) === TokenKind_1.TokenKind.QuestionDot || ((_c = node.tokens.openingSquare) === null || _c === void 0 ? void 0 : _c.kind) === TokenKind_1.TokenKind.QuestionLeftSquare)) ||
328
328
  // a?[1] = true
329
- ((0, reflection_1.isIndexedSetStatement)(node) && ((_d = node.openingSquare) === null || _d === void 0 ? void 0 : _d.kind) === TokenKind_1.TokenKind.QuestionLeftSquare)) {
329
+ ((0, reflection_1.isIndexedSetStatement)(node) && ((_d = node.tokens.openingSquare) === null || _d === void 0 ? void 0 : _d.kind) === TokenKind_1.TokenKind.QuestionLeftSquare)) {
330
330
  //try to highlight the entire left-hand-side expression if possible
331
331
  let range;
332
332
  if ((0, reflection_1.isDottedSetStatement)(parent)) {
333
- range = util_1.default.createBoundingRange(parent.obj, parent.dot, parent.name);
333
+ range = util_1.default.createBoundingRange(parent.obj, parent.tokens.dot, parent.tokens.name);
334
334
  }
335
335
  else if ((0, reflection_1.isIndexedSetStatement)(parent)) {
336
- range = util_1.default.createBoundingRange(parent.obj, parent.openingSquare, parent.index, parent.closingSquare);
336
+ range = util_1.default.createBoundingRange(parent.obj, parent.tokens.openingSquare, ...parent.indexes, parent.tokens.closingSquare);
337
337
  }
338
338
  else {
339
339
  range = node.range;
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFileValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrsFileValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,10 @@ export declare class ScopeValidator {
44
44
  * Detect return statements with incompatible types vs. declared return type
45
45
  */
46
46
  private validateDottedSetStatement;
47
+ /**
48
+ * Detect when declared type does not match rhs type
49
+ */
50
+ private validateAssignmentStatement;
47
51
  /**
48
52
  * Detect invalid use of a binary operator
49
53
  */
@@ -90,6 +90,9 @@ class ScopeValidator {
90
90
  },
91
91
  UnaryExpression: (unaryExpr) => {
92
92
  this.validateUnaryExpression(file, unaryExpr);
93
+ },
94
+ AssignmentStatement: (assignStmt) => {
95
+ this.validateAssignmentStatement(file, assignStmt);
93
96
  }
94
97
  });
95
98
  const segmentsToWalkForValidation = (thisFileHasChanges || !hasChangeInfo)
@@ -119,15 +122,15 @@ class ScopeValidator {
119
122
  return false;
120
123
  }
121
124
  let assignmentAncestor;
122
- if ((0, reflection_1.isAssignmentStatement)(definingNode) && definingNode.equals.kind === TokenKind_1.TokenKind.Equal) {
125
+ if ((0, reflection_1.isAssignmentStatement)(definingNode) && definingNode.tokens.equals.kind === TokenKind_1.TokenKind.Equal) {
123
126
  // this symbol was defined in a "normal" assignment (eg. not a compound assignment)
124
127
  assignmentAncestor = definingNode;
125
- return ((_a = assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.name) === null || _a === void 0 ? void 0 : _a.text.toLowerCase()) === ((_b = expression === null || expression === void 0 ? void 0 : expression.name) === null || _b === void 0 ? void 0 : _b.text.toLowerCase());
128
+ return ((_a = assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.tokens.name) === null || _a === void 0 ? void 0 : _a.text.toLowerCase()) === ((_b = expression === null || expression === void 0 ? void 0 : expression.tokens.name) === null || _b === void 0 ? void 0 : _b.text.toLowerCase());
126
129
  }
127
130
  else {
128
131
  assignmentAncestor = expression === null || expression === void 0 ? void 0 : expression.findAncestor(reflection_1.isAssignmentStatement);
129
132
  }
130
- return (assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.name) === (expression === null || expression === void 0 ? void 0 : expression.name) && (0, reflection_1.isUnionType)(exprType);
133
+ return (assignmentAncestor === null || assignmentAncestor === void 0 ? void 0 : assignmentAncestor.tokens.name) === (expression === null || expression === void 0 ? void 0 : expression.tokens.name) && (0, reflection_1.isUnionType)(exprType);
131
134
  }
132
135
  /**
133
136
  * Flag duplicate enums
@@ -181,23 +184,27 @@ class ScopeValidator {
181
184
  * do this manually for now.
182
185
  */
183
186
  validateCreateObjectCall(file, call) {
184
- var _a, _b, _c, _d, _e, _f;
187
+ var _a, _b, _c, _d, _e, _f, _g;
185
188
  //skip non CreateObject function calls
186
189
  const callName = (_a = util_1.default.getAllDottedGetPartsAsString(call.callee)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
187
190
  if (callName !== 'createobject' || !(0, reflection_1.isLiteralExpression)(call === null || call === void 0 ? void 0 : call.args[0])) {
188
191
  return;
189
192
  }
190
- const firstParamToken = (_b = call === null || call === void 0 ? void 0 : call.args[0]) === null || _b === void 0 ? void 0 : _b.token;
191
- const firstParamStringValue = (_c = firstParamToken === null || firstParamToken === void 0 ? void 0 : firstParamToken.text) === null || _c === void 0 ? void 0 : _c.replace(/"/g, '');
193
+ const firstParamToken = (_c = (_b = call === null || call === void 0 ? void 0 : call.args[0]) === null || _b === void 0 ? void 0 : _b.tokens) === null || _c === void 0 ? void 0 : _c.value;
194
+ const firstParamStringValue = (_d = firstParamToken === null || firstParamToken === void 0 ? void 0 : firstParamToken.text) === null || _d === void 0 ? void 0 : _d.replace(/"/g, '');
195
+ if (!firstParamStringValue) {
196
+ return;
197
+ }
198
+ const firstParamStringValueLower = firstParamStringValue.toLowerCase();
192
199
  //if this is a `createObject('roSGNode'` call, only support known sg node types
193
- if ((firstParamStringValue === null || firstParamStringValue === void 0 ? void 0 : firstParamStringValue.toLowerCase()) === 'rosgnode' && (0, reflection_1.isLiteralExpression)(call === null || call === void 0 ? void 0 : call.args[1])) {
194
- const componentName = (_d = call === null || call === void 0 ? void 0 : call.args[1]) === null || _d === void 0 ? void 0 : _d.token;
200
+ if (firstParamStringValueLower === 'rosgnode' && (0, reflection_1.isLiteralExpression)(call === null || call === void 0 ? void 0 : call.args[1])) {
201
+ const componentName = (_e = call === null || call === void 0 ? void 0 : call.args[1]) === null || _e === void 0 ? void 0 : _e.tokens.value;
195
202
  //don't validate any components with a colon in their name (probably component libraries, but regular components can have them too).
196
- if ((_e = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _e === void 0 ? void 0 : _e.includes(':')) {
203
+ if (!componentName || ((_f = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _f === void 0 ? void 0 : _f.includes(':'))) {
197
204
  return;
198
205
  }
199
206
  //add diagnostic for unknown components
200
- const unquotedComponentName = (_f = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _f === void 0 ? void 0 : _f.replace(/"/g, '');
207
+ const unquotedComponentName = (_g = componentName === null || componentName === void 0 ? void 0 : componentName.text) === null || _g === void 0 ? void 0 : _g.replace(/"/g, '');
201
208
  if (unquotedComponentName && !platformNodeNames.has(unquotedComponentName.toLowerCase()) && !this.event.program.getComponent(unquotedComponentName)) {
202
209
  this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.unknownRoSGNode(unquotedComponentName)), { range: componentName.range }));
203
210
  }
@@ -206,15 +213,15 @@ class ScopeValidator {
206
213
  this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.mismatchCreateObjectArgumentCount(firstParamStringValue, [2], call === null || call === void 0 ? void 0 : call.args.length)), { range: call.range }));
207
214
  }
208
215
  }
209
- else if (!platformComponentNames.has(firstParamStringValue.toLowerCase())) {
216
+ else if (!platformComponentNames.has(firstParamStringValueLower)) {
210
217
  this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.unknownBrightScriptComponent(firstParamStringValue)), { range: firstParamToken.range }));
211
218
  }
212
219
  else {
213
220
  // This is valid brightscript component
214
221
  // Test for invalid arg counts
215
- const brightScriptComponent = roku_types_1.components[firstParamStringValue.toLowerCase()];
222
+ const brightScriptComponent = roku_types_1.components[firstParamStringValueLower];
216
223
  // Valid arg counts for createObject are 1+ number of args for constructor
217
- let validArgCounts = brightScriptComponent.constructors.map(cnstr => cnstr.params.length + 1);
224
+ let validArgCounts = brightScriptComponent === null || brightScriptComponent === void 0 ? void 0 : brightScriptComponent.constructors.map(cnstr => cnstr.params.length + 1);
218
225
  if (validArgCounts.length === 0) {
219
226
  // no constructors for this component, so createObject only takes 1 arg
220
227
  validArgCounts = [1];
@@ -224,7 +231,7 @@ class ScopeValidator {
224
231
  this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.mismatchCreateObjectArgumentCount(firstParamStringValue, validArgCounts, call === null || call === void 0 ? void 0 : call.args.length)), { range: call.range }));
225
232
  }
226
233
  // Test for deprecation
227
- if (brightScriptComponent.isDeprecated) {
234
+ if (brightScriptComponent === null || brightScriptComponent === void 0 ? void 0 : brightScriptComponent.isDeprecated) {
228
235
  this.addDiagnosticOnce(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.deprecatedBrightScriptComponent(firstParamStringValue, brightScriptComponent.deprecatedDescription)), { range: call.range }));
229
236
  }
230
237
  }
@@ -316,6 +323,12 @@ class ScopeValidator {
316
323
  const actualRHSType = (_a = dottedSetStmt === null || dottedSetStmt === void 0 ? void 0 : dottedSetStmt.value) === null || _a === void 0 ? void 0 : _a.getType(getTypeOpts);
317
324
  const compatibilityData = {};
318
325
  const typeChainScan = util_1.default.processTypeChain(typeChainExpectedLHS);
326
+ // check if anything in typeChain is an AA - if so, just allow it
327
+ if (typeChainExpectedLHS.find(typeChainItem => (0, reflection_1.isAssociativeArrayType)(typeChainItem.type))) {
328
+ // something in the chain is an AA
329
+ // treat members as dynamic - they could have been set without the type system's knowledge
330
+ return;
331
+ }
319
332
  if (!(expectedLHSType === null || expectedLHSType === void 0 ? void 0 : expectedLHSType.isResolvable())) {
320
333
  this.addMultiScopeDiagnostic(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.cannotFindName(typeChainScan.itemName, typeChainScan.fullNameOfItem)), { range: typeChainScan.range }));
321
334
  return;
@@ -325,6 +338,24 @@ class ScopeValidator {
325
338
  this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.assignmentTypeMismatch(actualRHSType.toString(), expectedLHSType.toString(), compatibilityData)), { range: dottedSetStmt.range, file: file }));
326
339
  }
327
340
  }
341
+ /**
342
+ * Detect when declared type does not match rhs type
343
+ */
344
+ validateAssignmentStatement(file, assignStmt) {
345
+ var _a;
346
+ if (!(assignStmt === null || assignStmt === void 0 ? void 0 : assignStmt.typeExpression)) {
347
+ // nothing to check
348
+ return;
349
+ }
350
+ const typeChainExpectedLHS = [];
351
+ const getTypeOpts = { flags: SymbolTable_1.SymbolTypeFlag.runtime };
352
+ const expectedLHSType = assignStmt.typeExpression.getType(Object.assign(Object.assign({}, getTypeOpts), { data: {}, typeChain: typeChainExpectedLHS }));
353
+ const actualRHSType = (_a = assignStmt.value) === null || _a === void 0 ? void 0 : _a.getType(getTypeOpts);
354
+ const compatibilityData = {};
355
+ if (!(expectedLHSType === null || expectedLHSType === void 0 ? void 0 : expectedLHSType.isTypeCompatible(actualRHSType, compatibilityData))) {
356
+ this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.assignmentTypeMismatch(actualRHSType.toString(), expectedLHSType.toString(), compatibilityData)), { range: assignStmt.range, file: file }));
357
+ }
358
+ }
328
359
  /**
329
360
  * Detect invalid use of a binary operator
330
361
  */
@@ -364,10 +395,10 @@ class ScopeValidator {
364
395
  // one operand is basically "any" type... ignore;
365
396
  return;
366
397
  }
367
- const opResult = util_1.default.binaryOperatorResultType(leftTypeToTest, binaryExpr.operator, rightTypeToTest);
398
+ const opResult = util_1.default.binaryOperatorResultType(leftTypeToTest, binaryExpr.tokens.operator, rightTypeToTest);
368
399
  if ((0, reflection_1.isDynamicType)(opResult)) {
369
400
  // if the result was dynamic, that means there wasn't a valid operation
370
- this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(binaryExpr.operator.text, leftType.toString(), rightType.toString())), { range: binaryExpr.range, file: file }));
401
+ this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(binaryExpr.tokens.operator.text, leftType.toString(), rightType.toString())), { range: binaryExpr.range, file: file }));
371
402
  }
372
403
  }
373
404
  /**
@@ -392,14 +423,14 @@ class ScopeValidator {
392
423
  // operand is basically "any" type... ignore;
393
424
  }
394
425
  else if ((0, reflection_1.isPrimitiveType)(rightType)) {
395
- const opResult = util_1.default.unaryOperatorResultType(unaryExpr.operator, rightTypeToTest);
426
+ const opResult = util_1.default.unaryOperatorResultType(unaryExpr.tokens.operator, rightTypeToTest);
396
427
  if ((0, reflection_1.isDynamicType)(opResult)) {
397
- this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
428
+ this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.tokens.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
398
429
  }
399
430
  }
400
431
  else {
401
432
  // rhs is not a primitive, so no binary operator is allowed
402
- this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
433
+ this.addMultiScopeDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.operatorTypeMismatch(unaryExpr.tokens.operator.text, rightType.toString())), { range: unaryExpr.range, file: file }));
403
434
  }
404
435
  }
405
436
  validateVariableAndDottedGetExpressions(file, expression) {
@@ -409,7 +440,7 @@ class ScopeValidator {
409
440
  return;
410
441
  }
411
442
  if ((0, reflection_1.isVariableExpression)(expression)) {
412
- if ((0, reflection_1.isAssignmentStatement)(expression.parent) && expression.parent.name === expression.name) {
443
+ if ((0, reflection_1.isAssignmentStatement)(expression.parent) && expression.parent.tokens.name === expression.tokens.name) {
413
444
  // Don't validate LHS of assignments
414
445
  return;
415
446
  }