@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,354 +1,363 @@
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.createParameterType = exports.dereferencedIdentifierType = exports.inspectXor = exports.inspectTypeFromChildAttributeIndex = exports.inspectScopeItem = exports.getOrCreateScopeItemType = exports.getOrCreateScope = exports.assertGetOrCreateNodeScope = exports.allForAnyUnion = 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 trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
19
- const __1 = require("../../..");
20
- const inspectTypeState_1 = require("./inspectTypeState");
21
- const scope_1 = require("../../scope");
22
- const inspectTypeConstant_1 = require("./inspectTypeConstant");
23
- const inspectTypeEachExpression_1 = require("./inspectTypeEachExpression");
24
- const inspectTypeErrorHandlingExpression_1 = require("./inspectTypeErrorHandlingExpression");
25
- const inspectTypeFieldProjection_1 = require("./inspectTypeField/inspectTypeFieldProjection");
26
- const inspectTypeFieldSelector_1 = require("./inspectTypeField/inspectTypeFieldSelector");
27
- const inspectTypeFieldSpecification_1 = require("./inspectTypeFieldSpecification");
28
- const inspectTypeFunctionExpression_1 = require("./inspectTypeFunctionExpression");
29
- const inspectTypeFunctionType_1 = require("./inspectTypeFunctionType");
30
- const inspectTypeIdentifier_1 = require("./inspectTypeIdentifier");
31
- const inspectTypeIdentifierExpression_1 = require("./inspectTypeIdentifierExpression");
32
- const inspectTypeIfExpression_1 = require("./inspectTypeIfExpression");
33
- const inspectTypeInvokeExpression_1 = require("./inspectTypeInvokeExpression");
34
- const inspectTypeList_1 = require("./inspectTypeList");
35
- const inspectTypeListType_1 = require("./inspectTypeListType");
36
- const inspectTypeLiteralExpression_1 = require("./inspectTypeLiteralExpression");
37
- const inspectTypeNullCoalescingExpression_1 = require("./inspectTypeNullCoalescingExpression");
38
- const inspectTypeParameter_1 = require("./inspectTypeParameter");
39
- const inspectTypePrimitiveType_1 = require("./inspectTypePrimitiveType");
40
- const inspectTypeRangeExpression_1 = require("./inspectTypeRangeExpression");
41
- const inspectTypeRecord_1 = require("./inspectTypeRecord");
42
- const inspectTypeRecordType_1 = require("./inspectTypeRecordType");
43
- const inspectTypeRecursivePrimaryExpression_1 = require("./inspectTypeRecursivePrimaryExpression");
44
- const inspectTypeTableType_1 = require("./inspectTypeTableType");
45
- const inspectTypeTBinOpExpression_1 = require("./inspectTypeTBinOpExpression");
46
- const inspectTypeUnaryExpression_1 = require("./inspectTypeUnaryExpression");
47
- const dereferencedIdentifierUtils_1 = require("../../dereferencedIdentifier/dereferencedIdentifierUtils");
48
- // Recursively flattens all AnyUnion.unionedTypePairs into a single array,
49
- // maps each entry into a boolean,
50
- // then calls all(...) on the mapped values.
51
- function allForAnyUnion(anyUnion, predicate) {
52
- return (anyUnion.unionedTypePairs
53
- .map((type) => type.extendedKind === language_1.Type.ExtendedTypeKind.AnyUnion
54
- ? allForAnyUnion(type, predicate)
55
- : predicate(type))
56
- .indexOf(false) === -1);
57
- }
58
- exports.allForAnyUnion = allForAnyUnion;
59
- function assertGetOrCreateNodeScope(state, nodeId, correlationId) {
60
- var _a;
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, assertGetOrCreateNodeScope.name, correlationId);
63
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
64
- const triedGetOrCreateScope = yield getOrCreateScope(state, nodeId, trace.id);
65
- if (powerquery_parser_1.ResultUtils.isError(triedGetOrCreateScope)) {
66
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
67
- throw triedGetOrCreateScope.error;
68
- }
69
- trace.exit();
70
- return powerquery_parser_1.Assert.asDefined(triedGetOrCreateScope.value);
71
- });
72
- }
73
- exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
74
- function getOrCreateScope(state, nodeId, correlationId) {
75
- var _a;
76
- return __awaiter(this, void 0, void 0, function* () {
77
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, getOrCreateScope.name, correlationId);
78
- const updatedState = Object.assign(Object.assign({}, state), { initialCorrelationId: trace.id });
79
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
80
- const nodeScope = updatedState.scopeById.get(nodeId);
81
- if (nodeScope !== undefined) {
82
- trace.exit();
83
- return powerquery_parser_1.ResultUtils.ok(nodeScope);
84
- }
85
- const result = yield (0, scope_1.tryNodeScope)(updatedState, state.nodeIdMapCollection, state.eachScopeById, nodeId, state.scopeById);
86
- trace.exit();
87
- return result;
88
- });
89
- }
90
- exports.getOrCreateScope = getOrCreateScope;
91
- function getOrCreateScopeItemType(state, scopeItem) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScopeItem, getOrCreateScopeItemType.name, state.initialCorrelationId);
94
- const nodeId = scopeItem.nodeId;
95
- const type = state.typeById.get(nodeId);
96
- if (type !== undefined) {
97
- trace.exit({ cacheHit: true });
98
- return type;
99
- }
100
- const scopeType = yield inspectScopeItem(state, scopeItem, trace.id);
101
- trace.exit();
102
- return scopeType;
103
- });
104
- }
105
- exports.getOrCreateScopeItemType = getOrCreateScopeItemType;
106
- function inspectScopeItem(state, scopeItem, correlationId) {
107
- var _a;
108
- return __awaiter(this, void 0, void 0, function* () {
109
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
110
- switch (scopeItem.kind) {
111
- case scope_1.ScopeItemKind.LetVariable:
112
- case scope_1.ScopeItemKind.RecordField:
113
- case scope_1.ScopeItemKind.SectionMember:
114
- return scopeItem.value === undefined
115
- ? language_1.Type.AnyInstance
116
- : yield inspectXor(state, scopeItem.value, correlationId);
117
- case scope_1.ScopeItemKind.Each:
118
- return yield inspectXor(state, scopeItem.eachExpression, correlationId);
119
- case scope_1.ScopeItemKind.Parameter:
120
- return createParameterType(scopeItem);
121
- case scope_1.ScopeItemKind.Undefined:
122
- return language_1.Type.AnyInstance;
123
- default:
124
- throw powerquery_parser_1.Assert.isNever(scopeItem);
125
- }
126
- });
127
- }
128
- exports.inspectScopeItem = inspectScopeItem;
129
- function inspectTypeFromChildAttributeIndex(state, parentXorNode, attributeIndex, correlationId) {
130
- var _a;
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectTypeFromChildAttributeIndex.name, correlationId, __1.TraceUtils.xorNodeDetails(parentXorNode));
133
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
134
- const xorNode = PQP.Parser.NodeIdMapUtils.nthChildXor(state.nodeIdMapCollection, parentXorNode.node.id, attributeIndex);
135
- const result = xorNode !== undefined ? yield inspectXor(state, xorNode, trace.id) : language_1.Type.UnknownInstance;
136
- trace.exit();
137
- return result;
138
- });
139
- }
140
- exports.inspectTypeFromChildAttributeIndex = inspectTypeFromChildAttributeIndex;
141
- function inspectXor(state, xorNode, correlationId) {
142
- var _a;
143
- return __awaiter(this, void 0, void 0, function* () {
144
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectXor.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
145
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
146
- const xorNodeId = xorNode.node.id;
147
- const cached = state.typeById.get(xorNodeId);
148
- if (cached !== undefined) {
149
- trace.exit();
150
- return Promise.resolve(cached);
151
- }
152
- let result;
153
- switch (xorNode.node.kind) {
154
- case language_1.Ast.NodeKind.ArrayWrapper:
155
- case language_1.Ast.NodeKind.FieldSpecificationList:
156
- case language_1.Ast.NodeKind.GeneralizedIdentifier:
157
- case language_1.Ast.NodeKind.GeneralizedIdentifierPairedAnyLiteral:
158
- case language_1.Ast.NodeKind.GeneralizedIdentifierPairedExpression:
159
- case language_1.Ast.NodeKind.IdentifierPairedExpression:
160
- case language_1.Ast.NodeKind.ParameterList:
161
- case language_1.Ast.NodeKind.Section:
162
- trace.exit();
163
- return Promise.resolve(language_1.Type.NotApplicableInstance);
164
- case language_1.Ast.NodeKind.AsType:
165
- case language_1.Ast.NodeKind.AsNullablePrimitiveType:
166
- case language_1.Ast.NodeKind.CatchExpression:
167
- case language_1.Ast.NodeKind.FieldTypeSpecification:
168
- case language_1.Ast.NodeKind.OtherwiseExpression:
169
- case language_1.Ast.NodeKind.ParenthesizedExpression:
170
- case language_1.Ast.NodeKind.TypePrimaryType:
171
- result = yield inspectTypeFromChildAttributeIndex(state, xorNode, 1, trace.id);
172
- break;
173
- case language_1.Ast.NodeKind.ArithmeticExpression:
174
- case language_1.Ast.NodeKind.EqualityExpression:
175
- case language_1.Ast.NodeKind.LogicalExpression:
176
- case language_1.Ast.NodeKind.RelationalExpression:
177
- result = yield (0, inspectTypeTBinOpExpression_1.inspectTypeTBinOpExpression)(state, xorNode, trace.id);
178
- break;
179
- case language_1.Ast.NodeKind.AsExpression:
180
- case language_1.Ast.NodeKind.SectionMember:
181
- result = yield inspectTypeFromChildAttributeIndex(state, xorNode, 2, trace.id);
182
- break;
183
- case language_1.Ast.NodeKind.Csv:
184
- case language_1.Ast.NodeKind.MetadataExpression:
185
- result = yield inspectTypeFromChildAttributeIndex(state, xorNode, 0, trace.id);
186
- break;
187
- case language_1.Ast.NodeKind.ListExpression:
188
- case language_1.Ast.NodeKind.ListLiteral:
189
- result = yield (0, inspectTypeList_1.inspectTypeList)(state, xorNode, trace.id);
190
- break;
191
- case language_1.Ast.NodeKind.NullableType:
192
- case language_1.Ast.NodeKind.NullablePrimitiveType:
193
- result = Object.assign(Object.assign({}, (yield inspectTypeFromChildAttributeIndex(state, xorNode, 1, trace.id))), { isNullable: true });
194
- break;
195
- case language_1.Ast.NodeKind.RecordLiteral:
196
- case language_1.Ast.NodeKind.RecordExpression:
197
- result = yield (0, inspectTypeRecord_1.inspectTypeRecord)(state, xorNode, trace.id);
198
- break;
199
- // TODO: how should error raising be typed?
200
- case language_1.Ast.NodeKind.ErrorRaisingExpression:
201
- result = language_1.Type.AnyInstance;
202
- break;
203
- case language_1.Ast.NodeKind.Constant:
204
- result = (0, inspectTypeConstant_1.inspectTypeConstant)(xorNode);
205
- break;
206
- case language_1.Ast.NodeKind.EachExpression:
207
- result = yield (0, inspectTypeEachExpression_1.inspectTypeEachExpression)(state, xorNode, trace.id);
208
- break;
209
- case language_1.Ast.NodeKind.ErrorHandlingExpression:
210
- result = yield (0, inspectTypeErrorHandlingExpression_1.inspectTypeErrorHandlingExpression)(state, xorNode, trace.id);
211
- break;
212
- case language_1.Ast.NodeKind.FieldProjection:
213
- result = yield (0, inspectTypeFieldProjection_1.inspectTypeFieldProjection)(state, xorNode, trace.id);
214
- break;
215
- case language_1.Ast.NodeKind.FieldSelector:
216
- result = yield (0, inspectTypeFieldSelector_1.inspectTypeFieldSelector)(state, xorNode, trace.id);
217
- break;
218
- case language_1.Ast.NodeKind.FieldSpecification:
219
- result = yield (0, inspectTypeFieldSpecification_1.inspectTypeFieldSpecification)(state, xorNode, trace.id);
220
- break;
221
- case language_1.Ast.NodeKind.FunctionExpression:
222
- result = yield (0, inspectTypeFunctionExpression_1.inspectTypeFunctionExpression)(state, xorNode, trace.id);
223
- break;
224
- case language_1.Ast.NodeKind.FunctionType:
225
- result = yield (0, inspectTypeFunctionType_1.inspectTypeFunctionType)(state, xorNode, trace.id);
226
- break;
227
- case language_1.Ast.NodeKind.Identifier:
228
- result = yield (0, inspectTypeIdentifier_1.inspectTypeIdentifier)(state, xorNode, trace.id);
229
- break;
230
- case language_1.Ast.NodeKind.IdentifierExpression:
231
- result = yield (0, inspectTypeIdentifierExpression_1.inspectTypeIdentifierExpression)(state, xorNode, trace.id);
232
- break;
233
- case language_1.Ast.NodeKind.IfExpression:
234
- result = yield (0, inspectTypeIfExpression_1.inspectTypeIfExpression)(state, xorNode, trace.id);
235
- break;
236
- case language_1.Ast.NodeKind.IsExpression:
237
- result = language_1.Type.LogicalInstance;
238
- break;
239
- case language_1.Ast.NodeKind.InvokeExpression:
240
- result = yield (0, inspectTypeInvokeExpression_1.inspectTypeInvokeExpression)(state, xorNode, trace.id);
241
- break;
242
- case language_1.Ast.NodeKind.IsNullablePrimitiveType:
243
- result = language_1.Type.LogicalInstance;
244
- break;
245
- case language_1.Ast.NodeKind.ItemAccessExpression:
246
- result = language_1.Type.AnyInstance;
247
- break;
248
- case language_1.Ast.NodeKind.LetExpression:
249
- result = yield inspectTypeFromChildAttributeIndex(state, xorNode, 3, trace.id);
250
- break;
251
- case language_1.Ast.NodeKind.ListType:
252
- result = yield (0, inspectTypeListType_1.inspectTypeListType)(state, xorNode, trace.id);
253
- break;
254
- case language_1.Ast.NodeKind.LiteralExpression:
255
- result = (0, inspectTypeLiteralExpression_1.inspectTypeLiteralExpression)(state, xorNode, trace.id);
256
- break;
257
- case language_1.Ast.NodeKind.NotImplementedExpression:
258
- result = language_1.Type.NoneInstance;
259
- break;
260
- case language_1.Ast.NodeKind.NullCoalescingExpression:
261
- result = yield (0, inspectTypeNullCoalescingExpression_1.inspectTypeNullCoalescingExpression)(state, xorNode, trace.id);
262
- break;
263
- case language_1.Ast.NodeKind.Parameter:
264
- result = yield (0, inspectTypeParameter_1.inspectTypeParameter)(state, xorNode, trace.id);
265
- break;
266
- case language_1.Ast.NodeKind.PrimitiveType:
267
- result = (0, inspectTypePrimitiveType_1.inspectTypePrimitiveType)(state, xorNode, trace.id);
268
- break;
269
- case language_1.Ast.NodeKind.RangeExpression:
270
- result = yield (0, inspectTypeRangeExpression_1.inspectTypeRangeExpression)(state, xorNode, trace.id);
271
- break;
272
- case language_1.Ast.NodeKind.RecordType:
273
- result = yield (0, inspectTypeRecordType_1.inspectTypeRecordType)(state, xorNode, trace.id);
274
- break;
275
- case language_1.Ast.NodeKind.RecursivePrimaryExpression:
276
- result = yield (0, inspectTypeRecursivePrimaryExpression_1.inspectTypeRecursivePrimaryExpression)(state, xorNode, trace.id);
277
- break;
278
- case language_1.Ast.NodeKind.TableType:
279
- result = yield (0, inspectTypeTableType_1.inspectTypeTableType)(state, xorNode, trace.id);
280
- break;
281
- case language_1.Ast.NodeKind.UnaryExpression:
282
- result = yield (0, inspectTypeUnaryExpression_1.inspectTypeUnaryExpression)(state, xorNode, trace.id);
283
- break;
284
- default:
285
- throw powerquery_parser_1.Assert.isNever(xorNode.node);
286
- }
287
- state.typeById.set(xorNodeId, result);
288
- trace.exit({ resultKind: result.kind, extendedKind: result.extendedKind });
289
- return result;
290
- });
291
- }
292
- exports.inspectXor = inspectXor;
293
- function dereferencedIdentifierType(state, xorNode, correlationId) {
294
- var _a, _b, _c;
295
- return __awaiter(this, void 0, void 0, function* () {
296
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, dereferencedIdentifierType.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
297
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
298
- const triedDereferenceIdentifierPath = yield (0, dereferencedIdentifierUtils_1.tryBuildDereferencedIdentifierPath)(inspectTypeState_1.InspectTypeStateUtils.toInspectionSettings(state, trace), state.nodeIdMapCollection, xorNode, state.scopeById);
299
- if (powerquery_parser_1.ResultUtils.isError(triedDereferenceIdentifierPath)) {
300
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
301
- throw triedDereferenceIdentifierPath.error;
302
- }
303
- const path = triedDereferenceIdentifierPath.value;
304
- const lastDereferencedIdentifier = powerquery_parser_1.Assert.asDefined(path[path.length - 1]);
305
- let result;
306
- switch (lastDereferencedIdentifier.kind) {
307
- case __1.Inspection.DereferencedIdentifierKind.External:
308
- result = lastDereferencedIdentifier.type;
309
- break;
310
- case __1.Inspection.DereferencedIdentifierKind.InScopeDereference:
311
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
312
- throw new PQP.CommonError.InvariantError(`expected last dereferenced identifier to be anything other than InScopeDereference`);
313
- case __1.Inspection.DereferencedIdentifierKind.InScopeValue: {
314
- switch (lastDereferencedIdentifier.scopeItem.kind) {
315
- case scope_1.ScopeItemKind.LetVariable:
316
- case scope_1.ScopeItemKind.Parameter:
317
- case scope_1.ScopeItemKind.RecordField:
318
- case scope_1.ScopeItemKind.SectionMember:
319
- result = yield getOrCreateScopeItemType(state, lastDereferencedIdentifier.scopeItem);
320
- break;
321
- case scope_1.ScopeItemKind.Each:
322
- result = (_c = (_b = state.eachScopeById) === null || _b === void 0 ? void 0 : _b.get(lastDereferencedIdentifier.scopeItem.nodeId)) !== null && _c !== void 0 ? _c : language_1.Type.AnyInstance;
323
- break;
324
- case scope_1.ScopeItemKind.Undefined:
325
- result = language_1.Type.AnyInstance;
326
- break;
327
- default:
328
- throw powerquery_parser_1.Assert.isNever(lastDereferencedIdentifier.scopeItem);
329
- }
330
- break;
331
- }
332
- case __1.Inspection.DereferencedIdentifierKind.Recursive:
333
- result = language_1.Type.AnyInstance;
334
- break;
335
- case __1.Inspection.DereferencedIdentifierKind.Undefined:
336
- result = language_1.Type.UnknownInstance;
337
- break;
338
- default:
339
- throw powerquery_parser_1.Assert.isNever(lastDereferencedIdentifier);
340
- }
341
- trace.exit({ [trace_1.TraceConstant.Result]: __1.TraceUtils.typeDetails(result) });
342
- return result;
343
- });
344
- }
345
- exports.dereferencedIdentifierType = dereferencedIdentifierType;
346
- function createParameterType(parameter) {
347
- return {
348
- kind: parameter.type ? language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(parameter.type) : language_1.Type.TypeKind.Any,
349
- extendedKind: undefined,
350
- isNullable: parameter.isNullable || parameter.isOptional,
351
- };
352
- }
353
- exports.createParameterType = createParameterType;
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.allForAnyUnion = allForAnyUnion;
39
+ exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
40
+ exports.getOrCreateScope = getOrCreateScope;
41
+ exports.getOrCreateScopeItemType = getOrCreateScopeItemType;
42
+ exports.inspectScopeItem = inspectScopeItem;
43
+ exports.inspectTypeFromChildAttributeIndex = inspectTypeFromChildAttributeIndex;
44
+ exports.inspectXor = inspectXor;
45
+ exports.dereferencedIdentifierType = dereferencedIdentifierType;
46
+ exports.createParameterType = createParameterType;
47
+ const PQP = __importStar(require("@microsoft/powerquery-parser"));
48
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
49
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
50
+ const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
51
+ const __1 = require("../../..");
52
+ const inspectTypeState_1 = require("./inspectTypeState");
53
+ const scope_1 = require("../../scope");
54
+ const inspectTypeConstant_1 = require("./inspectTypeConstant");
55
+ const inspectTypeEachExpression_1 = require("./inspectTypeEachExpression");
56
+ const inspectTypeErrorHandlingExpression_1 = require("./inspectTypeErrorHandlingExpression");
57
+ const inspectTypeFieldProjection_1 = require("./inspectTypeField/inspectTypeFieldProjection");
58
+ const inspectTypeFieldSelector_1 = require("./inspectTypeField/inspectTypeFieldSelector");
59
+ const inspectTypeFieldSpecification_1 = require("./inspectTypeFieldSpecification");
60
+ const inspectTypeFunctionExpression_1 = require("./inspectTypeFunctionExpression");
61
+ const inspectTypeFunctionType_1 = require("./inspectTypeFunctionType");
62
+ const inspectTypeIdentifier_1 = require("./inspectTypeIdentifier");
63
+ const inspectTypeIdentifierExpression_1 = require("./inspectTypeIdentifierExpression");
64
+ const inspectTypeIfExpression_1 = require("./inspectTypeIfExpression");
65
+ const inspectTypeInvokeExpression_1 = require("./inspectTypeInvokeExpression");
66
+ const inspectTypeList_1 = require("./inspectTypeList");
67
+ const inspectTypeListType_1 = require("./inspectTypeListType");
68
+ const inspectTypeLiteralExpression_1 = require("./inspectTypeLiteralExpression");
69
+ const inspectTypeNullCoalescingExpression_1 = require("./inspectTypeNullCoalescingExpression");
70
+ const inspectTypeParameter_1 = require("./inspectTypeParameter");
71
+ const inspectTypePrimitiveType_1 = require("./inspectTypePrimitiveType");
72
+ const inspectTypeRangeExpression_1 = require("./inspectTypeRangeExpression");
73
+ const inspectTypeRecord_1 = require("./inspectTypeRecord");
74
+ const inspectTypeRecordType_1 = require("./inspectTypeRecordType");
75
+ const inspectTypeRecursivePrimaryExpression_1 = require("./inspectTypeRecursivePrimaryExpression");
76
+ const inspectTypeTableType_1 = require("./inspectTypeTableType");
77
+ const inspectTypeTBinOpExpression_1 = require("./inspectTypeTBinOpExpression");
78
+ const inspectTypeUnaryExpression_1 = require("./inspectTypeUnaryExpression");
79
+ const dereferencedIdentifierUtils_1 = require("../../dereferencedIdentifier/dereferencedIdentifierUtils");
80
+ // Recursively flattens all AnyUnion.unionedTypePairs into a single array,
81
+ // maps each entry into a boolean,
82
+ // then calls all(...) on the mapped values.
83
+ function allForAnyUnion(anyUnion, predicate) {
84
+ return (anyUnion.unionedTypePairs
85
+ .map((type) => type.extendedKind === language_1.Type.ExtendedTypeKind.AnyUnion
86
+ ? allForAnyUnion(type, predicate)
87
+ : predicate(type))
88
+ .indexOf(false) === -1);
89
+ }
90
+ async function assertGetOrCreateNodeScope(state, nodeId, correlationId) {
91
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, assertGetOrCreateNodeScope.name, correlationId);
92
+ state.cancellationToken?.throwIfCancelled();
93
+ const triedGetOrCreateScope = await getOrCreateScope(state, nodeId, trace.id);
94
+ if (powerquery_parser_1.ResultUtils.isError(triedGetOrCreateScope)) {
95
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
96
+ throw triedGetOrCreateScope.error;
97
+ }
98
+ trace.exit();
99
+ return powerquery_parser_1.Assert.asDefined(triedGetOrCreateScope.value);
100
+ }
101
+ async function getOrCreateScope(state, nodeId, correlationId) {
102
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, getOrCreateScope.name, correlationId);
103
+ const updatedState = {
104
+ ...state,
105
+ initialCorrelationId: trace.id,
106
+ };
107
+ state.cancellationToken?.throwIfCancelled();
108
+ const nodeScope = updatedState.scopeById.get(nodeId);
109
+ if (nodeScope !== undefined) {
110
+ trace.exit();
111
+ return powerquery_parser_1.ResultUtils.ok(nodeScope);
112
+ }
113
+ const result = await (0, scope_1.tryNodeScope)(updatedState, state.nodeIdMapCollection, state.eachScopeById, nodeId, state.scopeById);
114
+ trace.exit();
115
+ return result;
116
+ }
117
+ async function getOrCreateScopeItemType(state, scopeItem) {
118
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScopeItem, getOrCreateScopeItemType.name, state.initialCorrelationId);
119
+ const nodeId = scopeItem.nodeId;
120
+ const type = state.typeById.get(nodeId);
121
+ if (type !== undefined) {
122
+ trace.exit({ cacheHit: true });
123
+ return type;
124
+ }
125
+ const scopeType = await inspectScopeItem(state, scopeItem, trace.id);
126
+ trace.exit();
127
+ return scopeType;
128
+ }
129
+ async function inspectScopeItem(state, scopeItem, correlationId) {
130
+ state.cancellationToken?.throwIfCancelled();
131
+ switch (scopeItem.kind) {
132
+ case scope_1.ScopeItemKind.LetVariable:
133
+ case scope_1.ScopeItemKind.RecordField:
134
+ case scope_1.ScopeItemKind.SectionMember:
135
+ return scopeItem.value === undefined
136
+ ? language_1.Type.AnyInstance
137
+ : await inspectXor(state, scopeItem.value, correlationId);
138
+ case scope_1.ScopeItemKind.Each:
139
+ return await inspectXor(state, scopeItem.eachExpression, correlationId);
140
+ case scope_1.ScopeItemKind.Parameter:
141
+ return createParameterType(scopeItem);
142
+ case scope_1.ScopeItemKind.Undefined:
143
+ return language_1.Type.AnyInstance;
144
+ default:
145
+ throw powerquery_parser_1.Assert.isNever(scopeItem);
146
+ }
147
+ }
148
+ async function inspectTypeFromChildAttributeIndex(state, parentXorNode, attributeIndex, correlationId) {
149
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectTypeFromChildAttributeIndex.name, correlationId, __1.TraceUtils.xorNodeDetails(parentXorNode));
150
+ state.cancellationToken?.throwIfCancelled();
151
+ const xorNode = PQP.Parser.NodeIdMapUtils.nthChildXor(state.nodeIdMapCollection, parentXorNode.node.id, attributeIndex);
152
+ const result = xorNode !== undefined ? await inspectXor(state, xorNode, trace.id) : language_1.Type.UnknownInstance;
153
+ trace.exit();
154
+ return result;
155
+ }
156
+ async function inspectXor(state, xorNode, correlationId) {
157
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectXor.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
158
+ state.cancellationToken?.throwIfCancelled();
159
+ const xorNodeId = xorNode.node.id;
160
+ const cached = state.typeById.get(xorNodeId);
161
+ if (cached !== undefined) {
162
+ trace.exit();
163
+ return Promise.resolve(cached);
164
+ }
165
+ let result;
166
+ switch (xorNode.node.kind) {
167
+ case language_1.Ast.NodeKind.ArrayWrapper:
168
+ case language_1.Ast.NodeKind.FieldSpecificationList:
169
+ case language_1.Ast.NodeKind.GeneralizedIdentifier:
170
+ case language_1.Ast.NodeKind.GeneralizedIdentifierPairedAnyLiteral:
171
+ case language_1.Ast.NodeKind.GeneralizedIdentifierPairedExpression:
172
+ case language_1.Ast.NodeKind.IdentifierPairedExpression:
173
+ case language_1.Ast.NodeKind.ParameterList:
174
+ case language_1.Ast.NodeKind.Section:
175
+ trace.exit();
176
+ return Promise.resolve(language_1.Type.NotApplicableInstance);
177
+ case language_1.Ast.NodeKind.AsType:
178
+ case language_1.Ast.NodeKind.AsNullablePrimitiveType:
179
+ case language_1.Ast.NodeKind.CatchExpression:
180
+ case language_1.Ast.NodeKind.FieldTypeSpecification:
181
+ case language_1.Ast.NodeKind.OtherwiseExpression:
182
+ case language_1.Ast.NodeKind.ParenthesizedExpression:
183
+ case language_1.Ast.NodeKind.TypePrimaryType:
184
+ result = await inspectTypeFromChildAttributeIndex(state, xorNode, 1, trace.id);
185
+ break;
186
+ case language_1.Ast.NodeKind.ArithmeticExpression:
187
+ case language_1.Ast.NodeKind.EqualityExpression:
188
+ case language_1.Ast.NodeKind.LogicalExpression:
189
+ case language_1.Ast.NodeKind.RelationalExpression:
190
+ result = await (0, inspectTypeTBinOpExpression_1.inspectTypeTBinOpExpression)(state, xorNode, trace.id);
191
+ break;
192
+ case language_1.Ast.NodeKind.AsExpression:
193
+ case language_1.Ast.NodeKind.SectionMember:
194
+ result = await inspectTypeFromChildAttributeIndex(state, xorNode, 2, trace.id);
195
+ break;
196
+ case language_1.Ast.NodeKind.Csv:
197
+ case language_1.Ast.NodeKind.MetadataExpression:
198
+ result = await inspectTypeFromChildAttributeIndex(state, xorNode, 0, trace.id);
199
+ break;
200
+ case language_1.Ast.NodeKind.ListExpression:
201
+ case language_1.Ast.NodeKind.ListLiteral:
202
+ result = await (0, inspectTypeList_1.inspectTypeList)(state, xorNode, trace.id);
203
+ break;
204
+ case language_1.Ast.NodeKind.NullableType:
205
+ case language_1.Ast.NodeKind.NullablePrimitiveType:
206
+ result = {
207
+ ...(await inspectTypeFromChildAttributeIndex(state, xorNode, 1, trace.id)),
208
+ isNullable: true,
209
+ };
210
+ break;
211
+ case language_1.Ast.NodeKind.RecordLiteral:
212
+ case language_1.Ast.NodeKind.RecordExpression:
213
+ result = await (0, inspectTypeRecord_1.inspectTypeRecord)(state, xorNode, trace.id);
214
+ break;
215
+ // TODO: how should error raising be typed?
216
+ case language_1.Ast.NodeKind.ErrorRaisingExpression:
217
+ result = language_1.Type.AnyInstance;
218
+ break;
219
+ case language_1.Ast.NodeKind.Constant:
220
+ result = (0, inspectTypeConstant_1.inspectTypeConstant)(xorNode);
221
+ break;
222
+ case language_1.Ast.NodeKind.EachExpression:
223
+ result = await (0, inspectTypeEachExpression_1.inspectTypeEachExpression)(state, xorNode, trace.id);
224
+ break;
225
+ case language_1.Ast.NodeKind.ErrorHandlingExpression:
226
+ result = await (0, inspectTypeErrorHandlingExpression_1.inspectTypeErrorHandlingExpression)(state, xorNode, trace.id);
227
+ break;
228
+ case language_1.Ast.NodeKind.FieldProjection:
229
+ result = await (0, inspectTypeFieldProjection_1.inspectTypeFieldProjection)(state, xorNode, trace.id);
230
+ break;
231
+ case language_1.Ast.NodeKind.FieldSelector:
232
+ result = await (0, inspectTypeFieldSelector_1.inspectTypeFieldSelector)(state, xorNode, trace.id);
233
+ break;
234
+ case language_1.Ast.NodeKind.FieldSpecification:
235
+ result = await (0, inspectTypeFieldSpecification_1.inspectTypeFieldSpecification)(state, xorNode, trace.id);
236
+ break;
237
+ case language_1.Ast.NodeKind.FunctionExpression:
238
+ result = await (0, inspectTypeFunctionExpression_1.inspectTypeFunctionExpression)(state, xorNode, trace.id);
239
+ break;
240
+ case language_1.Ast.NodeKind.FunctionType:
241
+ result = await (0, inspectTypeFunctionType_1.inspectTypeFunctionType)(state, xorNode, trace.id);
242
+ break;
243
+ case language_1.Ast.NodeKind.Identifier:
244
+ result = await (0, inspectTypeIdentifier_1.inspectTypeIdentifier)(state, xorNode, trace.id);
245
+ break;
246
+ case language_1.Ast.NodeKind.IdentifierExpression:
247
+ result = await (0, inspectTypeIdentifierExpression_1.inspectTypeIdentifierExpression)(state, xorNode, trace.id);
248
+ break;
249
+ case language_1.Ast.NodeKind.IfExpression:
250
+ result = await (0, inspectTypeIfExpression_1.inspectTypeIfExpression)(state, xorNode, trace.id);
251
+ break;
252
+ case language_1.Ast.NodeKind.IsExpression:
253
+ result = language_1.Type.LogicalInstance;
254
+ break;
255
+ case language_1.Ast.NodeKind.InvokeExpression:
256
+ result = await (0, inspectTypeInvokeExpression_1.inspectTypeInvokeExpression)(state, xorNode, trace.id);
257
+ break;
258
+ case language_1.Ast.NodeKind.IsNullablePrimitiveType:
259
+ result = language_1.Type.LogicalInstance;
260
+ break;
261
+ case language_1.Ast.NodeKind.ItemAccessExpression:
262
+ result = language_1.Type.AnyInstance;
263
+ break;
264
+ case language_1.Ast.NodeKind.LetExpression:
265
+ result = await inspectTypeFromChildAttributeIndex(state, xorNode, 3, trace.id);
266
+ break;
267
+ case language_1.Ast.NodeKind.ListType:
268
+ result = await (0, inspectTypeListType_1.inspectTypeListType)(state, xorNode, trace.id);
269
+ break;
270
+ case language_1.Ast.NodeKind.LiteralExpression:
271
+ result = (0, inspectTypeLiteralExpression_1.inspectTypeLiteralExpression)(state, xorNode, trace.id);
272
+ break;
273
+ case language_1.Ast.NodeKind.NotImplementedExpression:
274
+ result = language_1.Type.NoneInstance;
275
+ break;
276
+ case language_1.Ast.NodeKind.NullCoalescingExpression:
277
+ result = await (0, inspectTypeNullCoalescingExpression_1.inspectTypeNullCoalescingExpression)(state, xorNode, trace.id);
278
+ break;
279
+ case language_1.Ast.NodeKind.Parameter:
280
+ result = await (0, inspectTypeParameter_1.inspectTypeParameter)(state, xorNode, trace.id);
281
+ break;
282
+ case language_1.Ast.NodeKind.PrimitiveType:
283
+ result = (0, inspectTypePrimitiveType_1.inspectTypePrimitiveType)(state, xorNode, trace.id);
284
+ break;
285
+ case language_1.Ast.NodeKind.RangeExpression:
286
+ result = await (0, inspectTypeRangeExpression_1.inspectTypeRangeExpression)(state, xorNode, trace.id);
287
+ break;
288
+ case language_1.Ast.NodeKind.RecordType:
289
+ result = await (0, inspectTypeRecordType_1.inspectTypeRecordType)(state, xorNode, trace.id);
290
+ break;
291
+ case language_1.Ast.NodeKind.RecursivePrimaryExpression:
292
+ result = await (0, inspectTypeRecursivePrimaryExpression_1.inspectTypeRecursivePrimaryExpression)(state, xorNode, trace.id);
293
+ break;
294
+ case language_1.Ast.NodeKind.TableType:
295
+ result = await (0, inspectTypeTableType_1.inspectTypeTableType)(state, xorNode, trace.id);
296
+ break;
297
+ case language_1.Ast.NodeKind.UnaryExpression:
298
+ result = await (0, inspectTypeUnaryExpression_1.inspectTypeUnaryExpression)(state, xorNode, trace.id);
299
+ break;
300
+ default:
301
+ throw powerquery_parser_1.Assert.isNever(xorNode.node);
302
+ }
303
+ state.typeById.set(xorNodeId, result);
304
+ trace.exit({ resultKind: result.kind, extendedKind: result.extendedKind });
305
+ return result;
306
+ }
307
+ async function dereferencedIdentifierType(state, xorNode, correlationId) {
308
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, dereferencedIdentifierType.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
309
+ state.cancellationToken?.throwIfCancelled();
310
+ const triedDereferenceIdentifierPath = await (0, dereferencedIdentifierUtils_1.tryBuildDereferencedIdentifierPath)(inspectTypeState_1.InspectTypeStateUtils.toInspectionSettings(state, trace), state.nodeIdMapCollection, xorNode, state.scopeById);
311
+ if (powerquery_parser_1.ResultUtils.isError(triedDereferenceIdentifierPath)) {
312
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
313
+ throw triedDereferenceIdentifierPath.error;
314
+ }
315
+ const path = triedDereferenceIdentifierPath.value;
316
+ const lastDereferencedIdentifier = powerquery_parser_1.Assert.asDefined(path[path.length - 1]);
317
+ let result;
318
+ switch (lastDereferencedIdentifier.kind) {
319
+ case __1.Inspection.DereferencedIdentifierKind.External:
320
+ result = lastDereferencedIdentifier.type;
321
+ break;
322
+ case __1.Inspection.DereferencedIdentifierKind.InScopeDereference:
323
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
324
+ throw new PQP.CommonError.InvariantError(`expected last dereferenced identifier to be anything other than InScopeDereference`);
325
+ case __1.Inspection.DereferencedIdentifierKind.InScopeValue: {
326
+ switch (lastDereferencedIdentifier.scopeItem.kind) {
327
+ case scope_1.ScopeItemKind.LetVariable:
328
+ case scope_1.ScopeItemKind.Parameter:
329
+ case scope_1.ScopeItemKind.RecordField:
330
+ case scope_1.ScopeItemKind.SectionMember:
331
+ result = await getOrCreateScopeItemType(state, lastDereferencedIdentifier.scopeItem);
332
+ break;
333
+ case scope_1.ScopeItemKind.Each:
334
+ result = state.eachScopeById?.get(lastDereferencedIdentifier.scopeItem.nodeId) ?? language_1.Type.AnyInstance;
335
+ break;
336
+ case scope_1.ScopeItemKind.Undefined:
337
+ result = language_1.Type.AnyInstance;
338
+ break;
339
+ default:
340
+ throw powerquery_parser_1.Assert.isNever(lastDereferencedIdentifier.scopeItem);
341
+ }
342
+ break;
343
+ }
344
+ case __1.Inspection.DereferencedIdentifierKind.Recursive:
345
+ result = language_1.Type.AnyInstance;
346
+ break;
347
+ case __1.Inspection.DereferencedIdentifierKind.Undefined:
348
+ result = language_1.Type.UnknownInstance;
349
+ break;
350
+ default:
351
+ throw powerquery_parser_1.Assert.isNever(lastDereferencedIdentifier);
352
+ }
353
+ trace.exit({ [trace_1.TraceConstant.Result]: __1.TraceUtils.typeDetails(result) });
354
+ return result;
355
+ }
356
+ function createParameterType(parameter) {
357
+ return {
358
+ kind: parameter.type ? language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(parameter.type) : language_1.Type.TypeKind.Any,
359
+ extendedKind: undefined,
360
+ isNullable: parameter.isNullable || parameter.isOptional,
361
+ };
362
+ }
354
363
  //# sourceMappingURL=common.js.map