@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,293 +1,327 @@
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.partialLookupKey = exports.lookupKey = exports.PartialLookup = exports.Lookup = exports.inspectTypeTBinOpExpression = 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 __1 = require("../../..");
21
- const common_1 = require("./common");
22
- function inspectTypeTBinOpExpression(state, xorNode, correlationId) {
23
- var _a;
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectTypeTBinOpExpression.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
26
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
27
- powerquery_parser_1.Assert.isTrue(language_1.AstUtils.isTBinOpExpressionKind(xorNode.node.kind), `xorNode isn't a TBinOpExpression`, {
28
- nodeId: xorNode.node.id,
29
- nodeKind: xorNode.node.kind,
30
- });
31
- const parentId = xorNode.node.id;
32
- const children = parser_1.NodeIdMapIterator.assertIterChildrenXor(state.nodeIdMapCollection, parentId);
33
- const left = children[0];
34
- const operatorKind = children[1] === undefined || parser_1.XorNodeUtils.isContext(children[1])
35
- ? undefined
36
- : children[1].node.constantKind;
37
- const right = children[2];
38
- let result;
39
- // ''
40
- if (left === undefined) {
41
- result = language_1.Type.UnknownInstance;
42
- }
43
- // '1'
44
- else if (operatorKind === undefined) {
45
- result = yield (0, common_1.inspectXor)(state, left, trace.id);
46
- }
47
- // '1 +'
48
- else if (right === undefined || parser_1.XorNodeUtils.isContext(right)) {
49
- const leftType = yield (0, common_1.inspectXor)(state, left, trace.id);
50
- const key = partialLookupKey(leftType.kind, operatorKind);
51
- const allowedTypeKinds = exports.PartialLookup.get(key);
52
- if (allowedTypeKinds === undefined) {
53
- result = language_1.Type.NoneInstance;
54
- }
55
- else if (allowedTypeKinds.size === 1) {
56
- result = language_1.TypeUtils.primitiveType(leftType.isNullable, allowedTypeKinds.values().next().value);
57
- }
58
- else {
59
- const unionedTypePairs = [];
60
- for (const kind of allowedTypeKinds.values()) {
61
- unionedTypePairs.push({
62
- kind,
63
- extendedKind: undefined,
64
- isNullable: true,
65
- });
66
- }
67
- result = language_1.TypeUtils.anyUnion(unionedTypePairs, state.traceManager, trace.id);
68
- }
69
- }
70
- // '1 + 1'
71
- else {
72
- const leftType = yield (0, common_1.inspectXor)(state, left, trace.id);
73
- const rightType = yield (0, common_1.inspectXor)(state, right, trace.id);
74
- const key = lookupKey(leftType.kind, operatorKind, rightType.kind);
75
- const resultTypeKind = exports.Lookup.get(key);
76
- if (resultTypeKind === undefined) {
77
- result = language_1.Type.NoneInstance;
78
- }
79
- else if (operatorKind === language_1.Constant.ArithmeticOperator.And &&
80
- (resultTypeKind === language_1.Type.TypeKind.Record || resultTypeKind === language_1.Type.TypeKind.Table)) {
81
- result = inspectRecordOrTableUnion(leftType, rightType);
82
- }
83
- else {
84
- result = language_1.TypeUtils.primitiveType(leftType.isNullable || rightType.isNullable, resultTypeKind);
85
- }
86
- }
87
- trace.exit({ [trace_1.TraceConstant.Result]: __1.TraceUtils.typeDetails(result) });
88
- return result;
89
- });
90
- }
91
- exports.inspectTypeTBinOpExpression = inspectTypeTBinOpExpression;
92
- function inspectRecordOrTableUnion(leftType, rightType) {
93
- if (leftType.kind !== rightType.kind) {
94
- const details = {
95
- leftTypeKind: leftType.kind,
96
- rightTypeKind: rightType.kind,
97
- };
98
- throw new PQP.CommonError.InvariantError(`leftType.kind !== rightType.kind`, details);
99
- }
100
- // '[] & []' or '#table() & #table()'
101
- else if (leftType.extendedKind === undefined && rightType.extendedKind === undefined) {
102
- return language_1.TypeUtils.primitiveType(leftType.isNullable || rightType.isNullable, leftType.kind);
103
- }
104
- // '[key=value] & []' or '#table(...) & #table()`
105
- // '[] & [key=value]' or `#table() & #table(...)`
106
- else if ((leftType.extendedKind !== undefined && rightType.extendedKind === undefined) ||
107
- (leftType.extendedKind === undefined && rightType.extendedKind !== undefined)) {
108
- // The 'rightType as (...)' isn't needed, except TypeScript's checker isn't smart enough to know it.
109
- const extendedKind = leftType.extendedKind !== undefined ? leftType : rightType;
110
- return Object.assign(Object.assign({}, extendedKind), { isOpen: true });
111
- }
112
- // '[foo=value] & [bar=value] or #table(...) & #table(...)'
113
- else if ((leftType === null || leftType === void 0 ? void 0 : leftType.extendedKind) === (rightType === null || rightType === void 0 ? void 0 : rightType.extendedKind)) {
114
- // The cast should be safe since the first if statement tests their the same kind,
115
- // and the above checks if they're the same extended kind.
116
- if (language_1.TypeUtils.isRecord(leftType)) {
117
- return unionRecordFields([leftType, rightType]);
118
- }
119
- else {
120
- return unionTableFields([leftType, rightType]);
121
- }
122
- }
123
- else {
124
- throw new powerquery_parser_1.CommonError.InvariantError(`this should never be reached`);
125
- }
126
- }
127
- function unionRecordFields([leftType, rightType]) {
128
- const combinedFields = new Map(leftType.fields);
129
- for (const [key, value] of rightType.fields.entries()) {
130
- combinedFields.set(key, value);
131
- }
132
- return Object.assign(Object.assign({}, leftType), { fields: combinedFields, isNullable: leftType.isNullable && rightType.isNullable, isOpen: leftType.isOpen || rightType.isOpen });
133
- }
134
- function unionTableFields([leftType, rightType]) {
135
- const combinedFields = new PQP.OrderedMap([...leftType.fields]);
136
- for (const [key, value] of rightType.fields.entries()) {
137
- combinedFields.set(key, value);
138
- }
139
- return Object.assign(Object.assign({}, leftType), { fields: combinedFields, isNullable: leftType.isNullable && rightType.isNullable, isOpen: leftType.isOpen || rightType.isOpen });
140
- }
141
- // Keys: <first operand> <operator> <second operand>
142
- // Values: the resulting type of the binary operation expression.
143
- // Eg. '1 > 3' -> Type.TypeKind.Number
144
- exports.Lookup = new Map([
145
- ...lookupsForNullEquality(),
146
- ...lookupsForRelational(language_1.Type.TypeKind.Null),
147
- ...lookupsForEquality(language_1.Type.TypeKind.Null),
148
- ...lookupsForRelational(language_1.Type.TypeKind.Logical),
149
- ...lookupsForEquality(language_1.Type.TypeKind.Logical),
150
- ...lookupsForLogical(language_1.Type.TypeKind.Logical),
151
- ...lookupsForRelational(language_1.Type.TypeKind.Number),
152
- ...lookupsForEquality(language_1.Type.TypeKind.Number),
153
- ...lookupsForArithmetic(language_1.Type.TypeKind.Number),
154
- ...lookupsForRelational(language_1.Type.TypeKind.Time),
155
- ...lookupsForEquality(language_1.Type.TypeKind.Time),
156
- ...lookupsForClockKind(language_1.Type.TypeKind.Time),
157
- [lookupKey(language_1.Type.TypeKind.Date, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Time), language_1.Type.TypeKind.DateTime],
158
- ...lookupsForRelational(language_1.Type.TypeKind.Date),
159
- ...lookupsForEquality(language_1.Type.TypeKind.Date),
160
- ...lookupsForClockKind(language_1.Type.TypeKind.Date),
161
- [lookupKey(language_1.Type.TypeKind.Date, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Time), language_1.Type.TypeKind.DateTime],
162
- ...lookupsForRelational(language_1.Type.TypeKind.DateTime),
163
- ...lookupsForEquality(language_1.Type.TypeKind.DateTime),
164
- ...lookupsForClockKind(language_1.Type.TypeKind.DateTime),
165
- ...lookupsForRelational(language_1.Type.TypeKind.DateTimeZone),
166
- ...lookupsForEquality(language_1.Type.TypeKind.DateTimeZone),
167
- ...lookupsForClockKind(language_1.Type.TypeKind.DateTimeZone),
168
- ...lookupsForRelational(language_1.Type.TypeKind.Duration),
169
- ...lookupsForEquality(language_1.Type.TypeKind.Duration),
170
- [
171
- lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Addition, language_1.Type.TypeKind.Duration),
172
- language_1.Type.TypeKind.Duration,
173
- ],
174
- [
175
- lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Subtraction, language_1.Type.TypeKind.Duration),
176
- language_1.Type.TypeKind.Duration,
177
- ],
178
- [
179
- lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Multiplication, language_1.Type.TypeKind.Number),
180
- language_1.Type.TypeKind.Duration,
181
- ],
182
- [
183
- lookupKey(language_1.Type.TypeKind.Number, language_1.Constant.ArithmeticOperator.Multiplication, language_1.Type.TypeKind.Duration),
184
- language_1.Type.TypeKind.Duration,
185
- ],
186
- [
187
- lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Division, language_1.Type.TypeKind.Number),
188
- language_1.Type.TypeKind.Duration,
189
- ],
190
- ...lookupsForRelational(language_1.Type.TypeKind.Text),
191
- ...lookupsForEquality(language_1.Type.TypeKind.Text),
192
- [lookupKey(language_1.Type.TypeKind.Text, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Text), language_1.Type.TypeKind.Text],
193
- ...lookupsForRelational(language_1.Type.TypeKind.Binary),
194
- ...lookupsForEquality(language_1.Type.TypeKind.Binary),
195
- ...lookupsForEquality(language_1.Type.TypeKind.List),
196
- [lookupKey(language_1.Type.TypeKind.List, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.List), language_1.Type.TypeKind.List],
197
- ...lookupsForEquality(language_1.Type.TypeKind.Record),
198
- [lookupKey(language_1.Type.TypeKind.Record, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Record), language_1.Type.TypeKind.Record],
199
- ...lookupsForEquality(language_1.Type.TypeKind.Table),
200
- [lookupKey(language_1.Type.TypeKind.Table, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Table), language_1.Type.TypeKind.Table],
201
- ]);
202
- // Keys: <first operand> <operator>
203
- // Values: a set of types that are allowed for <second operand>
204
- // Eg. '1 + ' ->
205
- exports.PartialLookup = new Map(
206
- // Grab the keys
207
- [...exports.Lookup.keys()]
208
- .reduce((binaryExpressionPartialLookup, key, _currentIndex, _array) => {
209
- const lastDeliminatorIndex = key.lastIndexOf(",");
210
- // Grab '<first operand> , <operator>'.
211
- const partialKey = key.slice(0, lastDeliminatorIndex);
212
- // Grab '<second operand>'.
213
- const potentialNewValue = key.slice(lastDeliminatorIndex + 1);
214
- // Add the potentialNewValue if it's a new Type.
215
- const values = binaryExpressionPartialLookup.get(partialKey);
216
- // First occurance of '<first operand> , <operator>'
217
- if (values === undefined) {
218
- binaryExpressionPartialLookup.set(partialKey, new Set([potentialNewValue]));
219
- }
220
- else {
221
- values.add(potentialNewValue);
222
- }
223
- return binaryExpressionPartialLookup;
224
- }, new Map())
225
- .entries());
226
- function lookupKey(leftTypeKind, operatorKind, rightTypeKind) {
227
- return `${leftTypeKind},${operatorKind},${rightTypeKind}`;
228
- }
229
- exports.lookupKey = lookupKey;
230
- function partialLookupKey(leftTypeKind, operatorKind) {
231
- return `${leftTypeKind},${operatorKind}`;
232
- }
233
- exports.partialLookupKey = partialLookupKey;
234
- function lookupsForRelational(typeKind) {
235
- return [
236
- [lookupKey(typeKind, language_1.Constant.RelationalOperator.GreaterThan, typeKind), language_1.Type.TypeKind.Logical],
237
- [lookupKey(typeKind, language_1.Constant.RelationalOperator.GreaterThanEqualTo, typeKind), language_1.Type.TypeKind.Logical],
238
- [lookupKey(typeKind, language_1.Constant.RelationalOperator.LessThan, typeKind), language_1.Type.TypeKind.Logical],
239
- [lookupKey(typeKind, language_1.Constant.RelationalOperator.LessThanEqualTo, typeKind), language_1.Type.TypeKind.Logical],
240
- ];
241
- }
242
- function lookupsForEquality(typeKind) {
243
- return [
244
- [lookupKey(typeKind, language_1.Constant.EqualityOperator.EqualTo, typeKind), language_1.Type.TypeKind.Logical],
245
- [lookupKey(typeKind, language_1.Constant.EqualityOperator.NotEqualTo, typeKind), language_1.Type.TypeKind.Logical],
246
- ];
247
- }
248
- function lookupsForNullEquality() {
249
- const results = [];
250
- for (const typeKind of language_1.Type.TypeKinds) {
251
- results.push([
252
- lookupKey(typeKind, language_1.Constant.EqualityOperator.EqualTo, language_1.Type.TypeKind.Null),
253
- language_1.Type.TypeKind.Logical,
254
- ]);
255
- results.push([
256
- lookupKey(typeKind, language_1.Constant.EqualityOperator.NotEqualTo, language_1.Type.TypeKind.Null),
257
- language_1.Type.TypeKind.Logical,
258
- ]);
259
- results.push([
260
- lookupKey(language_1.Type.TypeKind.Null, language_1.Constant.EqualityOperator.EqualTo, typeKind),
261
- language_1.Type.TypeKind.Logical,
262
- ]);
263
- results.push([
264
- lookupKey(language_1.Type.TypeKind.Null, language_1.Constant.EqualityOperator.NotEqualTo, typeKind),
265
- language_1.Type.TypeKind.Logical,
266
- ]);
267
- }
268
- return results;
269
- }
270
- // Note: does not include the and <'&'> Constant.
271
- function lookupsForArithmetic(typeKind) {
272
- return [
273
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Addition, typeKind), typeKind],
274
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Division, typeKind), typeKind],
275
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Multiplication, typeKind), typeKind],
276
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, typeKind), typeKind],
277
- ];
278
- }
279
- function lookupsForLogical(typeKind) {
280
- return [
281
- [lookupKey(typeKind, language_1.Constant.LogicalOperator.And, typeKind), typeKind],
282
- [lookupKey(typeKind, language_1.Constant.LogicalOperator.Or, typeKind), typeKind],
283
- ];
284
- }
285
- function lookupsForClockKind(typeKind) {
286
- return [
287
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Addition, language_1.Type.TypeKind.Duration), typeKind],
288
- [lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Addition, typeKind), typeKind],
289
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, language_1.Type.TypeKind.Duration), typeKind],
290
- [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, typeKind), language_1.Type.TypeKind.Duration],
291
- ];
292
- }
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.PartialLookup = exports.Lookup = void 0;
39
+ exports.inspectTypeTBinOpExpression = inspectTypeTBinOpExpression;
40
+ exports.lookupKey = lookupKey;
41
+ exports.partialLookupKey = partialLookupKey;
42
+ const PQP = __importStar(require("@microsoft/powerquery-parser"));
43
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
44
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
45
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
46
+ const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
47
+ const __1 = require("../../..");
48
+ const common_1 = require("./common");
49
+ async function inspectTypeTBinOpExpression(state, xorNode, correlationId) {
50
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectType, inspectTypeTBinOpExpression.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
51
+ state.cancellationToken?.throwIfCancelled();
52
+ powerquery_parser_1.Assert.isTrue(language_1.AstUtils.isTBinOpExpressionKind(xorNode.node.kind), `xorNode isn't a TBinOpExpression`, {
53
+ nodeId: xorNode.node.id,
54
+ nodeKind: xorNode.node.kind,
55
+ });
56
+ const parentId = xorNode.node.id;
57
+ const children = parser_1.NodeIdMapIterator.assertIterChildrenXor(state.nodeIdMapCollection, parentId);
58
+ const left = children[0];
59
+ const operatorKind = children[1] === undefined || parser_1.XorNodeUtils.isContext(children[1])
60
+ ? undefined
61
+ : children[1].node.constantKind;
62
+ const right = children[2];
63
+ let result;
64
+ // ''
65
+ if (left === undefined) {
66
+ result = language_1.Type.UnknownInstance;
67
+ }
68
+ // '1'
69
+ else if (operatorKind === undefined) {
70
+ result = await (0, common_1.inspectXor)(state, left, trace.id);
71
+ }
72
+ // '1 +'
73
+ else if (right === undefined || parser_1.XorNodeUtils.isContext(right)) {
74
+ const leftType = await (0, common_1.inspectXor)(state, left, trace.id);
75
+ const key = partialLookupKey(leftType.kind, operatorKind);
76
+ const allowedTypeKinds = exports.PartialLookup.get(key);
77
+ if (allowedTypeKinds === undefined) {
78
+ result = language_1.Type.NoneInstance;
79
+ }
80
+ else if (allowedTypeKinds.size === 1) {
81
+ result = language_1.TypeUtils.primitiveType(leftType.isNullable, powerquery_parser_1.Assert.asDefined(allowedTypeKinds.values().next().value, "allowedTypeKinds had a size of 1, so there should be a value here."));
82
+ }
83
+ else {
84
+ const unionedTypePairs = [];
85
+ for (const kind of allowedTypeKinds.values()) {
86
+ unionedTypePairs.push({
87
+ kind,
88
+ extendedKind: undefined,
89
+ isNullable: true,
90
+ });
91
+ }
92
+ result = language_1.TypeUtils.anyUnion(unionedTypePairs, state.traceManager, trace.id);
93
+ }
94
+ }
95
+ // '1 + 1'
96
+ else {
97
+ const leftType = await (0, common_1.inspectXor)(state, left, trace.id);
98
+ const rightType = await (0, common_1.inspectXor)(state, right, trace.id);
99
+ const key = lookupKey(leftType.kind, operatorKind, rightType.kind);
100
+ const resultTypeKind = exports.Lookup.get(key);
101
+ if (resultTypeKind === undefined) {
102
+ result = language_1.Type.NoneInstance;
103
+ }
104
+ else if (operatorKind === language_1.Constant.ArithmeticOperator.And &&
105
+ (resultTypeKind === language_1.Type.TypeKind.Record || resultTypeKind === language_1.Type.TypeKind.Table)) {
106
+ result = inspectRecordOrTableUnion(leftType, rightType);
107
+ }
108
+ else {
109
+ result = language_1.TypeUtils.primitiveType(leftType.isNullable || rightType.isNullable, resultTypeKind);
110
+ }
111
+ }
112
+ trace.exit({ [trace_1.TraceConstant.Result]: __1.TraceUtils.typeDetails(result) });
113
+ return result;
114
+ }
115
+ function inspectRecordOrTableUnion(leftType, rightType) {
116
+ if (leftType.kind !== rightType.kind) {
117
+ const details = {
118
+ leftTypeKind: leftType.kind,
119
+ rightTypeKind: rightType.kind,
120
+ };
121
+ throw new PQP.CommonError.InvariantError(`leftType.kind !== rightType.kind`, details);
122
+ }
123
+ // '[] & []' or '#table() & #table()'
124
+ else if (leftType.extendedKind === undefined && rightType.extendedKind === undefined) {
125
+ return language_1.TypeUtils.primitiveType(leftType.isNullable || rightType.isNullable, leftType.kind);
126
+ }
127
+ // '[key=value] & []' or '#table(...) & #table()`
128
+ // '[] & [key=value]' or `#table() & #table(...)`
129
+ else if ((leftType.extendedKind !== undefined && rightType.extendedKind === undefined) ||
130
+ (leftType.extendedKind === undefined && rightType.extendedKind !== undefined)) {
131
+ // The 'rightType as (...)' isn't needed, except TypeScript's checker isn't smart enough to know it.
132
+ const extendedKind = leftType.extendedKind !== undefined ? leftType : rightType;
133
+ return {
134
+ ...extendedKind,
135
+ isOpen: true,
136
+ };
137
+ }
138
+ // '[foo=value] & [bar=value] or #table(...) & #table(...)'
139
+ else if (leftType?.extendedKind === rightType?.extendedKind) {
140
+ // The cast should be safe since the first if statement tests their the same kind,
141
+ // and the above checks if they're the same extended kind.
142
+ if (language_1.TypeUtils.isRecord(leftType)) {
143
+ return unionRecordFields([leftType, rightType]);
144
+ }
145
+ else {
146
+ return unionTableFields([leftType, rightType]);
147
+ }
148
+ }
149
+ else {
150
+ throw new powerquery_parser_1.CommonError.InvariantError(`this should never be reached`);
151
+ }
152
+ }
153
+ function unionRecordFields([leftType, rightType]) {
154
+ const combinedFields = new Map(leftType.fields);
155
+ for (const [key, value] of rightType.fields.entries()) {
156
+ combinedFields.set(key, value);
157
+ }
158
+ return {
159
+ ...leftType,
160
+ fields: combinedFields,
161
+ isNullable: leftType.isNullable && rightType.isNullable,
162
+ isOpen: leftType.isOpen || rightType.isOpen,
163
+ };
164
+ }
165
+ function unionTableFields([leftType, rightType]) {
166
+ const combinedFields = new PQP.OrderedMap([...leftType.fields]);
167
+ for (const [key, value] of rightType.fields.entries()) {
168
+ combinedFields.set(key, value);
169
+ }
170
+ return {
171
+ ...leftType,
172
+ fields: combinedFields,
173
+ isNullable: leftType.isNullable && rightType.isNullable,
174
+ isOpen: leftType.isOpen || rightType.isOpen,
175
+ };
176
+ }
177
+ // Keys: <first operand> <operator> <second operand>
178
+ // Values: the resulting type of the binary operation expression.
179
+ // Eg. '1 > 3' -> Type.TypeKind.Number
180
+ exports.Lookup = new Map([
181
+ ...lookupsForNullEquality(),
182
+ ...lookupsForRelational(language_1.Type.TypeKind.Null),
183
+ ...lookupsForEquality(language_1.Type.TypeKind.Null),
184
+ ...lookupsForRelational(language_1.Type.TypeKind.Logical),
185
+ ...lookupsForEquality(language_1.Type.TypeKind.Logical),
186
+ ...lookupsForLogical(language_1.Type.TypeKind.Logical),
187
+ ...lookupsForRelational(language_1.Type.TypeKind.Number),
188
+ ...lookupsForEquality(language_1.Type.TypeKind.Number),
189
+ ...lookupsForArithmetic(language_1.Type.TypeKind.Number),
190
+ ...lookupsForRelational(language_1.Type.TypeKind.Time),
191
+ ...lookupsForEquality(language_1.Type.TypeKind.Time),
192
+ ...lookupsForClockKind(language_1.Type.TypeKind.Time),
193
+ [lookupKey(language_1.Type.TypeKind.Date, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Time), language_1.Type.TypeKind.DateTime],
194
+ ...lookupsForRelational(language_1.Type.TypeKind.Date),
195
+ ...lookupsForEquality(language_1.Type.TypeKind.Date),
196
+ ...lookupsForClockKind(language_1.Type.TypeKind.Date),
197
+ [lookupKey(language_1.Type.TypeKind.Date, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Time), language_1.Type.TypeKind.DateTime],
198
+ ...lookupsForRelational(language_1.Type.TypeKind.DateTime),
199
+ ...lookupsForEquality(language_1.Type.TypeKind.DateTime),
200
+ ...lookupsForClockKind(language_1.Type.TypeKind.DateTime),
201
+ ...lookupsForRelational(language_1.Type.TypeKind.DateTimeZone),
202
+ ...lookupsForEquality(language_1.Type.TypeKind.DateTimeZone),
203
+ ...lookupsForClockKind(language_1.Type.TypeKind.DateTimeZone),
204
+ ...lookupsForRelational(language_1.Type.TypeKind.Duration),
205
+ ...lookupsForEquality(language_1.Type.TypeKind.Duration),
206
+ [
207
+ lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Addition, language_1.Type.TypeKind.Duration),
208
+ language_1.Type.TypeKind.Duration,
209
+ ],
210
+ [
211
+ lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Subtraction, language_1.Type.TypeKind.Duration),
212
+ language_1.Type.TypeKind.Duration,
213
+ ],
214
+ [
215
+ lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Multiplication, language_1.Type.TypeKind.Number),
216
+ language_1.Type.TypeKind.Duration,
217
+ ],
218
+ [
219
+ lookupKey(language_1.Type.TypeKind.Number, language_1.Constant.ArithmeticOperator.Multiplication, language_1.Type.TypeKind.Duration),
220
+ language_1.Type.TypeKind.Duration,
221
+ ],
222
+ [
223
+ lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Division, language_1.Type.TypeKind.Number),
224
+ language_1.Type.TypeKind.Duration,
225
+ ],
226
+ ...lookupsForRelational(language_1.Type.TypeKind.Text),
227
+ ...lookupsForEquality(language_1.Type.TypeKind.Text),
228
+ [lookupKey(language_1.Type.TypeKind.Text, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Text), language_1.Type.TypeKind.Text],
229
+ ...lookupsForRelational(language_1.Type.TypeKind.Binary),
230
+ ...lookupsForEquality(language_1.Type.TypeKind.Binary),
231
+ ...lookupsForEquality(language_1.Type.TypeKind.List),
232
+ [lookupKey(language_1.Type.TypeKind.List, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.List), language_1.Type.TypeKind.List],
233
+ ...lookupsForEquality(language_1.Type.TypeKind.Record),
234
+ [lookupKey(language_1.Type.TypeKind.Record, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Record), language_1.Type.TypeKind.Record],
235
+ ...lookupsForEquality(language_1.Type.TypeKind.Table),
236
+ [lookupKey(language_1.Type.TypeKind.Table, language_1.Constant.ArithmeticOperator.And, language_1.Type.TypeKind.Table), language_1.Type.TypeKind.Table],
237
+ ]);
238
+ // Keys: <first operand> <operator>
239
+ // Values: a set of types that are allowed for <second operand>
240
+ // Eg. '1 + ' ->
241
+ exports.PartialLookup = new Map(
242
+ // Grab the keys
243
+ [...exports.Lookup.keys()]
244
+ .reduce((binaryExpressionPartialLookup, key, _currentIndex, _array) => {
245
+ const lastDeliminatorIndex = key.lastIndexOf(",");
246
+ // Grab '<first operand> , <operator>'.
247
+ const partialKey = key.slice(0, lastDeliminatorIndex);
248
+ // Grab '<second operand>'.
249
+ const potentialNewValue = key.slice(lastDeliminatorIndex + 1);
250
+ // Add the potentialNewValue if it's a new Type.
251
+ const values = binaryExpressionPartialLookup.get(partialKey);
252
+ // First occurance of '<first operand> , <operator>'
253
+ if (values === undefined) {
254
+ binaryExpressionPartialLookup.set(partialKey, new Set([potentialNewValue]));
255
+ }
256
+ else {
257
+ values.add(potentialNewValue);
258
+ }
259
+ return binaryExpressionPartialLookup;
260
+ }, new Map())
261
+ .entries());
262
+ function lookupKey(leftTypeKind, operatorKind, rightTypeKind) {
263
+ return `${leftTypeKind},${operatorKind},${rightTypeKind}`;
264
+ }
265
+ function partialLookupKey(leftTypeKind, operatorKind) {
266
+ return `${leftTypeKind},${operatorKind}`;
267
+ }
268
+ function lookupsForRelational(typeKind) {
269
+ return [
270
+ [lookupKey(typeKind, language_1.Constant.RelationalOperator.GreaterThan, typeKind), language_1.Type.TypeKind.Logical],
271
+ [lookupKey(typeKind, language_1.Constant.RelationalOperator.GreaterThanEqualTo, typeKind), language_1.Type.TypeKind.Logical],
272
+ [lookupKey(typeKind, language_1.Constant.RelationalOperator.LessThan, typeKind), language_1.Type.TypeKind.Logical],
273
+ [lookupKey(typeKind, language_1.Constant.RelationalOperator.LessThanEqualTo, typeKind), language_1.Type.TypeKind.Logical],
274
+ ];
275
+ }
276
+ function lookupsForEquality(typeKind) {
277
+ return [
278
+ [lookupKey(typeKind, language_1.Constant.EqualityOperator.EqualTo, typeKind), language_1.Type.TypeKind.Logical],
279
+ [lookupKey(typeKind, language_1.Constant.EqualityOperator.NotEqualTo, typeKind), language_1.Type.TypeKind.Logical],
280
+ ];
281
+ }
282
+ function lookupsForNullEquality() {
283
+ const results = [];
284
+ for (const typeKind of language_1.Type.TypeKinds) {
285
+ results.push([
286
+ lookupKey(typeKind, language_1.Constant.EqualityOperator.EqualTo, language_1.Type.TypeKind.Null),
287
+ language_1.Type.TypeKind.Logical,
288
+ ]);
289
+ results.push([
290
+ lookupKey(typeKind, language_1.Constant.EqualityOperator.NotEqualTo, language_1.Type.TypeKind.Null),
291
+ language_1.Type.TypeKind.Logical,
292
+ ]);
293
+ results.push([
294
+ lookupKey(language_1.Type.TypeKind.Null, language_1.Constant.EqualityOperator.EqualTo, typeKind),
295
+ language_1.Type.TypeKind.Logical,
296
+ ]);
297
+ results.push([
298
+ lookupKey(language_1.Type.TypeKind.Null, language_1.Constant.EqualityOperator.NotEqualTo, typeKind),
299
+ language_1.Type.TypeKind.Logical,
300
+ ]);
301
+ }
302
+ return results;
303
+ }
304
+ // Note: does not include the and <'&'> Constant.
305
+ function lookupsForArithmetic(typeKind) {
306
+ return [
307
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Addition, typeKind), typeKind],
308
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Division, typeKind), typeKind],
309
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Multiplication, typeKind), typeKind],
310
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, typeKind), typeKind],
311
+ ];
312
+ }
313
+ function lookupsForLogical(typeKind) {
314
+ return [
315
+ [lookupKey(typeKind, language_1.Constant.LogicalOperator.And, typeKind), typeKind],
316
+ [lookupKey(typeKind, language_1.Constant.LogicalOperator.Or, typeKind), typeKind],
317
+ ];
318
+ }
319
+ function lookupsForClockKind(typeKind) {
320
+ return [
321
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Addition, language_1.Type.TypeKind.Duration), typeKind],
322
+ [lookupKey(language_1.Type.TypeKind.Duration, language_1.Constant.ArithmeticOperator.Addition, typeKind), typeKind],
323
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, language_1.Type.TypeKind.Duration), typeKind],
324
+ [lookupKey(typeKind, language_1.Constant.ArithmeticOperator.Subtraction, typeKind), language_1.Type.TypeKind.Duration],
325
+ ];
326
+ }
293
327
  //# sourceMappingURL=inspectTypeTBinOpExpression.js.map