@microsoft/powerquery-language-services 0.10.4 → 0.10.6

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 (104) hide show
  1. package/lib/powerquery-language-services/analysis/analysisBase.js +2 -1
  2. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  3. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +8 -6
  4. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  5. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +1 -4
  6. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  7. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +2 -2
  8. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +5 -5
  9. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  10. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.d.ts +37 -0
  11. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js +14 -0
  12. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js.map +1 -0
  13. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.d.ts +6 -0
  14. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js +222 -0
  15. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js.map +1 -0
  16. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.d.ts +2 -0
  17. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js +20 -0
  18. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js.map +1 -0
  19. package/lib/powerquery-language-services/inspection/index.d.ts +1 -1
  20. package/lib/powerquery-language-services/inspection/index.js +1 -1
  21. package/lib/powerquery-language-services/inspection/index.js.map +1 -1
  22. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +1 -1
  23. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  24. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +1 -1
  25. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +55 -38
  26. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  27. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +3 -10
  28. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +44 -63
  29. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  30. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +1 -1
  31. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +1 -1
  32. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  33. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +1 -1
  34. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  35. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +1 -1
  36. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  37. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.d.ts +1 -1
  38. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.d.ts +1 -1
  39. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +1 -1
  40. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  41. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +1 -1
  42. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  43. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +1 -1
  44. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  45. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +1 -1
  46. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  47. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +1 -1
  48. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +1 -1
  49. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  50. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +1 -1
  51. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +1 -1
  52. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  53. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +1 -1
  54. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  55. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +1 -1
  56. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +10 -5
  57. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  58. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +1 -1
  59. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  60. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +1 -1
  61. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.d.ts +1 -1
  63. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +1 -1
  64. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  65. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +1 -1
  66. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  67. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.d.ts +1 -1
  68. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +1 -1
  69. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +1 -1
  70. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  71. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +1 -1
  72. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +5 -8
  73. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +1 -1
  75. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +1 -1
  76. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  77. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.d.ts +2 -0
  78. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js +20 -0
  79. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js.map +1 -0
  80. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.d.ts +9 -0
  81. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js +5 -0
  82. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js.map +1 -0
  83. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.d.ts +7 -0
  84. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js +43 -0
  85. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js.map +1 -0
  86. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +1 -1
  87. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  88. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +1 -1
  89. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +1 -1
  90. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  91. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +1 -1
  92. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  93. package/lib/powerquery-language-services/inspection/type/task.js +7 -23
  94. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  95. package/lib/powerquery-language-services/inspectionUtils.js +4 -5
  96. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  97. package/lib/powerquery-language-services/library/libraryUtils.js +2 -1
  98. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  99. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +0 -2
  100. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  101. package/package.json +3 -3
  102. package/lib/powerquery-language-services/inspection/deferenceIdentifier.d.ts +0 -5
  103. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +0 -95
  104. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +0 -1
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.tryBuildDereferencedIdentifierPath = void 0;
15
+ const PQP = require("@microsoft/powerquery-parser");
16
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
17
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
18
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
19
+ const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
20
+ const scope_1 = require("../scope");
21
+ const dereferencedIdentifier_1 = require("././dereferencedIdentifier");
22
+ const __1 = require("../..");
23
+ const trace_2 = require("../../trace");
24
+ // Recursively dereference the identifier until it reaches either:
25
+ // - A recursive identifier which is not supported
26
+ // - A value node
27
+ // - An external type
28
+ // - Undefined
29
+ //
30
+ // Below some examples of dereferencing local identifiers with the recursive '@' prefix.
31
+ //
32
+ // Evaluates to: [key1 = 42, key2 = 42]
33
+ // let foo = 42 in [key1 = foo, key2 = @foo]
34
+ //
35
+ // Evaluates to: -1
36
+ // let
37
+ // SomeFunction = (x as number) => -1,
38
+ // Record = [SomeFunction = (x as number) => if x = 42 then 42 else SomeFunction(x + 1)]
39
+ // in
40
+ // Record[SomeFunction](0)
41
+ //
42
+ // Evaluates to: 42
43
+ // let
44
+ // SomeFunction = (x as number) => -1,
45
+ // Record = [SomeFunction = (x as number) => if x = 42 then 42 else @SomeFunction(x + 1)]
46
+ // in
47
+ // Record[SomeFunction](0)
48
+ function tryBuildDereferencedIdentifierPath(inspectionSettings, nodeIdMapCollection, xorNode,
49
+ // If a map is given, then it's mutated and returned.
50
+ // Else create a new Map instance and return that instead.
51
+ scopeById = new Map()) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, tryBuildDereferencedIdentifierPath.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(xorNode));
54
+ const updatedSettings = Object.assign(Object.assign({}, inspectionSettings), { initialCorrelationId: trace.id });
55
+ try {
56
+ parser_1.XorNodeUtils.assertIsIdentifier(xorNode);
57
+ if (parser_1.XorNodeUtils.isContext(xorNode)) {
58
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
59
+ throw new PQP.CommonError.InvariantError(`expected xorNode to be an identifier`, { xorNode });
60
+ }
61
+ const dereferenceResult = yield dereferenceScopeItem(updatedSettings, nodeIdMapCollection, xorNode, scopeById, xorNode);
62
+ trace.exit();
63
+ return dereferenceResult;
64
+ }
65
+ catch (caught) {
66
+ powerquery_parser_1.Assert.isInstanceofError(caught);
67
+ trace.exit();
68
+ return powerquery_parser_1.ResultUtils.error(PQP.CommonError.ensureCommonError(caught, inspectionSettings.locale));
69
+ }
70
+ });
71
+ }
72
+ exports.tryBuildDereferencedIdentifierPath = tryBuildDereferencedIdentifierPath;
73
+ function dereferenceScopeItem(inspectionSettings, nodeIdMapCollection, identifierAstXorNode, scopeById, initialIdentifierXorNode) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ const trace = inspectionSettings.traceManager.entry(trace_2.InspectionTraceConstant.InspectScope, dereferenceScopeItem.name, inspectionSettings.initialCorrelationId, __1.TraceUtils.xorNodeDetails(identifierAstXorNode));
76
+ const updatedSettings = Object.assign(Object.assign({}, inspectionSettings), { initialCorrelationId: trace.id });
77
+ const dereferencedPath = [];
78
+ const initialTriedNodeScope = yield (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, initialIdentifierXorNode.node.id, scopeById);
79
+ if (powerquery_parser_1.ResultUtils.isError(initialTriedNodeScope)) {
80
+ trace.exit({ [trace_1.TraceConstant.Result]: initialTriedNodeScope.kind });
81
+ return initialTriedNodeScope;
82
+ }
83
+ let currentScopeItem = initialTriedNodeScope.value.get(language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node));
84
+ let currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(initialIdentifierXorNode.node);
85
+ if (currentScopeItem === undefined) {
86
+ return onIdentifierNotInScope(dereferencedPath, identifierAstXorNode, trace, updatedSettings, currentIdentifierLiteral);
87
+ }
88
+ while (currentScopeItem.kind) {
89
+ const currentXorNode = parser_1.NodeIdMapUtils.assertXor(nodeIdMapCollection, currentScopeItem.nodeId);
90
+ switch (currentScopeItem.kind) {
91
+ case scope_1.ScopeItemKind.LetVariable:
92
+ case scope_1.ScopeItemKind.RecordField:
93
+ case scope_1.ScopeItemKind.SectionMember:
94
+ // eslint-disable-next-line no-lone-blocks
95
+ {
96
+ const potentialDereference = currentScopeItem.value;
97
+ // Most commonly happens when a variable has yet to be defined,
98
+ // for example, a context node for a RecordExpression `[let foo = 1, bar = |`
99
+ if (potentialDereference === undefined) {
100
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
101
+ }
102
+ // It's referencing another identifier
103
+ if (potentialDereference !== undefined &&
104
+ parser_1.XorNodeUtils.isAstChecked(potentialDereference, [
105
+ language_1.Ast.NodeKind.Identifier,
106
+ language_1.Ast.NodeKind.IdentifierExpression,
107
+ ])) {
108
+ currentIdentifierLiteral = language_1.AstUtils.getIdentifierLiteral(potentialDereference.node);
109
+ // If it's a non-recursive dereference
110
+ if (!currentScopeItem.isRecursive) {
111
+ // Generate the scope for the next dereference (if needed)
112
+ // eslint-disable-next-line no-await-in-loop
113
+ const triedNodeScope = yield (0, scope_1.assertGetOrCreateNodeScope)(updatedSettings, nodeIdMapCollection, updatedSettings.eachScopeById, potentialDereference.node.id, scopeById);
114
+ if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
115
+ trace.exit({ [trace_1.TraceConstant.Result]: triedNodeScope.kind });
116
+ return triedNodeScope;
117
+ }
118
+ const nextScopeItem = triedNodeScope.value.get(currentIdentifierLiteral);
119
+ if (nextScopeItem === undefined) {
120
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
121
+ }
122
+ dereferencedPath.push({
123
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeDereference,
124
+ xorNode: currentXorNode,
125
+ identifierLiteral: currentIdentifierLiteral,
126
+ nextScopeItem,
127
+ });
128
+ currentScopeItem = nextScopeItem;
129
+ }
130
+ // Else if it's a recursive scopeItem and we ARE looking for a recursive scopeItem,
131
+ // then we're done.
132
+ else if (currentIdentifierLiteral.startsWith("@")) {
133
+ return onRecursiveIdentifierLiteral(dereferencedPath, currentXorNode, trace, currentIdentifierLiteral);
134
+ }
135
+ // Else it's a recursive scopeItem and we ARE NOT looking for a recursive scopeItem,
136
+ // then look up the ancestry chain for a non-recursive scopeItem of the same name.
137
+ else {
138
+ const ancestoryScopeItem = findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, currentIdentifierLiteral, currentXorNode.node.id);
139
+ if (ancestoryScopeItem === undefined) {
140
+ return onIdentifierNotInScope(dereferencedPath, currentXorNode, trace, updatedSettings, currentIdentifierLiteral);
141
+ }
142
+ currentScopeItem = ancestoryScopeItem;
143
+ }
144
+ }
145
+ else {
146
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
147
+ }
148
+ }
149
+ break;
150
+ case scope_1.ScopeItemKind.Each:
151
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
152
+ case scope_1.ScopeItemKind.Parameter:
153
+ return onInScopeValue(dereferencedPath, currentXorNode, trace, currentScopeItem);
154
+ case scope_1.ScopeItemKind.Undefined:
155
+ dereferencedPath.push({
156
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
157
+ identifierLiteral: currentIdentifierLiteral,
158
+ xorNode: currentXorNode,
159
+ });
160
+ trace.exit();
161
+ return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
162
+ default:
163
+ throw powerquery_parser_1.Assert.isNever(currentScopeItem);
164
+ }
165
+ }
166
+ trace.exit();
167
+ return powerquery_parser_1.ResultUtils.ok(dereferencedPath);
168
+ });
169
+ }
170
+ // Sometimes in the scope of a lower node (e.g. a leaf node) there's a scopeItem that matches the
171
+ // identifier literal we're looking for, but it's marked as recursive.
172
+ // In that case we want to look up the tree to see if there's a non-recursive scopeItem of the same name further up.
173
+ function findNonRecursiveScopeItemInAncestors(nodeIdMapCollection, scopeById, identifierLiteral, initialNodeId) {
174
+ var _a;
175
+ let currentNodeId = nodeIdMapCollection.parentIdById.get(initialNodeId);
176
+ while (currentNodeId) {
177
+ const scopeItem = (_a = scopeById.get(currentNodeId)) === null || _a === void 0 ? void 0 : _a.get(identifierLiteral);
178
+ if (scopeItem && !scopeItem.isRecursive) {
179
+ return scopeItem;
180
+ }
181
+ currentNodeId = nodeIdMapCollection.parentIdById.get(currentNodeId);
182
+ }
183
+ return undefined;
184
+ }
185
+ // Validates whether an unknown identifier is an externally defined type (e.g. a built-in function)
186
+ function onIdentifierNotInScope(dereferencePath, xorNode, trace, inspectionSettings, identifierLiteral) {
187
+ const externalType = inspectionSettings.library.externalTypeResolver(__1.ExternalTypeUtils.valueTypeRequest(language_1.IdentifierExpressionUtils.assertNormalizedIdentifierExpression(identifierLiteral)));
188
+ const finalPath = externalType
189
+ ? {
190
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.External,
191
+ xorNode,
192
+ identifierLiteral,
193
+ type: externalType,
194
+ }
195
+ : {
196
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Undefined,
197
+ xorNode,
198
+ identifierLiteral,
199
+ };
200
+ dereferencePath.push(finalPath);
201
+ trace.exit({ [trace_1.TraceConstant.Result]: finalPath });
202
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
203
+ }
204
+ function onInScopeValue(dereferencePath, xorNode, trace, scopeItem) {
205
+ dereferencePath.push({
206
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.InScopeValue,
207
+ xorNode,
208
+ scopeItem,
209
+ });
210
+ trace.exit();
211
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
212
+ }
213
+ function onRecursiveIdentifierLiteral(dereferencePath, xorNode, trace, identifierLiteral) {
214
+ dereferencePath.push({
215
+ kind: dereferencedIdentifier_1.DereferencedIdentifierKind.Recursive,
216
+ xorNode,
217
+ identifierLiteral,
218
+ });
219
+ trace.exit();
220
+ return powerquery_parser_1.ResultUtils.ok(dereferencePath);
221
+ }
222
+ //# sourceMappingURL=dereferencedIdentifierUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dereferencedIdentifierUtils.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./dereferencedIdentifier";
2
+ export * as DereferencedIdentifierUtils from "./dereferencedIdentifierUtils";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.DereferencedIdentifierUtils = void 0;
18
+ __exportStar(require("./dereferencedIdentifier"), exports);
19
+ exports.DereferencedIdentifierUtils = require("./dereferencedIdentifierUtils");
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/dereferencedIdentifier/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,+EAA6E"}
@@ -1,7 +1,7 @@
1
1
  export * from "./activeNode";
2
2
  export * from "./autocomplete";
3
3
  export * from "./commonTypes";
4
- export * from "./deferenceIdentifier";
4
+ export * from "./dereferencedIdentifier";
5
5
  export * from "./invokeExpression";
6
6
  export * from "./scope";
7
7
  export * from "./task";
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  __exportStar(require("./activeNode"), exports);
20
20
  __exportStar(require("./autocomplete"), exports);
21
21
  __exportStar(require("./commonTypes"), exports);
22
- __exportStar(require("./deferenceIdentifier"), exports);
22
+ __exportStar(require("./dereferencedIdentifier"), exports);
23
23
  __exportStar(require("./invokeExpression"), exports);
24
24
  __exportStar(require("./scope"), exports);
25
25
  __exportStar(require("./task"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/inspection/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;AAElC,+CAA6B;AAC7B,iDAA+B;AAC/B,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/inspection/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;AAElC,+CAA6B;AAC7B,iDAA+B;AAC/B,gDAA8B;AAC9B,2DAAyC;AACzC,qDAAmC;AACnC,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,8CAA4B"}
@@ -44,9 +44,9 @@ function inspectInvokeExpression(settings, nodeIdMapCollection, invokeExpression
44
44
  });
45
45
  }
46
46
  parser_1.XorNodeUtils.assertIsNodeKind(invokeExpressionXorNode, language_1.Ast.NodeKind.InvokeExpression);
47
+ const name = parser_1.NodeIdMapUtils.invokeExpressionIdentifierLiteral(nodeIdMapCollection, invokeExpressionId);
47
48
  const previousNode = parser_1.NodeIdMapUtils.assertRecursiveExpressionPreviousSibling(nodeIdMapCollection, invokeExpressionId);
48
49
  const functionType = powerquery_parser_1.ResultUtils.assertOk(yield (0, type_1.tryType)(settings, nodeIdMapCollection, previousNode.node.id, typeCache));
49
- const name = parser_1.NodeIdMapUtils.invokeExpressionIdentifierLiteral(nodeIdMapCollection, invokeExpressionId);
50
50
  let invokeExpressionArgs;
51
51
  if (language_1.TypeUtils.isDefinedFunction(functionType)) {
52
52
  const iterableArguments = parser_1.NodeIdMapIterator.iterInvokeExpression(nodeIdMapCollection, invokeExpressionXorNode);
@@ -1 +1 @@
1
- {"version":3,"file":"invokeExpression.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/invokeExpression/invokeExpression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invokeExpression.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/invokeExpression/invokeExpression.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare enum ScopeItemKind {
17
17
  }
18
18
  export interface IScopeItem {
19
19
  readonly kind: ScopeItemKind;
20
- readonly id: number;
20
+ readonly nodeId: number;
21
21
  readonly isRecursive: boolean;
22
22
  }
23
23
  export interface IKeyValuePairScopeItem<Key extends Ast.Identifier | Ast.GeneralizedIdentifier, Kind extends ScopeItemKind.LetVariable | ScopeItemKind.RecordField | ScopeItemKind.SectionMember> extends IScopeItem {
@@ -133,7 +133,7 @@ function inspectEachExpression(state, eachExpr, correlationId) {
133
133
  "_",
134
134
  {
135
135
  kind: scope_1.ScopeItemKind.Each,
136
- id: eachExpr.node.id,
136
+ nodeId: eachExpr.node.id,
137
137
  isRecursive: false,
138
138
  eachExpression: eachExpr,
139
139
  implicitParameterType: (_b = (_a = state.eachScopeById) === null || _a === void 0 ? void 0 : _a.get(eachExpr.node.id)) !== null && _b !== void 0 ? _b : language_1.Type.UnknownInstance,
@@ -148,18 +148,16 @@ function inspectFunctionExpression(state, fnExpr, correlationId) {
148
148
  // Propegates the parent's scope.
149
149
  const nodeScope = localGetOrCreateNodeScope(state, fnExpr.node.id, undefined, trace.id);
150
150
  const pseudoType = (0, pseudoFunctionExpressionType_1.pseudoFunctionExpressionType)(state.nodeIdMapCollection, fnExpr);
151
- const newEntries = pseudoType.parameters.map((parameter) => [
152
- parameter.name.literal,
153
- {
154
- kind: scope_1.ScopeItemKind.Parameter,
155
- id: parameter.id,
156
- isRecursive: false,
157
- name: parameter.name,
158
- isOptional: parameter.isOptional,
159
- isNullable: parameter.isNullable,
160
- type: parameter.type ? language_1.TypeUtils.primitiveTypeConstantKindFromTypeKind(parameter.type) : undefined,
161
- },
162
- ]);
151
+ const newEntries = [];
152
+ for (const parameter of pseudoType.parameters) {
153
+ const type = parameter.type
154
+ ? language_1.TypeUtils.primitiveTypeConstantKindFromTypeKind(parameter.type)
155
+ : undefined;
156
+ const parameterScopeItem = scopeItemFactoryForParameter(parameter, type);
157
+ for (const scopeKey of language_1.IdentifierUtils.getAllowedIdentifiers(parameter.name.literal)) {
158
+ newEntries.push([scopeKey, parameterScopeItem]);
159
+ }
160
+ }
163
161
  expandChildScope(state, fnExpr, [3], newEntries, nodeScope, trace.id);
164
162
  trace.exit();
165
163
  }
@@ -169,9 +167,9 @@ function inspectLetExpression(state, letExpr, correlationId) {
169
167
  // Propegates the parent's scope.
170
168
  const nodeScope = localGetOrCreateNodeScope(state, letExpr.node.id, undefined, trace.id);
171
169
  const keyValuePairs = parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, letExpr);
172
- inspectKeyValuePairs(state, nodeScope, keyValuePairs, createLetVariableScopeItem, trace.id);
170
+ inspectKeyValuePairs(state, nodeScope, keyValuePairs, { allowRecursive: true }, scopeItemFactoryForLetVariable, trace.id);
173
171
  // Places the assignments from the 'let' into LetExpression.expression
174
- const newEntries = scopeItemsFromKeyValuePairs(keyValuePairs, -1, createLetVariableScopeItem);
172
+ const newEntries = scopeItemFactoryForKeyValuePairs(keyValuePairs, -1, { allowRecursive: true }, scopeItemFactoryForLetVariable);
175
173
  expandChildScope(state, letExpr, [3], newEntries, nodeScope, trace.id);
176
174
  trace.exit();
177
175
  }
@@ -181,7 +179,10 @@ function inspectRecordExpressionOrRecordLiteral(state, record, correlationId) {
181
179
  // Propegates the parent's scope.
182
180
  const nodeScope = localGetOrCreateNodeScope(state, record.node.id, undefined, trace.id);
183
181
  const keyValuePairs = parser_1.NodeIdMapIterator.iterRecord(state.nodeIdMapCollection, record);
184
- inspectKeyValuePairs(state, nodeScope, keyValuePairs, createRecordMemberScopeItem, trace.id);
182
+ inspectKeyValuePairs(state, nodeScope, keyValuePairs, {
183
+ allowGeneralizedIdentifier: true,
184
+ allowRecursive: true,
185
+ }, scopeItemFactoryForRecordMember, trace.id);
185
186
  trace.exit();
186
187
  }
187
188
  function inspectSection(state, section, correlationId) {
@@ -194,7 +195,7 @@ function inspectSection(state, section, correlationId) {
194
195
  if (kvp.value === undefined) {
195
196
  continue;
196
197
  }
197
- const newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createSectionMemberScopeItem);
198
+ const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, { allowRecursive: true }, scopeItemFactoryForSectionMember);
198
199
  if (newScopeItems.length !== 0) {
199
200
  expandScope(state, kvp.value, newScopeItems, new Map(), trace.id);
200
201
  }
@@ -202,7 +203,7 @@ function inspectSection(state, section, correlationId) {
202
203
  trace.exit();
203
204
  }
204
205
  // Expands the scope on the value part of the key value pair.
205
- function inspectKeyValuePairs(state, parentScope, keyValuePairs, createFn, correlationId) {
206
+ function inspectKeyValuePairs(state, parentScope, keyValuePairs, getAllowedIdentifiersOptions, scopeItemFactory, correlationId) {
206
207
  var _a;
207
208
  const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectKeyValuePairs.name, correlationId);
208
209
  for (const kvp of keyValuePairs) {
@@ -210,7 +211,7 @@ function inspectKeyValuePairs(state, parentScope, keyValuePairs, createFn, corre
210
211
  if (kvp.value === undefined) {
211
212
  continue;
212
213
  }
213
- const newScopeItems = scopeItemsFromKeyValuePairs(keyValuePairs, kvp.key.id, createFn);
214
+ const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, getAllowedIdentifiersOptions, scopeItemFactory);
214
215
  if (newScopeItems.length !== 0) {
215
216
  expandScope(state, kvp.value, newScopeItems, parentScope, trace.id);
216
217
  }
@@ -220,7 +221,7 @@ function inspectKeyValuePairs(state, parentScope, keyValuePairs, createFn, corre
220
221
  function expandScope(state, xorNode, newEntries, defaultScope, correlationId) {
221
222
  const nodeScope = localGetOrCreateNodeScope(state, xorNode.node.id, defaultScope, correlationId);
222
223
  for (const [key, value] of newEntries) {
223
- nodeScope.set(value.isRecursive ? `@${key}` : key, value);
224
+ nodeScope.set(key, value);
224
225
  }
225
226
  }
226
227
  function expandChildScope(state, parent, childAttributeIds, newEntries, defaultScope, correlationId) {
@@ -236,9 +237,7 @@ function expandChildScope(state, parent, childAttributeIds, newEntries, defaultS
236
237
  }
237
238
  // Any operation done on a scope should first invoke `scopeFor` for data integrity.
238
239
  function localGetOrCreateNodeScope(state, nodeId, defaultScope, correlationId) {
239
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, localGetOrCreateNodeScope.name, correlationId, {
240
- nodeId,
241
- });
240
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, localGetOrCreateNodeScope.name, correlationId, { nodeId });
242
241
  // If scopeFor has already been called then there should be a nodeId in the givenScope.
243
242
  const givenScope = state.givenScope.get(nodeId);
244
243
  if (givenScope !== undefined) {
@@ -251,6 +250,13 @@ function localGetOrCreateNodeScope(state, nodeId, defaultScope, correlationId) {
251
250
  trace.exit({ [trace_1.TraceConstant.Result]: "defaultScope entry" });
252
251
  return shallowCopy;
253
252
  }
253
+ const xorNode = parser_1.NodeIdMapUtils.assertXor(state.nodeIdMapCollection, nodeId);
254
+ if ([language_1.Ast.NodeKind.FieldProjection, language_1.Ast.NodeKind.FieldSelector].includes(xorNode.node.kind)) {
255
+ trace.exit({ [trace_1.TraceConstant.Result]: "field projection or selector - empty scope" });
256
+ const newScope = new Map();
257
+ state.givenScope.set(nodeId, newScope);
258
+ return newScope;
259
+ }
254
260
  // Default to a parent's scope if the node has a parent.
255
261
  const parent = parser_1.NodeIdMapUtils.parentXor(state.nodeIdMapCollection, nodeId);
256
262
  if (parent !== undefined) {
@@ -269,40 +275,51 @@ function localGetOrCreateNodeScope(state, nodeId, defaultScope, correlationId) {
269
275
  trace.exit({ [trace_1.TraceConstant.Result]: "set new entry" });
270
276
  return newScope;
271
277
  }
272
- function scopeItemsFromKeyValuePairs(keyValuePairs, ancestorKeyNodeId, scopeItemFactory) {
278
+ function scopeItemFactoryForKeyValuePairs(keyValuePairs, ancestorKeyNodeId, getAllowedIdentifiersOptions, scopeItemFactory) {
273
279
  const result = [];
274
- // A key of `#"foo" should add `foo` and `#"foo"` to the scope.
275
- // A key of foo should only add "foo" to the scope.
276
280
  for (const kvp of keyValuePairs.filter((keyValuePair) => keyValuePair.value !== undefined)) {
277
- result.push([kvp.normalizedKeyLiteral, scopeItemFactory(kvp, ancestorKeyNodeId === kvp.key.id)]);
278
- if (kvp.keyLiteral !== kvp.normalizedKeyLiteral) {
279
- result.push([kvp.keyLiteral, scopeItemFactory(kvp, ancestorKeyNodeId === kvp.key.id)]);
281
+ const isRecursive = ancestorKeyNodeId === kvp.key.id;
282
+ for (const key of language_1.IdentifierUtils.getAllowedIdentifiers(kvp.key.literal, getAllowedIdentifiersOptions)) {
283
+ if (!isRecursive || key.includes("@")) {
284
+ result.push([key, scopeItemFactory(kvp, isRecursive)]);
285
+ }
280
286
  }
281
287
  }
282
288
  return result;
283
289
  }
284
- function createSectionMemberScopeItem(keyValuePair, isRecursive) {
290
+ function scopeItemFactoryForLetVariable(keyValuePair, isRecursive) {
285
291
  return {
286
- kind: scope_1.ScopeItemKind.SectionMember,
287
- id: keyValuePair.source.node.id,
292
+ kind: scope_1.ScopeItemKind.LetVariable,
293
+ nodeId: keyValuePair.source.node.id,
288
294
  isRecursive,
289
295
  key: keyValuePair.key,
290
296
  value: keyValuePair.value,
291
297
  };
292
298
  }
293
- function createLetVariableScopeItem(keyValuePair, isRecursive) {
299
+ function scopeItemFactoryForParameter(parameter, type) {
294
300
  return {
295
- kind: scope_1.ScopeItemKind.LetVariable,
296
- id: keyValuePair.source.node.id,
301
+ kind: scope_1.ScopeItemKind.Parameter,
302
+ nodeId: parameter.id,
303
+ isRecursive: false,
304
+ name: parameter.name,
305
+ isOptional: parameter.isOptional,
306
+ isNullable: parameter.isNullable,
307
+ type,
308
+ };
309
+ }
310
+ function scopeItemFactoryForRecordMember(keyValuePair, isRecursive) {
311
+ return {
312
+ kind: scope_1.ScopeItemKind.RecordField,
313
+ nodeId: keyValuePair.source.node.id,
297
314
  isRecursive,
298
315
  key: keyValuePair.key,
299
316
  value: keyValuePair.value,
300
317
  };
301
318
  }
302
- function createRecordMemberScopeItem(keyValuePair, isRecursive) {
319
+ function scopeItemFactoryForSectionMember(keyValuePair, isRecursive) {
303
320
  return {
304
- kind: scope_1.ScopeItemKind.RecordField,
305
- id: keyValuePair.source.node.id,
321
+ kind: scope_1.ScopeItemKind.SectionMember,
322
+ nodeId: keyValuePair.source.node.id,
306
323
  isRecursive,
307
324
  key: keyValuePair.key,
308
325
  value: keyValuePair.value,
@@ -1 +1 @@
1
- {"version":3,"file":"scopeInspection.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/scope/scopeInspection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scopeInspection.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/scope/scopeInspection.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,8 @@
1
- import * as PQP from "@microsoft/powerquery-parser";
2
1
  import { Type } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
3
- import { NodeIdMap, TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
2
+ import { TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
4
3
  import { Inspection } from "../../..";
5
- import { NodeScope, ParameterScopeItem, ScopeById, TScopeItem } from "../../scope";
6
- import { InspectionSettings } from "../../../inspectionSettings";
7
- import { TypeById } from "../../typeCache";
8
- export interface InspectTypeState extends PQP.CommonSettings, Omit<InspectionSettings, keyof PQP.Lexer.LexSettings | keyof PQP.Parser.ParseSettings> {
9
- readonly typeById: TypeById;
10
- readonly nodeIdMapCollection: NodeIdMap.Collection;
11
- readonly scopeById: ScopeById;
12
- }
4
+ import { InspectTypeState } from "./inspectTypeState";
5
+ import { NodeScope, ParameterScopeItem, TScopeItem } from "../../scope";
13
6
  export declare function allForAnyUnion(anyUnion: Type.AnyUnion, predicate: (type: Type.TPowerQueryType) => boolean): boolean;
14
7
  export declare function assertGetOrCreateNodeScope(state: InspectTypeState, nodeId: number, correlationId: number | undefined): Promise<NodeScope>;
15
8
  export declare function getOrCreateScope(state: InspectTypeState, nodeId: number, correlationId: number | undefined): Promise<Inspection.TriedNodeScope>;