@microsoft/powerquery-language-services 0.10.6 → 0.11.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 (419) hide show
  1. package/lib/powerquery-language-services/analysis/analysis.d.ts +21 -21
  2. package/lib/powerquery-language-services/analysis/analysis.js +4 -4
  3. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +53 -53
  4. package/lib/powerquery-language-services/analysis/analysisBase.js +741 -710
  5. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +14 -14
  7. package/lib/powerquery-language-services/analysis/analysisSettings.js +4 -4
  8. package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +4 -4
  9. package/lib/powerquery-language-services/analysis/analysisUtils.js +26 -28
  10. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  11. package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +8 -8
  12. package/lib/powerquery-language-services/analysis/documentAnalysis.js +15 -15
  13. package/lib/powerquery-language-services/analysis/index.d.ts +5 -5
  14. package/lib/powerquery-language-services/analysis/index.js +43 -10
  15. package/lib/powerquery-language-services/analysis/index.js.map +1 -1
  16. package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +18 -18
  17. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js +51 -65
  18. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
  19. package/lib/powerquery-language-services/commonTypes.d.ts +8 -8
  20. package/lib/powerquery-language-services/commonTypes.js +33 -33
  21. package/lib/powerquery-language-services/commonTypesUtils.d.ts +4 -4
  22. package/lib/powerquery-language-services/commonTypesUtils.js +18 -19
  23. package/lib/powerquery-language-services/commonTypesUtils.js.map +1 -1
  24. package/lib/powerquery-language-services/diagnosticErrorCode.d.ts +8 -8
  25. package/lib/powerquery-language-services/diagnosticErrorCode.js +14 -14
  26. package/lib/powerquery-language-services/diagnosticErrorCode.js.map +1 -1
  27. package/lib/powerquery-language-services/documentSymbols.d.ts +3 -3
  28. package/lib/powerquery-language-services/documentSymbols.js +80 -83
  29. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  30. package/lib/powerquery-language-services/externalType/externalType.d.ts +21 -21
  31. package/lib/powerquery-language-services/externalType/externalType.js +16 -16
  32. package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
  33. package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +5 -5
  34. package/lib/powerquery-language-services/externalType/externalTypeUtils.js +32 -33
  35. package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
  36. package/lib/powerquery-language-services/externalType/index.d.ts +2 -2
  37. package/lib/powerquery-language-services/externalType/index.js +40 -7
  38. package/lib/powerquery-language-services/externalType/index.js.map +1 -1
  39. package/lib/powerquery-language-services/formatter.d.ts +5 -5
  40. package/lib/powerquery-language-services/formatter.js +72 -46
  41. package/lib/powerquery-language-services/formatter.js.map +1 -1
  42. package/lib/powerquery-language-services/index.d.ts +20 -20
  43. package/lib/powerquery-language-services/index.js +64 -42
  44. package/lib/powerquery-language-services/index.js.map +1 -1
  45. package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +43 -43
  46. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +17 -17
  47. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +11 -11
  49. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +351 -351
  50. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  51. package/lib/powerquery-language-services/inspection/activeNode/index.d.ts +3 -3
  52. package/lib/powerquery-language-services/inspection/activeNode/index.js +44 -22
  53. package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +8 -8
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +281 -258
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  57. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.d.ts +6 -6
  58. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.js +4 -4
  59. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +8 -8
  60. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +78 -79
  61. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.d.ts +2 -2
  63. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js +43 -21
  64. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js.map +1 -1
  65. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +8 -8
  66. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +217 -197
  67. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  68. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.d.ts +3 -3
  69. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +86 -87
  70. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  71. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.d.ts +3 -3
  72. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +53 -54
  73. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.d.ts +3 -3
  75. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +29 -30
  76. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  77. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +3 -3
  78. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +58 -70
  79. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.d.ts +3 -3
  81. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +38 -39
  82. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  83. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +3 -3
  84. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +40 -41
  85. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  86. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +3 -3
  87. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +63 -31
  88. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  89. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +3 -3
  90. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +30 -39
  91. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  92. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +11 -11
  93. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.js +4 -4
  94. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.d.ts +1 -1
  95. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.js +7 -7
  96. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +6 -6
  97. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +190 -188
  98. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  99. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +6 -6
  100. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +334 -335
  101. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  102. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.d.ts +2 -2
  103. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +19 -20
  104. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
  105. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +27 -27
  106. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.js +4 -4
  107. package/lib/powerquery-language-services/inspection/autocomplete/index.d.ts +6 -6
  108. package/lib/powerquery-language-services/inspection/autocomplete/index.js +47 -25
  109. package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
  110. package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +6 -6
  111. package/lib/powerquery-language-services/inspection/autocomplete/task.js +68 -44
  112. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  113. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +7 -7
  114. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +4 -4
  115. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.d.ts +4 -4
  116. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +20 -18
  117. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -1
  118. package/lib/powerquery-language-services/inspection/commonTypes.d.ts +20 -20
  119. package/lib/powerquery-language-services/inspection/commonTypes.js +4 -4
  120. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.d.ts +37 -37
  121. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js +13 -13
  122. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js.map +1 -1
  123. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.d.ts +6 -6
  124. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js +244 -221
  125. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js.map +1 -1
  126. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.d.ts +2 -2
  127. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js +41 -19
  128. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js.map +1 -1
  129. package/lib/powerquery-language-services/inspection/expectedType.d.ts +8 -8
  130. package/lib/powerquery-language-services/inspection/expectedType.js +420 -388
  131. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  132. package/lib/powerquery-language-services/inspection/index.d.ts +9 -9
  133. package/lib/powerquery-language-services/inspection/index.js +27 -27
  134. package/lib/powerquery-language-services/inspection/invokeExpression/common.d.ts +16 -16
  135. package/lib/powerquery-language-services/inspection/invokeExpression/common.js +4 -4
  136. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +12 -12
  137. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +137 -106
  138. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  139. package/lib/powerquery-language-services/inspection/invokeExpression/index.d.ts +3 -3
  140. package/lib/powerquery-language-services/inspection/invokeExpression/index.js +20 -20
  141. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +8 -8
  142. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +141 -119
  143. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  144. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.d.ts +11 -11
  145. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +57 -58
  146. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  147. package/lib/powerquery-language-services/inspection/scope/index.d.ts +3 -3
  148. package/lib/powerquery-language-services/inspection/scope/index.js +44 -22
  149. package/lib/powerquery-language-services/inspection/scope/index.js.map +1 -1
  150. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +46 -46
  151. package/lib/powerquery-language-services/inspection/scope/scope.js +14 -14
  152. package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
  153. package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +7 -7
  154. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +313 -327
  155. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  156. package/lib/powerquery-language-services/inspection/scope/scopeUtils.d.ts +17 -17
  157. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +125 -104
  158. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
  159. package/lib/powerquery-language-services/inspection/task.d.ts +28 -28
  160. package/lib/powerquery-language-services/inspection/task.js +196 -160
  161. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  162. package/lib/powerquery-language-services/inspection/type/index.d.ts +3 -3
  163. package/lib/powerquery-language-services/inspection/type/index.js +44 -22
  164. package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
  165. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +14 -14
  166. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +362 -353
  167. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  168. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +8 -8
  169. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +28 -43
  170. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  171. package/lib/powerquery-language-services/inspection/type/inspectType/index.d.ts +1 -1
  172. package/lib/powerquery-language-services/inspection/type/inspectType/index.js +19 -19
  173. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.d.ts +3 -3
  174. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +57 -57
  175. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  176. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +4 -4
  177. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +26 -39
  178. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  179. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +4 -4
  180. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +82 -62
  181. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  182. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -4
  183. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +55 -69
  184. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  185. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.d.ts +4 -4
  186. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +128 -103
  187. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
  188. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.d.ts +4 -4
  189. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +63 -75
  190. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  191. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +4 -4
  192. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +21 -34
  193. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  194. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +4 -4
  195. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +74 -87
  196. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  197. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +4 -4
  198. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +85 -65
  199. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  200. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +4 -4
  201. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +25 -38
  202. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  203. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +4 -4
  204. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +25 -38
  205. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  206. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +4 -4
  207. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +46 -61
  208. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  209. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +4 -4
  210. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +69 -84
  211. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  212. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +4 -4
  213. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +37 -50
  214. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  215. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +4 -4
  216. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +43 -56
  217. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  218. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.d.ts +4 -4
  219. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +44 -44
  220. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  221. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +4 -4
  222. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +36 -49
  223. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  224. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +4 -4
  225. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +23 -33
  226. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  227. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.d.ts +4 -4
  228. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +25 -26
  229. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  230. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +4 -4
  231. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +53 -66
  232. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  233. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +4 -4
  234. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +45 -58
  235. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  236. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +4 -4
  237. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +42 -50
  238. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  239. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +4 -4
  240. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +43 -56
  241. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  242. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.d.ts +2 -2
  243. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js +41 -19
  244. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js.map +1 -1
  245. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.d.ts +9 -9
  246. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js +4 -4
  247. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.d.ts +7 -7
  248. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js +41 -42
  249. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js.map +1 -1
  250. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +8 -8
  251. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +326 -292
  252. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  253. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +4 -4
  254. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +51 -59
  255. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  256. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +4 -4
  257. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +76 -89
  258. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  259. package/lib/powerquery-language-services/inspection/type/task.d.ts +10 -10
  260. package/lib/powerquery-language-services/inspection/type/task.js +49 -65
  261. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  262. package/lib/powerquery-language-services/inspection/typeCache/index.d.ts +2 -2
  263. package/lib/powerquery-language-services/inspection/typeCache/index.js +43 -21
  264. package/lib/powerquery-language-services/inspection/typeCache/index.js.map +1 -1
  265. package/lib/powerquery-language-services/inspection/typeCache/typeCache.d.ts +7 -7
  266. package/lib/powerquery-language-services/inspection/typeCache/typeCache.js +4 -4
  267. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +2 -2
  268. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +12 -13
  269. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
  270. package/lib/powerquery-language-services/inspectionSettings.d.ts +13 -13
  271. package/lib/powerquery-language-services/inspectionSettings.js +12 -12
  272. package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
  273. package/lib/powerquery-language-services/inspectionUtils.d.ts +16 -16
  274. package/lib/powerquery-language-services/inspectionUtils.js +142 -149
  275. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  276. package/lib/powerquery-language-services/jaroWinkler.d.ts +3 -3
  277. package/lib/powerquery-language-services/jaroWinkler.js +102 -103
  278. package/lib/powerquery-language-services/jaroWinkler.js.map +1 -1
  279. package/lib/powerquery-language-services/languageServiceUtils.d.ts +2 -2
  280. package/lib/powerquery-language-services/languageServiceUtils.js +53 -39
  281. package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
  282. package/lib/powerquery-language-services/library/index.d.ts +5 -5
  283. package/lib/powerquery-language-services/library/index.js +43 -10
  284. package/lib/powerquery-language-services/library/index.js.map +1 -1
  285. package/lib/powerquery-language-services/library/library.d.ts +45 -45
  286. package/lib/powerquery-language-services/library/library.js +19 -19
  287. package/lib/powerquery-language-services/library/library.js.map +1 -1
  288. package/lib/powerquery-language-services/library/libraryDefinitionUtils.d.ts +21 -21
  289. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js +106 -107
  290. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js.map +1 -1
  291. package/lib/powerquery-language-services/library/librarySymbol.d.ts +33 -33
  292. package/lib/powerquery-language-services/library/librarySymbol.js +4 -4
  293. package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +34 -34
  294. package/lib/powerquery-language-services/library/librarySymbolUtils.js +258 -261
  295. package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
  296. package/lib/powerquery-language-services/library/libraryUtils.d.ts +8 -8
  297. package/lib/powerquery-language-services/library/libraryUtils.js +48 -49
  298. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  299. package/lib/powerquery-language-services/localization/index.d.ts +2 -2
  300. package/lib/powerquery-language-services/localization/index.js +43 -21
  301. package/lib/powerquery-language-services/localization/index.js.map +1 -1
  302. package/lib/powerquery-language-services/localization/localization.d.ts +10 -10
  303. package/lib/powerquery-language-services/localization/localization.js +51 -51
  304. package/lib/powerquery-language-services/localization/localization.js.map +1 -1
  305. package/lib/powerquery-language-services/localization/localizationUtils.d.ts +2 -2
  306. package/lib/powerquery-language-services/localization/localizationUtils.js +7 -9
  307. package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
  308. package/lib/powerquery-language-services/localization/templates/templates.bg-BG.json +12 -12
  309. package/lib/powerquery-language-services/localization/templates/templates.ca-ES.json +12 -12
  310. package/lib/powerquery-language-services/localization/templates/templates.cs-CZ.json +12 -12
  311. package/lib/powerquery-language-services/localization/templates/templates.da-DK.json +12 -12
  312. package/lib/powerquery-language-services/localization/templates/templates.de-DE.json +12 -12
  313. package/lib/powerquery-language-services/localization/templates/templates.el-GR.json +12 -12
  314. package/lib/powerquery-language-services/localization/templates/templates.es-ES.json +12 -12
  315. package/lib/powerquery-language-services/localization/templates/templates.et-EE.json +12 -12
  316. package/lib/powerquery-language-services/localization/templates/templates.eu-ES.json +12 -12
  317. package/lib/powerquery-language-services/localization/templates/templates.fi-FI.json +12 -12
  318. package/lib/powerquery-language-services/localization/templates/templates.fr-FR.json +12 -12
  319. package/lib/powerquery-language-services/localization/templates/templates.gl-ES.json +12 -12
  320. package/lib/powerquery-language-services/localization/templates/templates.hi-IN.json +12 -12
  321. package/lib/powerquery-language-services/localization/templates/templates.hr-HR.json +12 -12
  322. package/lib/powerquery-language-services/localization/templates/templates.hu-HU.json +12 -12
  323. package/lib/powerquery-language-services/localization/templates/templates.id-ID.json +12 -12
  324. package/lib/powerquery-language-services/localization/templates/templates.it-IT.json +12 -12
  325. package/lib/powerquery-language-services/localization/templates/templates.ja-JP.json +12 -12
  326. package/lib/powerquery-language-services/localization/templates/templates.json +20 -20
  327. package/lib/powerquery-language-services/localization/templates/templates.kk-KZ.json +12 -12
  328. package/lib/powerquery-language-services/localization/templates/templates.ko-KR.json +12 -12
  329. package/lib/powerquery-language-services/localization/templates/templates.lt-LT.json +12 -12
  330. package/lib/powerquery-language-services/localization/templates/templates.lv-LV.json +12 -12
  331. package/lib/powerquery-language-services/localization/templates/templates.ms-MY.json +12 -12
  332. package/lib/powerquery-language-services/localization/templates/templates.nb-NO.json +12 -12
  333. package/lib/powerquery-language-services/localization/templates/templates.nl-NL.json +12 -12
  334. package/lib/powerquery-language-services/localization/templates/templates.pl-PL.json +12 -12
  335. package/lib/powerquery-language-services/localization/templates/templates.pt-BR.json +12 -12
  336. package/lib/powerquery-language-services/localization/templates/templates.pt-PT.json +12 -12
  337. package/lib/powerquery-language-services/localization/templates/templates.ro-RO.json +12 -12
  338. package/lib/powerquery-language-services/localization/templates/templates.ru-RU.json +12 -12
  339. package/lib/powerquery-language-services/localization/templates/templates.sk-SK.json +12 -12
  340. package/lib/powerquery-language-services/localization/templates/templates.sl-SI.json +12 -12
  341. package/lib/powerquery-language-services/localization/templates/templates.sr-Cyrl-RS.json +12 -12
  342. package/lib/powerquery-language-services/localization/templates/templates.sr-Latn-RS.json +12 -12
  343. package/lib/powerquery-language-services/localization/templates/templates.sv-SE.json +12 -12
  344. package/lib/powerquery-language-services/localization/templates/templates.th-TH.json +12 -12
  345. package/lib/powerquery-language-services/localization/templates/templates.tr-TR.json +12 -12
  346. package/lib/powerquery-language-services/localization/templates/templates.uk-UA.json +12 -12
  347. package/lib/powerquery-language-services/localization/templates/templates.vi-VN.json +12 -12
  348. package/lib/powerquery-language-services/localization/templates/templates.zh-CN.json +12 -12
  349. package/lib/powerquery-language-services/localization/templates/templates.zh-TW.json +12 -12
  350. package/lib/powerquery-language-services/localization/templates.d.ts +55 -55
  351. package/lib/powerquery-language-services/localization/templates.js +166 -133
  352. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  353. package/lib/powerquery-language-services/positionUtils.d.ts +32 -32
  354. package/lib/powerquery-language-services/positionUtils.js +257 -240
  355. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  356. package/lib/powerquery-language-services/providers/commonTypes.d.ts +75 -75
  357. package/lib/powerquery-language-services/providers/commonTypes.js +4 -4
  358. package/lib/powerquery-language-services/providers/index.d.ts +5 -5
  359. package/lib/powerquery-language-services/providers/index.js +28 -28
  360. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +12 -12
  361. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +62 -73
  362. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  363. package/lib/powerquery-language-services/providers/libraryProvider.d.ts +16 -16
  364. package/lib/powerquery-language-services/providers/libraryProvider.js +116 -131
  365. package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
  366. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.d.ts +4 -4
  367. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +50 -52
  368. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
  369. package/lib/powerquery-language-services/providers/localDocumentProvider/index.d.ts +1 -1
  370. package/lib/powerquery-language-services/providers/localDocumentProvider/index.js +19 -19
  371. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.d.ts +21 -21
  372. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +277 -259
  373. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
  374. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.d.ts +6 -6
  375. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +313 -321
  376. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
  377. package/lib/powerquery-language-services/providers/nullSymbolProvider.d.ts +19 -19
  378. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +46 -68
  379. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  380. package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -5
  381. package/lib/powerquery-language-services/tokenPositionComparison.js +12 -12
  382. package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -1
  383. package/lib/powerquery-language-services/trace.d.ts +27 -27
  384. package/lib/powerquery-language-services/trace.js +36 -36
  385. package/lib/powerquery-language-services/trace.js.map +1 -1
  386. package/lib/powerquery-language-services/traceUtils.d.ts +14 -14
  387. package/lib/powerquery-language-services/traceUtils.js +19 -20
  388. package/lib/powerquery-language-services/traceUtils.js.map +1 -1
  389. package/lib/powerquery-language-services/validate/index.d.ts +3 -3
  390. package/lib/powerquery-language-services/validate/index.js +23 -23
  391. package/lib/powerquery-language-services/validate/validate.d.ts +6 -6
  392. package/lib/powerquery-language-services/validate/validate.js +60 -67
  393. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  394. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +6 -6
  395. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +164 -134
  396. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  397. package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +4 -4
  398. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +63 -63
  399. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  400. package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +5 -5
  401. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +109 -123
  402. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  403. package/lib/powerquery-language-services/validate/validateOk.d.ts +5 -5
  404. package/lib/powerquery-language-services/validate/validateOk.js +4 -4
  405. package/lib/powerquery-language-services/validate/validateParse.d.ts +4 -4
  406. package/lib/powerquery-language-services/validate/validateParse.js +94 -73
  407. package/lib/powerquery-language-services/validate/validateParse.js.map +1 -1
  408. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.d.ts +5 -5
  409. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +99 -109
  410. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  411. package/lib/powerquery-language-services/validate/validationSettings/index.d.ts +2 -2
  412. package/lib/powerquery-language-services/validate/validationSettings/index.js +43 -21
  413. package/lib/powerquery-language-services/validate/validationSettings/index.js.map +1 -1
  414. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.d.ts +12 -12
  415. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.js +4 -4
  416. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.d.ts +3 -3
  417. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +15 -10
  418. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
  419. package/package.json +23 -22
@@ -1,37 +1,37 @@
1
- import { TPowerQueryType } from "@microsoft/powerquery-parser/lib/powerquery-parser/language/type/type";
2
- import { TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
- import { TScopeItem } from "../scope";
4
- export declare enum DereferencedIdentifierKind {
5
- External = "External",
6
- InScopeDereference = "InScopeDereference",
7
- InScopeValue = "InScopeValue",
8
- Recursive = "Recursive",
9
- Undefined = "Undefined"
10
- }
11
- export interface IDereferencedIdentifier {
12
- readonly kind: DereferencedIdentifierKind;
13
- readonly xorNode: TXorNode;
14
- }
15
- export interface DereferencedIdentifierExternal extends IDereferencedIdentifier {
16
- readonly kind: DereferencedIdentifierKind.External;
17
- readonly identifierLiteral: string;
18
- readonly type: TPowerQueryType;
19
- }
20
- export interface DereferencedIdentifierInScopeDereference extends IDereferencedIdentifier {
21
- readonly kind: DereferencedIdentifierKind.InScopeDereference;
22
- readonly identifierLiteral: string;
23
- readonly nextScopeItem: TScopeItem;
24
- }
25
- export interface DereferencedIdentifierInScopeValue extends IDereferencedIdentifier {
26
- readonly kind: DereferencedIdentifierKind.InScopeValue;
27
- readonly scopeItem: TScopeItem;
28
- }
29
- export interface DereferencedIdentifierRecursive extends IDereferencedIdentifier {
30
- readonly kind: DereferencedIdentifierKind.Recursive;
31
- readonly identifierLiteral: string;
32
- }
33
- export interface DereferencedIdentifierUndefined extends IDereferencedIdentifier {
34
- readonly kind: DereferencedIdentifierKind.Undefined;
35
- readonly identifierLiteral: string;
36
- }
37
- export declare type TDereferencedIdentifier = DereferencedIdentifierExternal | DereferencedIdentifierInScopeDereference | DereferencedIdentifierInScopeValue | DereferencedIdentifierRecursive | DereferencedIdentifierUndefined;
1
+ import { TPowerQueryType } from "@microsoft/powerquery-parser/lib/powerquery-parser/language/type/type";
2
+ import { TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
+ import { TScopeItem } from "../scope";
4
+ export declare enum DereferencedIdentifierKind {
5
+ External = "External",
6
+ InScopeDereference = "InScopeDereference",
7
+ InScopeValue = "InScopeValue",
8
+ Recursive = "Recursive",
9
+ Undefined = "Undefined"
10
+ }
11
+ export interface IDereferencedIdentifier {
12
+ readonly kind: DereferencedIdentifierKind;
13
+ readonly xorNode: TXorNode;
14
+ }
15
+ export interface DereferencedIdentifierExternal extends IDereferencedIdentifier {
16
+ readonly kind: DereferencedIdentifierKind.External;
17
+ readonly identifierLiteral: string;
18
+ readonly type: TPowerQueryType;
19
+ }
20
+ export interface DereferencedIdentifierInScopeDereference extends IDereferencedIdentifier {
21
+ readonly kind: DereferencedIdentifierKind.InScopeDereference;
22
+ readonly identifierLiteral: string;
23
+ readonly nextScopeItem: TScopeItem;
24
+ }
25
+ export interface DereferencedIdentifierInScopeValue extends IDereferencedIdentifier {
26
+ readonly kind: DereferencedIdentifierKind.InScopeValue;
27
+ readonly scopeItem: TScopeItem;
28
+ }
29
+ export interface DereferencedIdentifierRecursive extends IDereferencedIdentifier {
30
+ readonly kind: DereferencedIdentifierKind.Recursive;
31
+ readonly identifierLiteral: string;
32
+ }
33
+ export interface DereferencedIdentifierUndefined extends IDereferencedIdentifier {
34
+ readonly kind: DereferencedIdentifierKind.Undefined;
35
+ readonly identifierLiteral: string;
36
+ }
37
+ export type TDereferencedIdentifier = DereferencedIdentifierExternal | DereferencedIdentifierInScopeDereference | DereferencedIdentifierInScopeValue | DereferencedIdentifierRecursive | DereferencedIdentifierUndefined;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.DereferencedIdentifierKind = void 0;
6
- var DereferencedIdentifierKind;
7
- (function (DereferencedIdentifierKind) {
8
- DereferencedIdentifierKind["External"] = "External";
9
- DereferencedIdentifierKind["InScopeDereference"] = "InScopeDereference";
10
- DereferencedIdentifierKind["InScopeValue"] = "InScopeValue";
11
- DereferencedIdentifierKind["Recursive"] = "Recursive";
12
- DereferencedIdentifierKind["Undefined"] = "Undefined";
13
- })(DereferencedIdentifierKind = exports.DereferencedIdentifierKind || (exports.DereferencedIdentifierKind = {}));
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.DereferencedIdentifierKind = void 0;
6
+ var DereferencedIdentifierKind;
7
+ (function (DereferencedIdentifierKind) {
8
+ DereferencedIdentifierKind["External"] = "External";
9
+ DereferencedIdentifierKind["InScopeDereference"] = "InScopeDereference";
10
+ DereferencedIdentifierKind["InScopeValue"] = "InScopeValue";
11
+ DereferencedIdentifierKind["Recursive"] = "Recursive";
12
+ DereferencedIdentifierKind["Undefined"] = "Undefined";
13
+ })(DereferencedIdentifierKind || (exports.DereferencedIdentifierKind = DereferencedIdentifierKind = {}));
14
14
  //# sourceMappingURL=dereferencedIdentifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dereferencedIdentifier.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAOlC,IAAY,0BAMX;AAND,WAAY,0BAA0B;IAClC,mDAAqB,CAAA;IACrB,uEAAyC,CAAA;IACzC,2DAA6B,CAAA;IAC7B,qDAAuB,CAAA;IACvB,qDAAuB,CAAA;AAC3B,CAAC,EANW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAMrC"}
1
+ {"version":3,"file":"dereferencedIdentifier.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAOlC,IAAY,0BAMX;AAND,WAAY,0BAA0B;IAClC,mDAAqB,CAAA;IACrB,uEAAyC,CAAA;IACzC,2DAA6B,CAAA;IAC7B,qDAAuB,CAAA;IACvB,qDAAuB,CAAA;AAC3B,CAAC,EANW,0BAA0B,0CAA1B,0BAA0B,QAMrC"}
@@ -1,6 +1,6 @@
1
- import * as PQP from "@microsoft/powerquery-parser";
2
- import { NodeIdMap, TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
- import { ScopeById } from "../scope";
4
- import { TDereferencedIdentifier } from "././dereferencedIdentifier";
5
- import { InspectionSettings } from "../..";
6
- export declare function tryBuildDereferencedIdentifierPath(inspectionSettings: InspectionSettings, nodeIdMapCollection: NodeIdMap.Collection, xorNode: TXorNode, scopeById?: ScopeById): Promise<PQP.Result<ReadonlyArray<TDereferencedIdentifier>, PQP.CommonError.CommonError>>;
1
+ import * as PQP from "@microsoft/powerquery-parser";
2
+ import { NodeIdMap, TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
+ import { ScopeById } from "../scope";
4
+ import { TDereferencedIdentifier } from "././dereferencedIdentifier";
5
+ import { InspectionSettings } from "../..";
6
+ export declare function tryBuildDereferencedIdentifierPath(inspectionSettings: InspectionSettings, nodeIdMapCollection: NodeIdMap.Collection, xorNode: TXorNode, scopeById?: ScopeById): Promise<PQP.Result<ReadonlyArray<TDereferencedIdentifier>, PQP.CommonError.CommonError>>;
@@ -1,222 +1,245 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
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
- });
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.tryBuildDereferencedIdentifierPath = void 0;
15
- const PQP = require("@microsoft/powerquery-parser");
16
- const powerquery_parser_1 = require("@microsoft/powerquery-parser");
17
- const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
18
- const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
19
- const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
20
- const scope_1 = require("../scope");
21
- const dereferencedIdentifier_1 = require("././dereferencedIdentifier");
22
- const __1 = require("../..");
23
- const trace_2 = require("../../trace");
24
- // Recursively dereference the identifier until it reaches either:
25
- // - A recursive identifier which is not supported
26
- // - A value node
27
- // - An external type
28
- // - Undefined
29
- //
30
- // Below some examples of dereferencing local identifiers with the recursive '@' prefix.
31
- //
32
- // Evaluates to: [key1 = 42, key2 = 42]
33
- // let foo = 42 in [key1 = foo, key2 = @foo]
34
- //
35
- // Evaluates to: -1
36
- // let
37
- // SomeFunction = (x as number) => -1,
38
- // Record = [SomeFunction = (x as number) => if x = 42 then 42 else SomeFunction(x + 1)]
39
- // in
40
- // Record[SomeFunction](0)
41
- //
42
- // Evaluates to: 42
43
- // let
44
- // SomeFunction = (x as number) => -1,
45
- // Record = [SomeFunction = (x as number) => if x = 42 then 42 else @SomeFunction(x + 1)]
46
- // in
47
- // Record[SomeFunction](0)
48
- function tryBuildDereferencedIdentifierPath(inspectionSettings, nodeIdMapCollection, xorNode,
49
- // If a map is given, then it's mutated and returned.
50
- // Else create a new Map instance and return that instead.
51
- scopeById = new Map()) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, tryBuildDereferencedIdentifierPath.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(xorNode));
54
- const updatedSettings = Object.assign(Object.assign({}, inspectionSettings), { initialCorrelationId: trace.id });
55
- try {
56
- parser_1.XorNodeUtils.assertIsIdentifier(xorNode);
57
- if (parser_1.XorNodeUtils.isContext(xorNode)) {
58
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
59
- throw new PQP.CommonError.InvariantError(`expected xorNode to be an identifier`, { xorNode });
60
- }
61
- const dereferenceResult = yield dereferenceScopeItem(updatedSettings, nodeIdMapCollection, xorNode, scopeById, xorNode);
62
- trace.exit();
63
- return dereferenceResult;
64
- }
65
- catch (caught) {
66
- powerquery_parser_1.Assert.isInstanceofError(caught);
67
- trace.exit();
68
- return powerquery_parser_1.ResultUtils.error(PQP.CommonError.ensureCommonError(caught, inspectionSettings.locale));
69
- }
70
- });
71
- }
72
- exports.tryBuildDereferencedIdentifierPath = tryBuildDereferencedIdentifierPath;
73
- function dereferenceScopeItem(inspectionSettings, nodeIdMapCollection, identifierAstXorNode, scopeById, initialIdentifierXorNode) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, dereferenceScopeItem.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(identifierAstXorNode));
76
- const updatedSettings = Object.assign(Object.assign({}, inspectionSettings), { initialCorrelationId: trace.id });
77
- const dereferencedPath = [];
78
- const initialTriedNodeScope = yield (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, initialIdentifierXorNode.node.id, scopeById);
79
- if (powerquery_parser_1.ResultUtils.isError(initialTriedNodeScope)) {
80
- trace.exit({ [trace_1.TraceConstant.Result]: initialTriedNodeScope.kind });
81
- return initialTriedNodeScope;
82
- }
83
- let currentScopeItem = initialTriedNodeScope.value.get(language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node));
84
- let currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node);
85
- if (currentScopeItem === undefined) {
86
- return onIdentifierNotInScope(dereferencedPath, identifierAstXorNode, trace, updatedSettings, currentIdentifierLiteral);
87
- }
88
- while (currentScopeItem.kind) {
89
- const currentXorNode = parser_1.NodeIdMapUtils.assertXor(nodeIdMapCollection, currentScopeItem.nodeId);
90
- switch (currentScopeItem.kind) {
91
- case scope_1.ScopeItemKind.LetVariable:
92
- case scope_1.ScopeItemKind.RecordField:
93
- case scope_1.ScopeItemKind.SectionMember:
94
- // eslint-disable-next-line no-lone-blocks
95
- {
96
- const potentialDereference = currentScopeItem.value;
97
- // Most commonly happens when a variable has yet to be defined,
98
- // for example, a context node for a RecordExpression `[let foo = 1, bar = |`
99
- if (potentialDereference === undefined) {
100
- return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
101
- }
102
- // It's referencing another identifier
103
- if (potentialDereference !== undefined &&
104
- parser_1.XorNodeUtils.isAstChecked(potentialDereference, [
105
- language_1.Ast.NodeKind.Identifier,
106
- language_1.Ast.NodeKind.IdentifierExpression,
107
- ])) {
108
- currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(potentialDereference.node);
109
- // If it's a non-recursive dereference
110
- if (!currentScopeItem.isRecursive) {
111
- // Generate the scope for the next dereference (if needed)
112
- // eslint-disable-next-line no-await-in-loop
113
- const triedNodeScope = yield (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, potentialDereference.node.id, scopeById);
114
- if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
115
- trace.exit({ [trace_1.TraceConstant.Result]: triedNodeScope.kind });
116
- return triedNodeScope;
117
- }
118
- const nextScopeItem = triedNodeScope.value.get(currentIdentifierLiteral);
119
- if (nextScopeItem === undefined) {
120
- return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
121
- }
122
- dereferencedPath.push({
123
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeDereference,
124
- xorNode: currentXorNode,
125
- identifierLiteral: currentIdentifierLiteral,
126
- nextScopeItem,
127
- });
128
- currentScopeItem = nextScopeItem;
129
- }
130
- // Else if it's a recursive scopeItem and we ARE looking for a recursive scopeItem,
131
- // then we're done.
132
- else if (currentIdentifierLiteral.startsWith("@")) {
133
- return onRecursiveIdentifierLiteral(dereferencedPath, currentXorNode, trace, currentIdentifierLiteral);
134
- }
135
- // Else it's a recursive scopeItem and we ARE NOT looking for a recursive scopeItem,
136
- // then look up the ancestry chain for a non-recursive scopeItem of the same name.
137
- else {
138
- const ancestoryScopeItem = findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, currentIdentifierLiteral, currentXorNode.node.id);
139
- if (ancestoryScopeItem === undefined) {
140
- return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
141
- }
142
- currentScopeItem = ancestoryScopeItem;
143
- }
144
- }
145
- else {
146
- return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
147
- }
148
- }
149
- break;
150
- case scope_1.ScopeItemKind.Each:
151
- return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
152
- case scope_1.ScopeItemKind.Parameter:
153
- return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
154
- case scope_1.ScopeItemKind.Undefined:
155
- dereferencedPath.push({
156
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
157
- identifierLiteral: currentIdentifierLiteral,
158
- xorNode: currentXorNode,
159
- });
160
- trace.exit();
161
- return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
162
- default:
163
- throw powerquery_parser_1.Assert.isNever(currentScopeItem);
164
- }
165
- }
166
- trace.exit();
167
- return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
168
- });
169
- }
170
- // Sometimes in the scope of a lower node (e.g. a leaf node) there's a scopeItem that matches the
171
- // identifier literal we're looking for, but it's marked as recursive.
172
- // In that case we want to look up the tree to see if there's a non-recursive scopeItem of the same name further up.
173
- function findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, identifierLiteral, initialNodeId) {
174
- var _a;
175
- let currentNodeId = nodeIdMapCollection.parentIdById.get(initialNodeId);
176
- while (currentNodeId) {
177
- const scopeItem = (_a = scopeById.get(currentNodeId)) === null || _a === void 0 ? void 0 : _a.get(identifierLiteral);
178
- if (scopeItem && !scopeItem.isRecursive) {
179
- return scopeItem;
180
- }
181
- currentNodeId = nodeIdMapCollection.parentIdById.get(currentNodeId);
182
- }
183
- return undefined;
184
- }
185
- // Validates whether an unknown identifier is an externally defined type (e.g. a built-in function)
186
- function onIdentifierNotInScope(dereferencePath, xorNode, trace, inspectionSettings, identifierLiteral) {
187
- const externalType = inspectionSettings.library.externalTypeResolver(__1.ExternalTypeUtils.valueTypeRequest(language_1.IdentifierExpressionUtils.assertNormalizedIdentifierExpression(identifierLiteral)));
188
- const finalPath = externalType
189
- ? {
190
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.External,
191
- xorNode,
192
- identifierLiteral,
193
- type: externalType,
194
- }
195
- : {
196
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
197
- xorNode,
198
- identifierLiteral,
199
- };
200
- dereferencePath.push(finalPath);
201
- trace.exit({ [trace_1.TraceConstant.Result]: finalPath });
202
- return powerquery_parser_1.ResultUtils.ok(dereferencePath);
203
- }
204
- function onInScopeValue(dereferencePath, xorNode, trace, scopeItem) {
205
- dereferencePath.push({
206
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeValue,
207
- xorNode,
208
- scopeItem,
209
- });
210
- trace.exit();
211
- return powerquery_parser_1.ResultUtils.ok(dereferencePath);
212
- }
213
- function onRecursiveIdentifierLiteral(dereferencePath, xorNode, trace, identifierLiteral) {
214
- dereferencePath.push({
215
- kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Recursive,
216
- xorNode,
217
- identifierLiteral,
218
- });
219
- trace.exit();
220
- return powerquery_parser_1.ResultUtils.ok(dereferencePath);
221
- }
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.tryBuildDereferencedIdentifierPath = tryBuildDereferencedIdentifierPath;
39
+ const PQP = __importStar(require("@microsoft/powerquery-parser"));
40
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
41
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
42
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
43
+ const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
44
+ const scope_1 = require("../scope");
45
+ const dereferencedIdentifier_1 = require("././dereferencedIdentifier");
46
+ const __1 = require("../..");
47
+ const trace_2 = require("../../trace");
48
+ // Recursively dereference the identifier until it reaches either:
49
+ // - A recursive identifier which is not supported
50
+ // - A value node
51
+ // - An external type
52
+ // - Undefined
53
+ //
54
+ // Below some examples of dereferencing local identifiers with the recursive '@' prefix.
55
+ //
56
+ // Evaluates to: [key1 = 42, key2 = 42]
57
+ // let foo = 42 in [key1 = foo, key2 = @foo]
58
+ //
59
+ // Evaluates to: -1
60
+ // let
61
+ // SomeFunction = (x as number) => -1,
62
+ // Record = [SomeFunction = (x as number) => if x = 42 then 42 else SomeFunction(x + 1)]
63
+ // in
64
+ // Record[SomeFunction](0)
65
+ //
66
+ // Evaluates to: 42
67
+ // let
68
+ // SomeFunction = (x as number) => -1,
69
+ // Record = [SomeFunction = (x as number) => if x = 42 then 42 else @SomeFunction(x + 1)]
70
+ // in
71
+ // Record[SomeFunction](0)
72
+ async function tryBuildDereferencedIdentifierPath(inspectionSettings, nodeIdMapCollection, xorNode,
73
+ // If a map is given, then it's mutated and returned.
74
+ // Else create a new Map instance and return that instead.
75
+ scopeById = new Map()) {
76
+ const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, tryBuildDereferencedIdentifierPath.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(xorNode));
77
+ const updatedSettings = {
78
+ ...inspectionSettings,
79
+ initialCorrelationId: trace.id,
80
+ };
81
+ try {
82
+ parser_1.XorNodeUtils.assertIsIdentifier(xorNode);
83
+ if (parser_1.XorNodeUtils.isContext(xorNode)) {
84
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
85
+ throw new PQP.CommonError.InvariantError(`expected xorNode to be an identifier`, { xorNode });
86
+ }
87
+ const dereferenceResult = await dereferenceScopeItem(updatedSettings, nodeIdMapCollection, xorNode, scopeById, xorNode);
88
+ trace.exit();
89
+ return dereferenceResult;
90
+ }
91
+ catch (caught) {
92
+ powerquery_parser_1.Assert.isInstanceofError(caught);
93
+ trace.exit();
94
+ return powerquery_parser_1.ResultUtils.error(PQP.CommonError.ensureCommonError(caught, inspectionSettings.locale));
95
+ }
96
+ }
97
+ async function dereferenceScopeItem(inspectionSettings, nodeIdMapCollection, identifierAstXorNode, scopeById, initialIdentifierXorNode) {
98
+ const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, dereferenceScopeItem.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(identifierAstXorNode));
99
+ const updatedSettings = {
100
+ ...inspectionSettings,
101
+ initialCorrelationId: trace.id,
102
+ };
103
+ const dereferencedPath = [];
104
+ const initialTriedNodeScope = await (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, initialIdentifierXorNode.node.id, scopeById);
105
+ if (powerquery_parser_1.ResultUtils.isError(initialTriedNodeScope)) {
106
+ trace.exit({ [trace_1.TraceConstant.Result]: initialTriedNodeScope.kind });
107
+ return initialTriedNodeScope;
108
+ }
109
+ let currentScopeItem = initialTriedNodeScope.value.get(language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node));
110
+ let currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node);
111
+ if (currentScopeItem === undefined) {
112
+ return onIdentifierNotInScope(dereferencedPath, identifierAstXorNode, trace, updatedSettings, currentIdentifierLiteral);
113
+ }
114
+ while (currentScopeItem.kind) {
115
+ const currentXorNode = parser_1.NodeIdMapUtils.assertXor(nodeIdMapCollection, currentScopeItem.nodeId);
116
+ switch (currentScopeItem.kind) {
117
+ case scope_1.ScopeItemKind.LetVariable:
118
+ case scope_1.ScopeItemKind.RecordField:
119
+ case scope_1.ScopeItemKind.SectionMember:
120
+ {
121
+ const potentialDereference = currentScopeItem.value;
122
+ // Most commonly happens when a variable has yet to be defined,
123
+ // for example, a context node for a RecordExpression `[let foo = 1, bar = |`
124
+ if (potentialDereference === undefined) {
125
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
126
+ }
127
+ // It's referencing another identifier
128
+ if (potentialDereference !== undefined &&
129
+ parser_1.XorNodeUtils.isAstChecked(potentialDereference, [
130
+ language_1.Ast.NodeKind.Identifier,
131
+ language_1.Ast.NodeKind.IdentifierExpression,
132
+ ])) {
133
+ currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(potentialDereference.node);
134
+ // If it's a non-recursive dereference
135
+ if (!currentScopeItem.isRecursive) {
136
+ // Generate the scope for the next dereference (if needed)
137
+ // eslint-disable-next-line no-await-in-loop
138
+ const triedNodeScope = await (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, potentialDereference.node.id, scopeById);
139
+ if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
140
+ trace.exit({ [trace_1.TraceConstant.Result]: triedNodeScope.kind });
141
+ return triedNodeScope;
142
+ }
143
+ const nextScopeItem = triedNodeScope.value.get(currentIdentifierLiteral);
144
+ if (nextScopeItem === undefined) {
145
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
146
+ }
147
+ dereferencedPath.push({
148
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeDereference,
149
+ xorNode: currentXorNode,
150
+ identifierLiteral: currentIdentifierLiteral,
151
+ nextScopeItem,
152
+ });
153
+ currentScopeItem = nextScopeItem;
154
+ }
155
+ // Else if it's a recursive scopeItem and we ARE looking for a recursive scopeItem,
156
+ // then we're done.
157
+ else if (currentIdentifierLiteral.startsWith("@")) {
158
+ return onRecursiveIdentifierLiteral(dereferencedPath, currentXorNode, trace, currentIdentifierLiteral);
159
+ }
160
+ // Else it's a recursive scopeItem and we ARE NOT looking for a recursive scopeItem,
161
+ // then look up the ancestry chain for a non-recursive scopeItem of the same name.
162
+ else {
163
+ const ancestoryScopeItem = findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, currentIdentifierLiteral, currentXorNode.node.id);
164
+ if (ancestoryScopeItem === undefined) {
165
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
166
+ }
167
+ currentScopeItem = ancestoryScopeItem;
168
+ }
169
+ }
170
+ else {
171
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
172
+ }
173
+ }
174
+ break;
175
+ case scope_1.ScopeItemKind.Each:
176
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
177
+ case scope_1.ScopeItemKind.Parameter:
178
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
179
+ case scope_1.ScopeItemKind.Undefined:
180
+ dereferencedPath.push({
181
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
182
+ identifierLiteral: currentIdentifierLiteral,
183
+ xorNode: currentXorNode,
184
+ });
185
+ trace.exit();
186
+ return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
187
+ default:
188
+ throw powerquery_parser_1.Assert.isNever(currentScopeItem);
189
+ }
190
+ }
191
+ trace.exit();
192
+ return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
193
+ }
194
+ // Sometimes in the scope of a lower node (e.g. a leaf node) there's a scopeItem that matches the
195
+ // identifier literal we're looking for, but it's marked as recursive.
196
+ // In that case we want to look up the tree to see if there's a non-recursive scopeItem of the same name further up.
197
+ function findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, identifierLiteral, initialNodeId) {
198
+ let currentNodeId = nodeIdMapCollection.parentIdById.get(initialNodeId);
199
+ while (currentNodeId) {
200
+ const scopeItem = scopeById.get(currentNodeId)?.get(identifierLiteral);
201
+ if (scopeItem && !scopeItem.isRecursive) {
202
+ return scopeItem;
203
+ }
204
+ currentNodeId = nodeIdMapCollection.parentIdById.get(currentNodeId);
205
+ }
206
+ return undefined;
207
+ }
208
+ // Validates whether an unknown identifier is an externally defined type (e.g. a built-in function)
209
+ function onIdentifierNotInScope(dereferencePath, xorNode, trace, inspectionSettings, identifierLiteral) {
210
+ const externalType = inspectionSettings.library.externalTypeResolver(__1.ExternalTypeUtils.valueTypeRequest(language_1.IdentifierExpressionUtils.assertNormalizedIdentifierExpression(identifierLiteral)));
211
+ const finalPath = externalType
212
+ ? {
213
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.External,
214
+ xorNode,
215
+ identifierLiteral,
216
+ type: externalType,
217
+ }
218
+ : {
219
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
220
+ xorNode,
221
+ identifierLiteral,
222
+ };
223
+ dereferencePath.push(finalPath);
224
+ trace.exit({ [trace_1.TraceConstant.Result]: finalPath });
225
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
226
+ }
227
+ function onInScopeValue(dereferencePath, xorNode, trace, scopeItem) {
228
+ dereferencePath.push({
229
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeValue,
230
+ xorNode,
231
+ scopeItem,
232
+ });
233
+ trace.exit();
234
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
235
+ }
236
+ function onRecursiveIdentifierLiteral(dereferencePath, xorNode, trace, identifierLiteral) {
237
+ dereferencePath.push({
238
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Recursive,
239
+ xorNode,
240
+ identifierLiteral,
241
+ });
242
+ trace.exit();
243
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
244
+ }
222
245
  //# sourceMappingURL=dereferencedIdentifierUtils.js.map