@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.
- package/lib/powerquery-language-services/analysis/analysisBase.js +2 -1
- package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +8 -6
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +1 -4
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +5 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.d.ts +37 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js +14 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js.map +1 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.d.ts +6 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js +222 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js.map +1 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.d.ts +2 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js +20 -0
- package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js.map +1 -0
- package/lib/powerquery-language-services/inspection/index.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/index.js +1 -1
- package/lib/powerquery-language-services/inspection/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scope.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +55 -38
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +3 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js +44 -63
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +10 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +5 -8
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.d.ts +2 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js +20 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.d.ts +9 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js +5 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.d.ts +7 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js +43 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/task.js +7 -23
- package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
- package/lib/powerquery-language-services/inspectionUtils.js +4 -5
- package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/libraryUtils.js +2 -1
- package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +0 -2
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
- package/package.json +3 -3
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.d.ts +0 -5
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +0 -95
- 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":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AACpD,oEAAmE;AACnE,0FAAuH;AACvH,sFAMmE;AACnE,2FAAuG;AAGvG,oCAA4F;AAC5F,uEAKoC;AACpC,6BAAsF;AACtF,uCAAsD;AAEtD,kEAAkE;AAClE,kDAAkD;AAClD,iBAAiB;AACjB,qBAAqB;AACrB,cAAc;AACd,EAAE;AACF,wFAAwF;AACxF,EAAE;AACF,uCAAuC;AACvC,4CAA4C;AAC5C,EAAE;AACF,mBAAmB;AACnB,MAAM;AACN,wCAAwC;AACxC,0FAA0F;AAC1F,KAAK;AACL,4BAA4B;AAC5B,EAAE;AACF,mBAAmB;AACnB,MAAM;AACN,wCAAwC;AACxC,2FAA2F;AAC3F,KAAK;AACL,4BAA4B;AAC5B,SAAsB,kCAAkC,CACpD,kBAAsC,EACtC,mBAAyC,EACzC,OAAiB;AACjB,qDAAqD;AACrD,0DAA0D;AAC1D,YAAuB,IAAI,GAAG,EAAE;;QAEhC,MAAM,KAAK,GAAU,kBAAkB,CAAC,YAAY,CAAC,KAAK,CACtD,+BAAuB,CAAC,YAAY,EACpC,kCAAkC,CAAC,IAAI,EACvC,kBAAkB,CAAC,oBAAoB,EACvC,cAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CACrC,CAAC;QAEF,MAAM,eAAe,mCACd,kBAAkB,KACrB,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;QAEF,IAAI;YACA,qBAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEzC,IAAI,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEjD,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;aACjG;YAED,MAAM,iBAAiB,GAGnB,MAAM,oBAAoB,CAAC,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAElG,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,OAAO,iBAAiB,CAAC;SAC5B;QAAC,OAAO,MAAe,EAAE;YACtB,0BAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAEjC,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,OAAO,+BAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;SAClG;IACL,CAAC;CAAA;AA5CD,gFA4CC;AAED,SAAe,oBAAoB,CAC/B,kBAAsC,EACtC,mBAAyC,EACzC,oBAA2E,EAC3E,SAAoB,EACpB,wBAA+E;;QAE/E,MAAM,KAAK,GAAU,kBAAkB,CAAC,YAAY,CAAC,KAAK,CACtD,+BAAuB,CAAC,YAAY,EACpC,oBAAoB,CAAC,IAAI,EACzB,kBAAkB,CAAC,oBAAoB,EACvC,cAAU,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAClD,CAAC;QAEF,MAAM,eAAe,mCACd,kBAAkB,KACrB,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;QAEF,MAAM,gBAAgB,GAA8B,EAAE,CAAC;QAEvD,MAAM,qBAAqB,GAA8B,MAAM,IAAA,kCAA0B,EACrF,eAAe,EACf,mBAAmB,EACnB,eAAe,CAAC,aAAa,EAC7B,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAChC,SAAS,CACZ,CAAC;QAEF,IAAI,+BAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;YAEnE,OAAO,qBAAqB,CAAC;SAChC;QAED,IAAI,gBAAgB,GAA2B,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAC1E,mBAAQ,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAC/D,CAAC;QAEF,IAAI,wBAAwB,GAAW,mBAAQ,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAEpG,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAChC,OAAO,sBAAsB,CACzB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,wBAAwB,CAC3B,CAAC;SACL;QAED,OAAO,gBAAgB,CAAC,IAAI,EAAE;YAC1B,MAAM,cAAc,GAAa,uBAAc,CAAC,SAAS,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAExG,QAAQ,gBAAgB,CAAC,IAAI,EAAE;gBAC3B,KAAK,qBAAa,CAAC,WAAW,CAAC;gBAC/B,KAAK,qBAAa,CAAC,WAAW,CAAC;gBAC/B,KAAK,qBAAa,CAAC,aAAa;oBAC5B,0CAA0C;oBAC1C;wBACI,MAAM,oBAAoB,GAAyB,gBAAgB,CAAC,KAAK,CAAC;wBAE1E,+DAA+D;wBAC/D,6EAA6E;wBAC7E,IAAI,oBAAoB,KAAK,SAAS,EAAE;4BACpC,OAAO,sBAAsB,CACzB,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,eAAe,EACf,wBAAwB,CAC3B,CAAC;yBACL;wBAED,sCAAsC;wBACtC,IACI,oBAAoB,KAAK,SAAS;4BAClC,qBAAY,CAAC,YAAY,CAA4C,oBAAoB,EAAE;gCACvF,cAAG,CAAC,QAAQ,CAAC,UAAU;gCACvB,cAAG,CAAC,QAAQ,CAAC,oBAAoB;6BACpC,CAAC,EACJ;4BACE,wBAAwB,GAAG,mBAAQ,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;4BAEpF,sCAAsC;4BACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;gCAC/B,0DAA0D;gCAC1D,4CAA4C;gCAC5C,MAAM,cAAc,GAA8B,MAAM,IAAA,kCAA0B,EAC9E,eAAe,EACf,mBAAmB,EACnB,eAAe,CAAC,aAAa,EAC7B,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAC5B,SAAS,CACZ,CAAC;gCAEF,IAAI,+BAAW,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oCACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;oCAE5D,OAAO,cAAc,CAAC;iCACzB;gCAED,MAAM,aAAa,GACf,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gCAEvD,IAAI,aAAa,KAAK,SAAS,EAAE;oCAC7B,OAAO,sBAAsB,CACzB,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,eAAe,EACf,wBAAwB,CAC3B,CAAC;iCACL;gCAED,gBAAgB,CAAC,IAAI,CAAC;oCAClB,IAAI,EAAE,mDAA0B,CAAC,kBAAkB;oCACnD,OAAO,EAAE,cAAc;oCACvB,iBAAiB,EAAE,wBAAwB;oCAC3C,aAAa;iCAChB,CAAC,CAAC;gCAEH,gBAAgB,GAAG,aAAa,CAAC;6BACpC;4BACD,mFAAmF;4BACnF,mBAAmB;iCACd,IAAI,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gCAC/C,OAAO,4BAA4B,CAC/B,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,wBAAwB,CAC3B,CAAC;6BACL;4BACD,oFAAoF;4BACpF,kFAAkF;iCAC7E;gCACD,MAAM,kBAAkB,GAA2B,oCAAoC,CACnF,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CACzB,CAAC;gCAEF,IAAI,kBAAkB,KAAK,SAAS,EAAE;oCAClC,OAAO,sBAAsB,CACzB,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,eAAe,EACf,wBAAwB,CAC3B,CAAC;iCACL;gCAED,gBAAgB,GAAG,kBAAkB,CAAC;6BACzC;yBACJ;6BAAM;4BACH,OAAO,cAAc,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;yBACpF;qBACJ;oBAED,MAAM;gBAEV,KAAK,qBAAa,CAAC,IAAI;oBACnB,OAAO,cAAc,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBAErF,KAAK,qBAAa,CAAC,SAAS;oBACxB,OAAO,cAAc,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBAErF,KAAK,qBAAa,CAAC,SAAS;oBACxB,gBAAgB,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,mDAA0B,CAAC,SAAS;wBAC1C,iBAAiB,EAAE,wBAAwB;wBAC3C,OAAO,EAAE,cAAc;qBAC1B,CAAC,CAAC;oBAEH,KAAK,CAAC,IAAI,EAAE,CAAC;oBAEb,OAAO,+BAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;gBAE5C;oBACI,MAAM,0BAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC9C;SACJ;QAED,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,+BAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;CAAA;AAED,iGAAiG;AACjG,sEAAsE;AACtE,oHAAoH;AACpH,SAAS,oCAAoC,CACzC,mBAAyC,EACzC,SAAoB,EACpB,iBAAyB,EACzB,aAAqB;;IAErB,IAAI,aAAa,GAAuB,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE5F,OAAO,aAAa,EAAE;QAClB,MAAM,SAAS,GAA2B,MAAA,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,0CAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/F,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACrC,OAAO,SAAS,CAAC;SACpB;QAED,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACvE;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,mGAAmG;AACnG,SAAS,sBAAsB,CAC3B,eAA0C,EAC1C,OAAiB,EACjB,KAAY,EACZ,kBAAsC,EACtC,iBAAyB;IAEzB,MAAM,YAAY,GAAgC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAC7F,qBAAiB,CAAC,gBAAgB,CAC9B,oCAAyB,CAAC,oCAAoC,CAAC,iBAAiB,CAAC,CACpF,CACJ,CAAC;IAEF,MAAM,SAAS,GAAqE,YAAY;QAC5F,CAAC,CAAC;YACI,IAAI,EAAE,mDAA0B,CAAC,QAAQ;YACzC,OAAO;YACP,iBAAiB;YACjB,IAAI,EAAE,YAAY;SACrB;QACH,CAAC,CAAC;YACI,IAAI,EAAE,mDAA0B,CAAC,SAAS;YAC1C,OAAO;YACP,iBAAiB;SACpB,CAAC;IAER,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEhC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAElD,OAAO,+BAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CACnB,eAA0C,EAC1C,OAAiB,EACjB,KAAY,EACZ,SAAqB;IAErB,eAAe,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,mDAA0B,CAAC,YAAY;QAC7C,OAAO;QACP,SAAS;KACZ,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO,+BAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,4BAA4B,CACjC,eAA0C,EAC1C,OAAiB,EACjB,KAAY,EACZ,iBAAyB;IAEzB,eAAe,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,mDAA0B,CAAC,SAAS;QAC1C,OAAO;QACP,iBAAiB;KACpB,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO,+BAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -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 "./
|
|
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("./
|
|
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,
|
|
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);
|
package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeExpression.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/invokeExpression/invokeExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AACpD,oEAAmE;AACnE,0FAAmG;AACnG,sFAMmE;AACnE,2FAAuG;AAEvG,oCAA4F;AAE5F,kCAA6C;AAC7C,4CAAyD;AAEzD,uCAAsD;AAOtD,SAAgB,mBAAmB,CAC/B,QAA4B,EAC5B,mBAAyC,EACzC,kBAA0B;AAC1B,oGAAoG;AACpG,4DAA4D;AAC5D,YAAuB,0BAAc,CAAC,UAAU,EAAE;IAElD,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,CAC5C,+BAAuB,CAAC,uBAAuB,EAC/C,mBAAmB,CAAC,IAAI,EACxB,QAAQ,CAAC,oBAAoB,CAChC,CAAC;IAEF,MAAM,eAAe,mCACd,QAAQ,KACX,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;IAEF,MAAM,MAAM,GAAmC,+BAAW,CAAC,iBAAiB,CACxE,GAAG,EAAE,CAAC,uBAAuB,CAAC,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,EAC5G,QAAQ,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC;AAzBD,kDAyBC;AAED,SAAe,uBAAuB,CAClC,QAA4B,EAC5B,mBAAyC,EACzC,kBAA0B,EAC1B,SAAoB,EACpB,aAAqB;;;QAErB,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,CAC5C,+BAAuB,CAAC,uBAAuB,EAC/C,uBAAuB,CAAC,IAAI,EAC5B,aAAa,CAChB,CAAC;QAEF,MAAA,QAAQ,CAAC,iBAAiB,0CAAE,gBAAgB,EAAE,CAAC;QAE/C,MAAM,uBAAuB,GAAyB,uBAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QAElH,IAAI,uBAAuB,KAAK,SAAS,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,kEAAkE,EAAE;gBACzG,kBAAkB;aACrB,CAAC,CAAC;SACN;QAED,qBAAY,CAAC,gBAAgB,CAAuB,uBAAuB,EAAE,cAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAE5G,MAAM,YAAY,GAAa,uBAAc,CAAC,wCAAwC,CAClF,mBAAmB,EACnB,kBAAkB,CACrB,CAAC;QAEF,MAAM,YAAY,GAAyB,+BAAW,CAAC,QAAQ,CAC3D,MAAM,IAAA,cAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAChF,CAAC;QAEF,
|
|
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
|
|
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
|
-
|
|
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 =
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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,
|
|
170
|
+
inspectKeyValuePairs(state, nodeScope, keyValuePairs, { allowRecursive: true }, scopeItemFactoryForLetVariable, trace.id);
|
|
173
171
|
// Places the assignments from the 'let' into LetExpression.expression
|
|
174
|
-
const newEntries =
|
|
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,
|
|
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 =
|
|
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,
|
|
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 =
|
|
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(
|
|
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
|
|
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
|
-
|
|
278
|
-
|
|
279
|
-
|
|
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
|
|
290
|
+
function scopeItemFactoryForLetVariable(keyValuePair, isRecursive) {
|
|
285
291
|
return {
|
|
286
|
-
kind: scope_1.ScopeItemKind.
|
|
287
|
-
|
|
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
|
|
299
|
+
function scopeItemFactoryForParameter(parameter, type) {
|
|
294
300
|
return {
|
|
295
|
-
kind: scope_1.ScopeItemKind.
|
|
296
|
-
|
|
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
|
|
319
|
+
function scopeItemFactoryForSectionMember(keyValuePair, isRecursive) {
|
|
303
320
|
return {
|
|
304
|
-
kind: scope_1.ScopeItemKind.
|
|
305
|
-
|
|
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 {
|
|
2
|
+
import { TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
|
|
4
3
|
import { Inspection } from "../../..";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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>;
|