@microsoft/powerquery-language-services 0.2.19 → 0.3.1

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 (226) hide show
  1. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +4 -6
  2. package/lib/powerquery-language-services/analysis/analysisBase.js +118 -223
  3. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  4. package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +2 -2
  5. package/lib/powerquery-language-services/analysis/analysisUtils.js +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  7. package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +0 -2
  8. package/lib/powerquery-language-services/analysis/documentAnalysis.js +11 -32
  9. package/lib/powerquery-language-services/analysis/documentAnalysis.js.map +1 -1
  10. package/lib/powerquery-language-services/commonTypes.js +1 -1
  11. package/lib/powerquery-language-services/commonTypes.js.map +1 -1
  12. package/lib/powerquery-language-services/documentSymbols.d.ts +1 -1
  13. package/lib/powerquery-language-services/documentSymbols.js +62 -111
  14. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  15. package/lib/powerquery-language-services/formatter.d.ts +1 -1
  16. package/lib/powerquery-language-services/formatter.js +35 -34
  17. package/lib/powerquery-language-services/formatter.js.map +1 -1
  18. package/lib/powerquery-language-services/index.js +2 -2
  19. package/lib/powerquery-language-services/index.js.map +1 -1
  20. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +74 -131
  21. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  22. package/lib/powerquery-language-services/inspection/activeNode/index.js +1 -1
  23. package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
  24. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +1 -1
  25. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +117 -187
  26. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  27. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +28 -28
  28. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  29. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +2 -2
  30. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +97 -114
  31. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  32. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +11 -11
  33. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  34. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +9 -9
  35. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  36. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +5 -5
  37. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  38. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +1 -1
  39. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +43 -56
  40. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  41. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +10 -10
  42. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  43. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +1 -1
  44. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +11 -11
  45. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  46. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +5 -5
  47. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +1 -1
  49. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +28 -28
  50. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  51. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +28 -31
  52. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  53. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +19 -23
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +5 -5
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
  57. package/lib/powerquery-language-services/inspection/autocomplete/common.js +2 -13
  58. package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +1 -1
  59. package/lib/powerquery-language-services/inspection/autocomplete/index.js +1 -1
  60. package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
  61. package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/task.js +36 -25
  63. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  64. package/lib/powerquery-language-services/inspection/commonTypes.d.ts +6 -5
  65. package/lib/powerquery-language-services/inspection/expectedType.js +18 -18
  66. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  67. package/lib/powerquery-language-services/inspection/externalType/externalType.d.ts +2 -2
  68. package/lib/powerquery-language-services/inspection/externalType/externalType.js +2 -1
  69. package/lib/powerquery-language-services/inspection/externalType/externalType.js.map +1 -1
  70. package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js +3 -3
  71. package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js.map +1 -1
  72. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +1 -1
  73. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +49 -66
  74. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  75. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +1 -1
  76. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +74 -99
  77. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  78. package/lib/powerquery-language-services/inspection/jaroWinkler.js +26 -42
  79. package/lib/powerquery-language-services/inspection/jaroWinkler.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +18 -51
  81. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  82. package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +3 -3
  83. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +221 -275
  84. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  85. package/lib/powerquery-language-services/inspection/task.d.ts +2 -2
  86. package/lib/powerquery-language-services/inspection/task.js +52 -41
  87. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  88. package/lib/powerquery-language-services/inspection/type/index.js +1 -1
  89. package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
  90. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +9 -9
  91. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +353 -338
  92. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  93. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +1 -1
  94. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +31 -41
  95. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  96. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +3 -3
  97. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  98. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +1 -1
  99. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +29 -19
  100. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  101. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +1 -1
  102. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +27 -17
  103. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  104. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -0
  105. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +68 -0
  106. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -0
  107. package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldProjection.d.ts → inspectTypeField/inspectTypeFieldProjection.d.ts} +2 -2
  108. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +103 -0
  109. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -0
  110. package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldSelector.d.ts → inspectTypeField/inspectTypeFieldSelector.d.ts} +2 -2
  111. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +76 -0
  112. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -0
  113. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +1 -1
  114. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +24 -12
  115. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  116. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +1 -1
  117. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +65 -55
  118. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  119. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +1 -1
  120. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +43 -35
  121. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  122. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +1 -1
  123. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +28 -18
  124. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  125. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +1 -1
  126. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +28 -18
  127. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  128. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +1 -1
  129. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +42 -30
  130. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  131. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +1 -1
  132. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +55 -64
  133. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  134. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +1 -1
  135. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +26 -16
  136. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  137. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +1 -1
  138. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +34 -24
  139. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  140. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +9 -10
  141. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  142. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +1 -1
  143. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +33 -23
  144. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  145. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +1 -1
  146. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +22 -23
  147. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  148. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +9 -10
  149. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  150. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +1 -1
  151. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +40 -30
  152. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  153. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +1 -1
  154. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +31 -41
  155. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  156. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +1 -1
  157. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +27 -28
  158. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  159. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +1 -1
  160. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +44 -54
  161. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  162. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +1 -1
  163. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +132 -179
  164. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  165. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +1 -1
  166. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +36 -37
  167. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  168. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +1 -1
  169. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +57 -105
  170. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  171. package/lib/powerquery-language-services/inspection/type/task.d.ts +2 -2
  172. package/lib/powerquery-language-services/inspection/type/task.js +59 -104
  173. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  174. package/lib/powerquery-language-services/inspectionSettings.d.ts +2 -0
  175. package/lib/powerquery-language-services/inspectionUtils.d.ts +5 -4
  176. package/lib/powerquery-language-services/inspectionUtils.js +80 -134
  177. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  178. package/lib/powerquery-language-services/languageServiceUtils.js +1 -1
  179. package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
  180. package/lib/powerquery-language-services/library/libraryUtils.js +11 -11
  181. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  182. package/lib/powerquery-language-services/localization/localization.js +9 -13
  183. package/lib/powerquery-language-services/localization/localization.js.map +1 -1
  184. package/lib/powerquery-language-services/localization/localizationUtils.js +1 -1
  185. package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
  186. package/lib/powerquery-language-services/localization/templates.js +43 -43
  187. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  188. package/lib/powerquery-language-services/positionUtils.d.ts +5 -5
  189. package/lib/powerquery-language-services/positionUtils.js +53 -33
  190. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  191. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +3 -3
  192. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +40 -95
  193. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  194. package/lib/powerquery-language-services/providers/librarySymbolProvider.js +63 -138
  195. package/lib/powerquery-language-services/providers/librarySymbolProvider.js.map +1 -1
  196. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.d.ts +3 -5
  197. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js +130 -194
  198. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js.map +1 -1
  199. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +18 -52
  200. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  201. package/lib/powerquery-language-services/validate/validate.d.ts +1 -1
  202. package/lib/powerquery-language-services/validate/validate.js +38 -42
  203. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  204. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +1 -1
  205. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +82 -127
  206. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  207. package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +1 -1
  208. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +61 -101
  209. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  210. package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +1 -1
  211. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +61 -98
  212. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  213. package/lib/powerquery-language-services/validate/validateLexAndParse.d.ts +1 -1
  214. package/lib/powerquery-language-services/validate/validateLexAndParse.js +114 -122
  215. package/lib/powerquery-language-services/validate/validateLexAndParse.js.map +1 -1
  216. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +1 -12
  217. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
  218. package/lib/powerquery-language-services/workspaceCache/workspaceCache.d.ts +3 -13
  219. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.d.ts +7 -8
  220. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js +93 -147
  221. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js.map +1 -1
  222. package/package.json +4 -4
  223. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js +0 -126
  224. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js.map +0 -1
  225. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js +0 -67
  226. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js.map +0 -1
@@ -1,74 +1,59 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __values = (this && this.__values) || function(o) {
5
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
6
- if (m) return m.call(o);
7
- if (o && typeof o.length === "number") return {
8
- next: function () {
9
- if (o && i >= o.length) o = void 0;
10
- return { value: o && o[i++], done: !o };
11
- }
12
- };
13
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14
- };
15
- var __read = (this && this.__read) || function (o, n) {
16
- var m = typeof Symbol === "function" && o[Symbol.iterator];
17
- if (!m) return o;
18
- var i = m.call(o), r, ar = [], e;
19
- try {
20
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
21
- }
22
- catch (error) { e = { error: error }; }
23
- finally {
24
- try {
25
- if (r && !r.done && (m = i["return"])) m.call(i);
26
- }
27
- finally { if (e) throw e.error; }
28
- }
29
- return ar;
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
30
12
  };
31
13
  Object.defineProperty(exports, "__esModule", { value: true });
32
14
  exports.maybeDereferencedIdentifier = exports.assertGetOrCreateNodeScope = exports.tryNodeScope = void 0;
33
- var parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
34
- var powerquery_parser_1 = require("@microsoft/powerquery-parser");
35
- var language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
36
- var __1 = require("../..");
37
- var pseudoFunctionExpressionType_1 = require("../pseudoFunctionExpressionType");
15
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
16
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
17
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
18
+ const __1 = require("../..");
19
+ const pseudoFunctionExpressionType_1 = require("../pseudoFunctionExpressionType");
38
20
  // Builds a scope for the given node.
39
21
  function tryNodeScope(settings, nodeIdMapCollection, nodeId,
40
22
  // scopeById may get mutated by adding new entries.
41
23
  scopeById) {
42
- var trace = settings.traceManager.entry("Scope" /* Scope */, tryNodeScope.name);
43
- var result = powerquery_parser_1.ResultUtils.ensureResult(settings.locale, function () {
44
- var ancestry = parser_1.AncestryUtils.assertGetAncestry(nodeIdMapCollection, nodeId);
45
- if (ancestry.length === 0) {
46
- return new Map();
47
- }
48
- var inspected = inspectScope(settings, nodeIdMapCollection, ancestry, scopeById);
49
- return powerquery_parser_1.Assert.asDefined(inspected.get(nodeId), "expected nodeId in scope result", { nodeId: nodeId });
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const trace = settings.traceManager.entry("Scope" /* Scope */, tryNodeScope.name);
26
+ const result = yield powerquery_parser_1.ResultUtils.ensureResultAsync(settings.locale, () => __awaiter(this, void 0, void 0, function* () {
27
+ const ancestry = parser_1.AncestryUtils.assertGetAncestry(nodeIdMapCollection, nodeId);
28
+ if (ancestry.length === 0) {
29
+ return new Map();
30
+ }
31
+ const inspected = yield inspectScope(settings, nodeIdMapCollection, ancestry, scopeById);
32
+ return powerquery_parser_1.Assert.asDefined(inspected.get(nodeId), `expected nodeId in scope result`, { nodeId });
33
+ }));
34
+ trace.exit();
35
+ return result;
50
36
  });
51
- trace.exit();
52
- return result;
53
37
  }
54
38
  exports.tryNodeScope = tryNodeScope;
55
39
  function assertGetOrCreateNodeScope(settings, nodeIdMapCollection, nodeId,
56
40
  // scopeById may get mutated by adding new entries.
57
41
  scopeById) {
58
- var _a, _b, _c;
59
- var trace = settings.traceManager.entry("Scope" /* Scope */, assertGetOrCreateNodeScope.name);
60
- var maybeScope = scopeById.get(nodeId);
61
- if (maybeScope !== undefined) {
62
- trace.exit((_a = {}, _a["IsThrowing" /* IsThrowing */] = false, _a));
63
- return powerquery_parser_1.ResultUtils.boxOk(maybeScope);
64
- }
65
- var triedNodeScope = tryNodeScope(settings, nodeIdMapCollection, nodeId, scopeById);
66
- if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
67
- trace.exit((_b = {}, _b["IsThrowing" /* IsThrowing */] = true, _b));
68
- throw triedNodeScope;
69
- }
70
- trace.exit((_c = {}, _c["IsThrowing" /* IsThrowing */] = false, _c));
71
- return triedNodeScope;
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const trace = settings.traceManager.entry("Scope" /* Scope */, assertGetOrCreateNodeScope.name);
44
+ const maybeScope = scopeById.get(nodeId);
45
+ if (maybeScope !== undefined) {
46
+ trace.exit({ ["IsThrowing" /* IsThrowing */]: false });
47
+ return powerquery_parser_1.ResultUtils.boxOk(maybeScope);
48
+ }
49
+ const triedNodeScope = yield tryNodeScope(settings, nodeIdMapCollection, nodeId, scopeById);
50
+ if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
51
+ trace.exit({ ["IsThrowing" /* IsThrowing */]: true });
52
+ throw triedNodeScope;
53
+ }
54
+ trace.exit({ ["IsThrowing" /* IsThrowing */]: false });
55
+ return triedNodeScope;
56
+ });
72
57
  }
73
58
  exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
74
59
  // Recusrive deference of the identifier until it reaches the value node.
@@ -76,132 +61,138 @@ exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
76
61
  function maybeDereferencedIdentifier(settings, nodeIdMapCollection, xorNode,
77
62
  // If a map is given, then it's mutated and returned.
78
63
  // Else create a new Map instance and return that instead.
79
- scopeById) {
80
- var _a, _b, _c, _d;
81
- if (scopeById === void 0) { scopeById = new Map(); }
82
- var trace = settings.traceManager.entry("Scope" /* Scope */, maybeDereferencedIdentifier.name, __1.TraceUtils.createXorNodeDetails(xorNode));
83
- parser_1.XorNodeUtils.assertIsIdentifier(xorNode);
84
- if (parser_1.XorNodeUtils.isContextXor(xorNode)) {
85
- trace.exit((_a = {}, _a["Result" /* Result */] = undefined, _a));
86
- return powerquery_parser_1.ResultUtils.boxOk(undefined);
87
- }
88
- var identifier = xorNode.node;
89
- var identifierLiteral;
90
- var isIdentifierRecurisve;
91
- switch (identifier.kind) {
92
- case "Identifier" /* Identifier */:
93
- identifierLiteral = identifier.literal;
94
- isIdentifierRecurisve = false;
95
- break;
96
- case "IdentifierExpression" /* IdentifierExpression */:
97
- identifierLiteral = identifier.identifier.literal;
98
- isIdentifierRecurisve = identifier.maybeInclusiveConstant !== undefined;
99
- break;
100
- default:
101
- throw powerquery_parser_1.Assert.isNever(identifier);
102
- }
103
- var triedNodeScope = assertGetOrCreateNodeScope(settings, nodeIdMapCollection, xorNode.node.id, scopeById);
104
- if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
105
- trace.exit((_b = {}, _b["Result" /* Result */] = triedNodeScope.kind, _b));
106
- return triedNodeScope;
107
- }
108
- var nodeScope = triedNodeScope.value;
109
- var maybeScopeItem = nodeScope.get(identifierLiteral);
110
- if (
111
- // If the identifier couldn't be found in the generated scope,
112
- // then either the scope generation is incorrect or it's an external identifier.
113
- (maybeScopeItem === null || maybeScopeItem === void 0 ? void 0 : maybeScopeItem.isRecursive) !== isIdentifierRecurisve) {
114
- trace.exit((_c = {}, _c["Result" /* Result */] = undefined, _c));
115
- return powerquery_parser_1.ResultUtils.boxOk(undefined);
116
- }
117
- var scopeItem = maybeScopeItem;
118
- var maybeNextXorNode;
119
- switch (scopeItem.kind) {
120
- case "Each" /* Each */:
121
- case "Parameter" /* Parameter */:
122
- case "Undefined" /* Undefined */:
123
- break;
124
- case "LetVariable" /* LetVariable */:
125
- case "RecordField" /* RecordField */:
126
- maybeNextXorNode = scopeItem.maybeValue;
127
- break;
128
- case "SectionMember" /* SectionMember */:
129
- maybeNextXorNode = scopeItem.maybeValue;
130
- break;
131
- default:
132
- throw powerquery_parser_1.Assert.isNever(scopeItem);
133
- }
134
- var result;
135
- if (maybeNextXorNode === undefined) {
136
- result = powerquery_parser_1.ResultUtils.boxOk(xorNode);
137
- }
138
- else if (parser_1.XorNodeUtils.isContextXor(maybeNextXorNode) ||
139
- (maybeNextXorNode.node.kind !== "Identifier" /* Identifier */ &&
140
- maybeNextXorNode.node.kind !== "IdentifierExpression" /* IdentifierExpression */)) {
141
- result = powerquery_parser_1.ResultUtils.boxOk(xorNode);
142
- }
143
- else {
144
- result = maybeDereferencedIdentifier(settings, nodeIdMapCollection, maybeNextXorNode, scopeById);
145
- }
146
- trace.exit((_d = {}, _d["Result" /* Result */] = result.kind, _d));
147
- return result;
64
+ scopeById = new Map()) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const trace = settings.traceManager.entry("Scope" /* Scope */, maybeDereferencedIdentifier.name, __1.TraceUtils.createXorNodeDetails(xorNode));
67
+ parser_1.XorNodeUtils.assertIsIdentifier(xorNode);
68
+ if (parser_1.XorNodeUtils.isContextXor(xorNode)) {
69
+ trace.exit({ ["Result" /* Result */]: undefined });
70
+ return powerquery_parser_1.ResultUtils.boxOk(undefined);
71
+ }
72
+ const identifier = xorNode.node;
73
+ let identifierLiteral;
74
+ let isIdentifierRecurisve;
75
+ switch (identifier.kind) {
76
+ case "Identifier" /* Identifier */:
77
+ identifierLiteral = identifier.literal;
78
+ isIdentifierRecurisve = false;
79
+ break;
80
+ case "IdentifierExpression" /* IdentifierExpression */:
81
+ identifierLiteral = identifier.identifier.literal;
82
+ isIdentifierRecurisve = identifier.maybeInclusiveConstant !== undefined;
83
+ break;
84
+ default:
85
+ throw powerquery_parser_1.Assert.isNever(identifier);
86
+ }
87
+ const triedNodeScope = yield assertGetOrCreateNodeScope(settings, nodeIdMapCollection, xorNode.node.id, scopeById);
88
+ if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
89
+ trace.exit({ ["Result" /* Result */]: triedNodeScope.kind });
90
+ return triedNodeScope;
91
+ }
92
+ const nodeScope = triedNodeScope.value;
93
+ const maybeScopeItem = nodeScope.get(identifierLiteral);
94
+ if (
95
+ // If the identifier couldn't be found in the generated scope,
96
+ // then either the scope generation is incorrect or it's an external identifier.
97
+ (maybeScopeItem === null || maybeScopeItem === void 0 ? void 0 : maybeScopeItem.isRecursive) !== isIdentifierRecurisve) {
98
+ trace.exit({ ["Result" /* Result */]: undefined });
99
+ return powerquery_parser_1.ResultUtils.boxOk(undefined);
100
+ }
101
+ const scopeItem = maybeScopeItem;
102
+ let maybeNextXorNode;
103
+ switch (scopeItem.kind) {
104
+ case "Each" /* Each */:
105
+ case "Parameter" /* Parameter */:
106
+ case "Undefined" /* Undefined */:
107
+ break;
108
+ case "LetVariable" /* LetVariable */:
109
+ case "RecordField" /* RecordField */:
110
+ maybeNextXorNode = scopeItem.maybeValue;
111
+ break;
112
+ case "SectionMember" /* SectionMember */:
113
+ maybeNextXorNode = scopeItem.maybeValue;
114
+ break;
115
+ default:
116
+ throw powerquery_parser_1.Assert.isNever(scopeItem);
117
+ }
118
+ let result;
119
+ if (maybeNextXorNode === undefined) {
120
+ result = Promise.resolve(powerquery_parser_1.ResultUtils.boxOk(xorNode));
121
+ }
122
+ else if (parser_1.XorNodeUtils.isContextXor(maybeNextXorNode) ||
123
+ (maybeNextXorNode.node.kind !== "Identifier" /* Identifier */ &&
124
+ maybeNextXorNode.node.kind !== "IdentifierExpression" /* IdentifierExpression */)) {
125
+ result = Promise.resolve(powerquery_parser_1.ResultUtils.boxOk(xorNode));
126
+ }
127
+ else {
128
+ result = maybeDereferencedIdentifier(settings, nodeIdMapCollection, maybeNextXorNode, scopeById);
129
+ }
130
+ trace.exit();
131
+ return result;
132
+ });
148
133
  }
149
134
  exports.maybeDereferencedIdentifier = maybeDereferencedIdentifier;
150
135
  function inspectScope(settings, nodeIdMapCollection, ancestry,
151
136
  // scopeById may get mutated by adding new entries.
152
137
  scopeById) {
153
- var trace = settings.traceManager.entry("Scope" /* Scope */, inspectScope.name);
154
- var rootId = ancestry[0].node.id;
155
- // A scope for the given ancestry has already been generated.
156
- var maybeCached = scopeById.get(rootId);
157
- if (maybeCached !== undefined) {
138
+ return __awaiter(this, void 0, void 0, function* () {
139
+ const trace = settings.traceManager.entry("Scope" /* Scope */, inspectScope.name);
140
+ const rootId = ancestry[0].node.id;
141
+ // A scope for the given ancestry has already been generated.
142
+ const maybeCached = scopeById.get(rootId);
143
+ if (maybeCached !== undefined) {
144
+ trace.exit();
145
+ return scopeById;
146
+ }
147
+ // Store the delta between the given scope and what's found in a temporary map.
148
+ // This will prevent mutation in the given map if an error is thrown.
149
+ const scopeChanges = new Map();
150
+ const state = {
151
+ traceManager: settings.traceManager,
152
+ givenScope: scopeById,
153
+ deltaScope: scopeChanges,
154
+ ancestry,
155
+ nodeIdMapCollection,
156
+ ancestryIndex: 0,
157
+ };
158
+ // Build up the scope through a top-down inspection.
159
+ const numNodes = ancestry.length;
160
+ for (let ancestryIndex = numNodes - 1; ancestryIndex >= 0; ancestryIndex -= 1) {
161
+ state.ancestryIndex = ancestryIndex;
162
+ const xorNode = ancestry[ancestryIndex];
163
+ // eslint-disable-next-line no-await-in-loop
164
+ yield inspectNode(state, xorNode);
165
+ }
158
166
  trace.exit();
159
- return scopeById;
160
- }
161
- // Store the delta between the given scope and what's found in a temporary map.
162
- // This will prevent mutation in the given map if an error is thrown.
163
- var scopeChanges = new Map();
164
- var state = {
165
- traceManager: settings.traceManager,
166
- givenScope: scopeById,
167
- deltaScope: scopeChanges,
168
- ancestry: ancestry,
169
- nodeIdMapCollection: nodeIdMapCollection,
170
- ancestryIndex: 0,
171
- };
172
- // Build up the scope through a top-down inspection.
173
- var numNodes = ancestry.length;
174
- for (var ancestryIndex = numNodes - 1; ancestryIndex >= 0; ancestryIndex -= 1) {
175
- state.ancestryIndex = ancestryIndex;
176
- var xorNode = ancestry[ancestryIndex];
177
- inspectNode(state, xorNode);
178
- }
179
- trace.exit();
180
- return state.deltaScope;
167
+ return state.deltaScope;
168
+ });
181
169
  }
170
+ // eslint-disable-next-line require-await
182
171
  function inspectNode(state, xorNode) {
183
- var trace = state.traceManager.entry("Scope" /* Scope */, inspectNode.name, __1.TraceUtils.createXorNodeDetails(xorNode));
184
- switch (xorNode.node.kind) {
185
- case "EachExpression" /* EachExpression */:
186
- inspectEachExpression(state, xorNode);
187
- break;
188
- case "FunctionExpression" /* FunctionExpression */:
189
- inspectFunctionExpression(state, xorNode);
190
- break;
191
- case "LetExpression" /* LetExpression */:
192
- inspectLetExpression(state, xorNode);
193
- break;
194
- case "RecordExpression" /* RecordExpression */:
195
- case "RecordLiteral" /* RecordLiteral */:
196
- inspectRecordExpressionOrRecordLiteral(state, xorNode);
197
- break;
198
- case "Section" /* Section */:
199
- inspectSection(state, xorNode);
200
- break;
201
- default:
202
- localGetOrCreateNodeScope(state, xorNode.node.id, undefined);
203
- }
204
- trace.exit();
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const trace = state.traceManager.entry("Scope" /* Scope */, inspectNode.name, __1.TraceUtils.createXorNodeDetails(xorNode));
174
+ switch (xorNode.node.kind) {
175
+ case "EachExpression" /* EachExpression */:
176
+ inspectEachExpression(state, xorNode);
177
+ break;
178
+ case "FunctionExpression" /* FunctionExpression */:
179
+ inspectFunctionExpression(state, xorNode);
180
+ break;
181
+ case "LetExpression" /* LetExpression */:
182
+ inspectLetExpression(state, xorNode);
183
+ break;
184
+ case "RecordExpression" /* RecordExpression */:
185
+ case "RecordLiteral" /* RecordLiteral */:
186
+ inspectRecordExpressionOrRecordLiteral(state, xorNode);
187
+ break;
188
+ case "Section" /* Section */:
189
+ inspectSection(state, xorNode);
190
+ break;
191
+ default:
192
+ localGetOrCreateNodeScope(state, xorNode.node.id, undefined);
193
+ }
194
+ trace.exit();
195
+ });
205
196
  }
206
197
  function inspectEachExpression(state, eachExpr) {
207
198
  parser_1.XorNodeUtils.assertIsNodeKind(eachExpr, "EachExpression" /* EachExpression */);
@@ -220,9 +211,9 @@ function inspectEachExpression(state, eachExpr) {
220
211
  function inspectFunctionExpression(state, fnExpr) {
221
212
  parser_1.XorNodeUtils.assertIsNodeKind(fnExpr, "FunctionExpression" /* FunctionExpression */);
222
213
  // Propegates the parent's scope.
223
- var nodeScope = localGetOrCreateNodeScope(state, fnExpr.node.id, undefined);
224
- var pseudoType = (0, pseudoFunctionExpressionType_1.pseudoFunctionExpressionType)(state.nodeIdMapCollection, fnExpr);
225
- var newEntries = pseudoType.parameters.map(function (parameter) { return [
214
+ const nodeScope = localGetOrCreateNodeScope(state, fnExpr.node.id, undefined);
215
+ const pseudoType = (0, pseudoFunctionExpressionType_1.pseudoFunctionExpressionType)(state.nodeIdMapCollection, fnExpr);
216
+ const newEntries = pseudoType.parameters.map((parameter) => [
226
217
  parameter.name.literal,
227
218
  {
228
219
  kind: "Parameter" /* Parameter */,
@@ -235,177 +226,132 @@ function inspectFunctionExpression(state, fnExpr) {
235
226
  ? language_1.TypeUtils.maybePrimitiveTypeConstantKindFromTypeKind(parameter.maybeType)
236
227
  : undefined,
237
228
  },
238
- ]; });
229
+ ]);
239
230
  expandChildScope(state, fnExpr, [3], newEntries, nodeScope);
240
231
  }
241
232
  function inspectLetExpression(state, letExpr) {
242
233
  parser_1.XorNodeUtils.assertIsNodeKind(letExpr, "LetExpression" /* LetExpression */);
243
234
  // Propegates the parent's scope.
244
- var nodeScope = localGetOrCreateNodeScope(state, letExpr.node.id, undefined);
245
- var keyValuePairs = parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, letExpr);
235
+ const nodeScope = localGetOrCreateNodeScope(state, letExpr.node.id, undefined);
236
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, letExpr);
246
237
  inspectKeyValuePairs(state, nodeScope, keyValuePairs, createLetVariableScopeItem);
247
238
  // Places the assignments from the 'let' into LetExpression.expression
248
- var newEntries = scopeItemsFromKeyValuePairs(keyValuePairs, -1, createLetVariableScopeItem);
239
+ const newEntries = scopeItemsFromKeyValuePairs(keyValuePairs, -1, createLetVariableScopeItem);
249
240
  expandChildScope(state, letExpr, [3], newEntries, nodeScope);
250
241
  }
251
242
  function inspectRecordExpressionOrRecordLiteral(state, record) {
252
243
  parser_1.XorNodeUtils.assertIsRecord(record);
253
244
  // Propegates the parent's scope.
254
- var nodeScope = localGetOrCreateNodeScope(state, record.node.id, undefined);
255
- var keyValuePairs = parser_1.NodeIdMapIterator.iterRecord(state.nodeIdMapCollection, record);
245
+ const nodeScope = localGetOrCreateNodeScope(state, record.node.id, undefined);
246
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterRecord(state.nodeIdMapCollection, record);
256
247
  inspectKeyValuePairs(state, nodeScope, keyValuePairs, createRecordMemberScopeItem);
257
248
  }
258
249
  function inspectSection(state, section) {
259
- var e_1, _a;
260
250
  parser_1.XorNodeUtils.assertIsNodeKind(section, "Section" /* Section */);
261
- var keyValuePairs = parser_1.NodeIdMapIterator.iterSection(state.nodeIdMapCollection, section);
262
- try {
263
- for (var keyValuePairs_1 = __values(keyValuePairs), keyValuePairs_1_1 = keyValuePairs_1.next(); !keyValuePairs_1_1.done; keyValuePairs_1_1 = keyValuePairs_1.next()) {
264
- var kvp = keyValuePairs_1_1.value;
265
- if (kvp.maybeValue === undefined) {
266
- continue;
267
- }
268
- var newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createSectionMemberScopeItem);
269
- if (newScopeItems.length !== 0) {
270
- expandScope(state, kvp.maybeValue, newScopeItems, new Map());
271
- }
251
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterSection(state.nodeIdMapCollection, section);
252
+ for (const kvp of keyValuePairs) {
253
+ if (kvp.maybeValue === undefined) {
254
+ continue;
272
255
  }
273
- }
274
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
275
- finally {
276
- try {
277
- if (keyValuePairs_1_1 && !keyValuePairs_1_1.done && (_a = keyValuePairs_1.return)) _a.call(keyValuePairs_1);
256
+ const newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createSectionMemberScopeItem);
257
+ if (newScopeItems.length !== 0) {
258
+ expandScope(state, kvp.maybeValue, newScopeItems, new Map());
278
259
  }
279
- finally { if (e_1) throw e_1.error; }
280
260
  }
281
261
  }
282
262
  // Expands the scope on the value part of the key value pair.
283
263
  function inspectKeyValuePairs(state, parentScope, keyValuePairs, createFn) {
284
- var e_2, _a;
285
- try {
286
- for (var keyValuePairs_2 = __values(keyValuePairs), keyValuePairs_2_1 = keyValuePairs_2.next(); !keyValuePairs_2_1.done; keyValuePairs_2_1 = keyValuePairs_2.next()) {
287
- var kvp = keyValuePairs_2_1.value;
288
- if (kvp.maybeValue === undefined) {
289
- continue;
290
- }
291
- var newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createFn);
292
- if (newScopeItems.length !== 0) {
293
- expandScope(state, kvp.maybeValue, newScopeItems, parentScope);
294
- }
264
+ for (const kvp of keyValuePairs) {
265
+ if (kvp.maybeValue === undefined) {
266
+ continue;
295
267
  }
296
- }
297
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
298
- finally {
299
- try {
300
- if (keyValuePairs_2_1 && !keyValuePairs_2_1.done && (_a = keyValuePairs_2.return)) _a.call(keyValuePairs_2);
268
+ const newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createFn);
269
+ if (newScopeItems.length !== 0) {
270
+ expandScope(state, kvp.maybeValue, newScopeItems, parentScope);
301
271
  }
302
- finally { if (e_2) throw e_2.error; }
303
272
  }
304
273
  }
305
274
  function expandScope(state, xorNode, newEntries, maybeDefaultScope) {
306
- var e_3, _a;
307
- var nodeScope = localGetOrCreateNodeScope(state, xorNode.node.id, maybeDefaultScope);
308
- try {
309
- for (var newEntries_1 = __values(newEntries), newEntries_1_1 = newEntries_1.next(); !newEntries_1_1.done; newEntries_1_1 = newEntries_1.next()) {
310
- var _b = __read(newEntries_1_1.value, 2), key = _b[0], value = _b[1];
311
- nodeScope.set(value.isRecursive ? "@".concat(key) : key, value);
312
- }
313
- }
314
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
315
- finally {
316
- try {
317
- if (newEntries_1_1 && !newEntries_1_1.done && (_a = newEntries_1.return)) _a.call(newEntries_1);
318
- }
319
- finally { if (e_3) throw e_3.error; }
275
+ const nodeScope = localGetOrCreateNodeScope(state, xorNode.node.id, maybeDefaultScope);
276
+ for (const [key, value] of newEntries) {
277
+ nodeScope.set(value.isRecursive ? `@${key}` : key, value);
320
278
  }
321
279
  }
322
280
  function expandChildScope(state, parent, childAttributeIds, newEntries, maybeDefaultScope) {
323
- var e_4, _a;
324
- var nodeIdMapCollection = state.nodeIdMapCollection;
325
- var parentId = parent.node.id;
326
- try {
327
- // TODO: optimize this
328
- for (var childAttributeIds_1 = __values(childAttributeIds), childAttributeIds_1_1 = childAttributeIds_1.next(); !childAttributeIds_1_1.done; childAttributeIds_1_1 = childAttributeIds_1.next()) {
329
- var attributeId = childAttributeIds_1_1.value;
330
- var maybeChild = parser_1.NodeIdMapUtils.maybeNthChild(nodeIdMapCollection, parentId, attributeId);
331
- if (maybeChild !== undefined) {
332
- expandScope(state, maybeChild, newEntries, maybeDefaultScope);
333
- }
334
- }
335
- }
336
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
337
- finally {
338
- try {
339
- if (childAttributeIds_1_1 && !childAttributeIds_1_1.done && (_a = childAttributeIds_1.return)) _a.call(childAttributeIds_1);
281
+ const nodeIdMapCollection = state.nodeIdMapCollection;
282
+ const parentId = parent.node.id;
283
+ // TODO: optimize this
284
+ for (const attributeId of childAttributeIds) {
285
+ const maybeChild = parser_1.NodeIdMapUtils.maybeNthChild(nodeIdMapCollection, parentId, attributeId);
286
+ if (maybeChild !== undefined) {
287
+ expandScope(state, maybeChild, newEntries, maybeDefaultScope);
340
288
  }
341
- finally { if (e_4) throw e_4.error; }
342
289
  }
343
290
  }
344
291
  // Any operation done on a scope should first invoke `scopeFor` for data integrity.
345
292
  function localGetOrCreateNodeScope(state, nodeId, maybeDefaultScope) {
346
- var _a, _b, _c, _d, _e, _f;
347
- var trace = state.traceManager.entry("Scope" /* Scope */, localGetOrCreateNodeScope.name, {
348
- nodeId: nodeId,
293
+ const trace = state.traceManager.entry("Scope" /* Scope */, localGetOrCreateNodeScope.name, {
294
+ nodeId,
349
295
  });
350
296
  // If scopeFor has already been called then there should be a nodeId in the deltaScope.
351
- var maybeDeltaScope = state.deltaScope.get(nodeId);
297
+ const maybeDeltaScope = state.deltaScope.get(nodeId);
352
298
  if (maybeDeltaScope !== undefined) {
353
- trace.exit((_a = {}, _a["Result" /* Result */] = "deltaScope cache hit", _a));
299
+ trace.exit({ ["Result" /* Result */]: "deltaScope cache hit" });
354
300
  return maybeDeltaScope;
355
301
  }
356
302
  // If given a scope with an existing value then assume it's valid.
357
303
  // Cache and return.
358
- var maybeGivenScope = state.givenScope.get(nodeId);
304
+ const maybeGivenScope = state.givenScope.get(nodeId);
359
305
  if (maybeGivenScope !== undefined) {
360
- var shallowCopy = new Map(maybeGivenScope.entries());
306
+ const shallowCopy = new Map(maybeGivenScope.entries());
361
307
  state.deltaScope.set(nodeId, shallowCopy);
362
- trace.exit((_b = {}, _b["Result" /* Result */] = "givenScope cache hit", _b));
308
+ trace.exit({ ["Result" /* Result */]: "givenScope cache hit" });
363
309
  return shallowCopy;
364
310
  }
365
311
  if (maybeDefaultScope !== undefined) {
366
- var shallowCopy = new Map(maybeDefaultScope.entries());
312
+ const shallowCopy = new Map(maybeDefaultScope.entries());
367
313
  state.deltaScope.set(nodeId, shallowCopy);
368
- trace.exit((_c = {}, _c["Result" /* Result */] = "defaultScope entry", _c));
314
+ trace.exit({ ["Result" /* Result */]: "defaultScope entry" });
369
315
  return shallowCopy;
370
316
  }
371
317
  // Default to a parent's scope if the node has a parent.
372
- var maybeParent = parser_1.NodeIdMapUtils.maybeParentXor(state.nodeIdMapCollection, nodeId);
318
+ const maybeParent = parser_1.NodeIdMapUtils.maybeParentXor(state.nodeIdMapCollection, nodeId);
373
319
  if (maybeParent !== undefined) {
374
- var parentNodeId = maybeParent.node.id;
375
- var maybeParentDeltaScope = state.deltaScope.get(parentNodeId);
320
+ const parentNodeId = maybeParent.node.id;
321
+ const maybeParentDeltaScope = state.deltaScope.get(parentNodeId);
376
322
  if (maybeParentDeltaScope !== undefined) {
377
- var shallowCopy = new Map(maybeParentDeltaScope.entries());
323
+ const shallowCopy = new Map(maybeParentDeltaScope.entries());
378
324
  state.deltaScope.set(nodeId, shallowCopy);
379
- trace.exit((_d = {}, _d["Result" /* Result */] = "parent deltaScope hit", _d));
325
+ trace.exit({ ["Result" /* Result */]: "parent deltaScope hit" });
380
326
  return shallowCopy;
381
327
  }
382
- var maybeParentGivenScope = state.givenScope.get(parentNodeId);
328
+ const maybeParentGivenScope = state.givenScope.get(parentNodeId);
383
329
  if (maybeParentGivenScope !== undefined) {
384
- var shallowCopy = new Map(maybeParentGivenScope.entries());
330
+ const shallowCopy = new Map(maybeParentGivenScope.entries());
385
331
  state.deltaScope.set(nodeId, shallowCopy);
386
- trace.exit((_e = {}, _e["Result" /* Result */] = "parent givenScope hit", _e));
332
+ trace.exit({ ["Result" /* Result */]: "parent givenScope hit" });
387
333
  return shallowCopy;
388
334
  }
389
335
  }
390
336
  // The node has no parent or it hasn't been visited.
391
- var newScope = new Map();
337
+ const newScope = new Map();
392
338
  state.deltaScope.set(nodeId, newScope);
393
- trace.exit((_f = {}, _f["Result" /* Result */] = "set new entry", _f));
339
+ trace.exit({ ["Result" /* Result */]: "set new entry" });
394
340
  return newScope;
395
341
  }
396
342
  function scopeItemsFromKeyValuePairs(keyValuePairs, ancestorKeyNodeId, createFn) {
397
343
  return keyValuePairs
398
- .filter(function (keyValuePair) { return keyValuePair.maybeValue !== undefined; })
399
- .map(function (keyValuePair) { return [
344
+ .filter((keyValuePair) => keyValuePair.maybeValue !== undefined)
345
+ .map((keyValuePair) => [
400
346
  keyValuePair.keyLiteral,
401
347
  createFn(keyValuePair, ancestorKeyNodeId === keyValuePair.key.id),
402
- ]; });
348
+ ]);
403
349
  }
404
350
  function createSectionMemberScopeItem(keyValuePair, isRecursive) {
405
351
  return {
406
352
  kind: "SectionMember" /* SectionMember */,
407
353
  id: keyValuePair.source.node.id,
408
- isRecursive: isRecursive,
354
+ isRecursive,
409
355
  key: keyValuePair.key,
410
356
  maybeValue: keyValuePair.maybeValue,
411
357
  };
@@ -414,7 +360,7 @@ function createLetVariableScopeItem(keyValuePair, isRecursive) {
414
360
  return {
415
361
  kind: "LetVariable" /* LetVariable */,
416
362
  id: keyValuePair.source.node.id,
417
- isRecursive: isRecursive,
363
+ isRecursive,
418
364
  key: keyValuePair.key,
419
365
  maybeValue: keyValuePair.maybeValue,
420
366
  };
@@ -423,7 +369,7 @@ function createRecordMemberScopeItem(keyValuePair, isRecursive) {
423
369
  return {
424
370
  kind: "RecordField" /* RecordField */,
425
371
  id: keyValuePair.source.node.id,
426
- isRecursive: isRecursive,
372
+ isRecursive,
427
373
  key: keyValuePair.key,
428
374
  maybeValue: keyValuePair.maybeValue,
429
375
  };