@effect/language-service 0.62.3 → 0.62.5
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/cli.js +3 -1
- package/cli.js.map +1 -1
- package/effect-lsp-patch-utils.js +3 -1
- package/effect-lsp-patch-utils.js.map +1 -1
- package/index.js +69 -76
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/transform.js +3 -1
- package/transform.js.map +1 -1
package/index.js
CHANGED
|
@@ -745,6 +745,7 @@ var isNonEmptyArray = (self) => self.length > 0;
|
|
|
745
745
|
var make2 = (compare) => (self, that) => self === that ? 0 : compare(self, that);
|
|
746
746
|
var string2 = /* @__PURE__ */ make2((self, that) => self < that ? -1 : 1);
|
|
747
747
|
var number2 = /* @__PURE__ */ make2((self, that) => self < that ? -1 : 1);
|
|
748
|
+
var reverse = (O) => make2((self, that) => O(that, self));
|
|
748
749
|
var mapInput = /* @__PURE__ */ dual(2, (self, f) => make2((b1, b2) => self(f(b1), f(b2))));
|
|
749
750
|
|
|
750
751
|
// node_modules/.pnpm/effect@3.19.0/node_modules/effect/dist/esm/Option.js
|
|
@@ -793,7 +794,7 @@ var unsafeGet = /* @__PURE__ */ dual(2, (self, index) => {
|
|
|
793
794
|
var head = /* @__PURE__ */ get(0);
|
|
794
795
|
var headNonEmpty = /* @__PURE__ */ unsafeGet(0);
|
|
795
796
|
var tailNonEmpty = (self) => self.slice(1);
|
|
796
|
-
var
|
|
797
|
+
var reverse2 = (self) => Array.from(self).reverse();
|
|
797
798
|
var sort = /* @__PURE__ */ dual(2, (self, O) => {
|
|
798
799
|
const out = Array.from(self);
|
|
799
800
|
out.sort(O);
|
|
@@ -1032,21 +1033,21 @@ var reverseChunk = (self) => {
|
|
|
1032
1033
|
case "IArray": {
|
|
1033
1034
|
return makeChunk({
|
|
1034
1035
|
_tag: "IArray",
|
|
1035
|
-
array:
|
|
1036
|
+
array: reverse2(self.backing.array)
|
|
1036
1037
|
});
|
|
1037
1038
|
}
|
|
1038
1039
|
case "IConcat": {
|
|
1039
1040
|
return makeChunk({
|
|
1040
1041
|
_tag: "IConcat",
|
|
1041
|
-
left:
|
|
1042
|
-
right:
|
|
1042
|
+
left: reverse3(self.backing.right),
|
|
1043
|
+
right: reverse3(self.backing.left)
|
|
1043
1044
|
});
|
|
1044
1045
|
}
|
|
1045
1046
|
case "ISlice":
|
|
1046
|
-
return unsafeFromArray(
|
|
1047
|
+
return unsafeFromArray(reverse2(toReadonlyArray(self)));
|
|
1047
1048
|
}
|
|
1048
1049
|
};
|
|
1049
|
-
var
|
|
1050
|
+
var reverse3 = reverseChunk;
|
|
1050
1051
|
var unsafeFromArray = (self) => self.length === 0 ? empty2() : self.length === 1 ? of(self[0]) : makeChunk({
|
|
1051
1052
|
_tag: "IArray",
|
|
1052
1053
|
array: self
|
|
@@ -1903,7 +1904,7 @@ var flattenCauseLoop = (causes, flattened) => {
|
|
|
1903
1904
|
}));
|
|
1904
1905
|
const updated = size3(parallel2) > 0 ? pipe(flattened, prepend(parallel2)) : flattened;
|
|
1905
1906
|
if (isEmpty(sequential2)) {
|
|
1906
|
-
return
|
|
1907
|
+
return reverse3(updated);
|
|
1907
1908
|
}
|
|
1908
1909
|
causes = sequential2;
|
|
1909
1910
|
flattened = updated;
|
|
@@ -2750,7 +2751,7 @@ var addNode = (mutable, data) => {
|
|
|
2750
2751
|
var getNode = (graph, nodeIndex) => graph.nodes.has(nodeIndex) ? some2(graph.nodes.get(nodeIndex)) : none2();
|
|
2751
2752
|
var hasNode = (graph, nodeIndex) => graph.nodes.has(nodeIndex);
|
|
2752
2753
|
var nodeCount = (graph) => graph.nodes.size;
|
|
2753
|
-
var
|
|
2754
|
+
var reverse4 = (mutable) => {
|
|
2754
2755
|
for (const [index, edgeData] of mutable.edges) {
|
|
2755
2756
|
mutable.edges.set(index, {
|
|
2756
2757
|
source: edgeData.target,
|
|
@@ -3009,70 +3010,6 @@ var Walker = class {
|
|
|
3009
3010
|
var indices = (walker) => walker.visit((index, _) => index);
|
|
3010
3011
|
var values2 = (walker) => walker.visit((_, data) => data);
|
|
3011
3012
|
var entries = (walker) => walker.visit((index, data) => [index, data]);
|
|
3012
|
-
var dfsPostOrder = (graph, config = {}) => {
|
|
3013
|
-
const start = config.start ?? [];
|
|
3014
|
-
const direction = config.direction ?? "outgoing";
|
|
3015
|
-
for (const nodeIndex of start) {
|
|
3016
|
-
if (!hasNode(graph, nodeIndex)) {
|
|
3017
|
-
throw missingNode(nodeIndex);
|
|
3018
|
-
}
|
|
3019
|
-
}
|
|
3020
|
-
return new Walker((f) => ({
|
|
3021
|
-
[Symbol.iterator]: () => {
|
|
3022
|
-
const stack = [];
|
|
3023
|
-
const discovered = /* @__PURE__ */ new Set();
|
|
3024
|
-
const finished = /* @__PURE__ */ new Set();
|
|
3025
|
-
for (let i = start.length - 1; i >= 0; i--) {
|
|
3026
|
-
stack.push({
|
|
3027
|
-
node: start[i],
|
|
3028
|
-
visitedChildren: false
|
|
3029
|
-
});
|
|
3030
|
-
}
|
|
3031
|
-
const nextMapped = () => {
|
|
3032
|
-
while (stack.length > 0) {
|
|
3033
|
-
const current = stack[stack.length - 1];
|
|
3034
|
-
if (!discovered.has(current.node)) {
|
|
3035
|
-
discovered.add(current.node);
|
|
3036
|
-
current.visitedChildren = false;
|
|
3037
|
-
}
|
|
3038
|
-
if (!current.visitedChildren) {
|
|
3039
|
-
current.visitedChildren = true;
|
|
3040
|
-
const neighbors = neighborsDirected(graph, current.node, direction);
|
|
3041
|
-
for (let i = neighbors.length - 1; i >= 0; i--) {
|
|
3042
|
-
const neighbor = neighbors[i];
|
|
3043
|
-
if (!discovered.has(neighbor) && !finished.has(neighbor)) {
|
|
3044
|
-
stack.push({
|
|
3045
|
-
node: neighbor,
|
|
3046
|
-
visitedChildren: false
|
|
3047
|
-
});
|
|
3048
|
-
}
|
|
3049
|
-
}
|
|
3050
|
-
} else {
|
|
3051
|
-
const nodeToEmit = stack.pop().node;
|
|
3052
|
-
if (!finished.has(nodeToEmit)) {
|
|
3053
|
-
finished.add(nodeToEmit);
|
|
3054
|
-
const nodeData = getNode(graph, nodeToEmit);
|
|
3055
|
-
if (isSome2(nodeData)) {
|
|
3056
|
-
return {
|
|
3057
|
-
done: false,
|
|
3058
|
-
value: f(nodeToEmit, nodeData.value)
|
|
3059
|
-
};
|
|
3060
|
-
}
|
|
3061
|
-
return nextMapped();
|
|
3062
|
-
}
|
|
3063
|
-
}
|
|
3064
|
-
}
|
|
3065
|
-
return {
|
|
3066
|
-
done: true,
|
|
3067
|
-
value: void 0
|
|
3068
|
-
};
|
|
3069
|
-
};
|
|
3070
|
-
return {
|
|
3071
|
-
next: nextMapped
|
|
3072
|
-
};
|
|
3073
|
-
}
|
|
3074
|
-
}));
|
|
3075
|
-
};
|
|
3076
3013
|
var nodes = (graph) => new Walker((f) => ({
|
|
3077
3014
|
[Symbol.iterator]() {
|
|
3078
3015
|
const nodeMap = graph.nodes;
|
|
@@ -4008,7 +3945,9 @@ function makeTypeScriptUtils(ts) {
|
|
|
4008
3945
|
} else {
|
|
4009
3946
|
return;
|
|
4010
3947
|
}
|
|
4011
|
-
|
|
3948
|
+
const importDeclaration = ts.findAncestor(accessedObject, ts.isImportDeclaration);
|
|
3949
|
+
if (importDeclaration) return;
|
|
3950
|
+
return { accessedObject, outerNode, replacementSpan, insideImportDeclaration: !!importDeclaration };
|
|
4012
3951
|
}
|
|
4013
3952
|
function parseDataForExtendsClassCompletion(sourceFile, position) {
|
|
4014
3953
|
const maybeInfos = parseAccessedExpressionForCompletion(sourceFile, position);
|
|
@@ -8216,7 +8155,7 @@ var missedPipeableOpportunity = createDiagnostic({
|
|
|
8216
8155
|
parentChain,
|
|
8217
8156
|
filter(ts.isCallExpression),
|
|
8218
8157
|
map4((call) => call.expression),
|
|
8219
|
-
|
|
8158
|
+
reverse2
|
|
8220
8159
|
)
|
|
8221
8160
|
)
|
|
8222
8161
|
);
|
|
@@ -15843,6 +15782,54 @@ _${formatSourceFileNameLineAndColumn(ts, tsUtils, tsNode, fromSourceFile)}_`;
|
|
|
15843
15782
|
});
|
|
15844
15783
|
}
|
|
15845
15784
|
);
|
|
15785
|
+
var dfsPostOrderWithOrder = (graph, config) => {
|
|
15786
|
+
const start = config.start ?? [];
|
|
15787
|
+
const direction = config.direction ?? "outgoing";
|
|
15788
|
+
const orderByIndex = mapInput(config.order, (_) => graph.nodes.get(_));
|
|
15789
|
+
return new Walker((f) => ({
|
|
15790
|
+
[Symbol.iterator]: () => {
|
|
15791
|
+
const stack = [];
|
|
15792
|
+
const discovered = /* @__PURE__ */ new Set();
|
|
15793
|
+
const finished = /* @__PURE__ */ new Set();
|
|
15794
|
+
const sortedStart = sort(start, orderByIndex);
|
|
15795
|
+
for (let i = sortedStart.length - 1; i >= 0; i--) {
|
|
15796
|
+
stack.push({ node: sortedStart[i], visitedChildren: false });
|
|
15797
|
+
}
|
|
15798
|
+
const nextMapped = () => {
|
|
15799
|
+
while (stack.length > 0) {
|
|
15800
|
+
const current = stack[stack.length - 1];
|
|
15801
|
+
if (!discovered.has(current.node)) {
|
|
15802
|
+
discovered.add(current.node);
|
|
15803
|
+
current.visitedChildren = false;
|
|
15804
|
+
}
|
|
15805
|
+
if (!current.visitedChildren) {
|
|
15806
|
+
current.visitedChildren = true;
|
|
15807
|
+
const neighbors = neighborsDirected(graph, current.node, direction);
|
|
15808
|
+
const sortedNeighbors = sort(neighbors, orderByIndex);
|
|
15809
|
+
for (let i = sortedNeighbors.length - 1; i >= 0; i--) {
|
|
15810
|
+
const neighbor = sortedNeighbors[i];
|
|
15811
|
+
if (!discovered.has(neighbor) && !finished.has(neighbor)) {
|
|
15812
|
+
stack.push({ node: neighbor, visitedChildren: false });
|
|
15813
|
+
}
|
|
15814
|
+
}
|
|
15815
|
+
} else {
|
|
15816
|
+
const nodeToEmit = stack.pop().node;
|
|
15817
|
+
if (!finished.has(nodeToEmit)) {
|
|
15818
|
+
finished.add(nodeToEmit);
|
|
15819
|
+
const nodeData = getNode(graph, nodeToEmit);
|
|
15820
|
+
if (isSome2(nodeData)) {
|
|
15821
|
+
return { done: false, value: f(nodeToEmit, nodeData.value) };
|
|
15822
|
+
}
|
|
15823
|
+
return nextMapped();
|
|
15824
|
+
}
|
|
15825
|
+
}
|
|
15826
|
+
}
|
|
15827
|
+
return { done: true, value: void 0 };
|
|
15828
|
+
};
|
|
15829
|
+
return { next: nextMapped };
|
|
15830
|
+
}
|
|
15831
|
+
}));
|
|
15832
|
+
};
|
|
15846
15833
|
var convertOutlineGraphToLayerMagic = fn("convertOutlineGraphToLayerMagic")(
|
|
15847
15834
|
function* (outlineGraph, targetOutput) {
|
|
15848
15835
|
const typeCheckerUtils = yield* service(TypeCheckerUtils);
|
|
@@ -15850,9 +15837,15 @@ var convertOutlineGraphToLayerMagic = fn("convertOutlineGraphToLayerMagic")(
|
|
|
15850
15837
|
const result = [];
|
|
15851
15838
|
const missingOutputTypes = new Set(typeCheckerUtils.unrollUnionMembers(targetOutput));
|
|
15852
15839
|
const currentRequiredTypes = /* @__PURE__ */ new Set();
|
|
15853
|
-
const
|
|
15840
|
+
const orderByProvidedCount = mapInput(
|
|
15841
|
+
reverse(number2),
|
|
15842
|
+
(_) => _.provides.length
|
|
15843
|
+
);
|
|
15844
|
+
const reversedGraph = mutate2(outlineGraph, reverse4);
|
|
15854
15845
|
const rootIndexes = fromIterable(indices(externals(reversedGraph, { direction: "incoming" })));
|
|
15855
|
-
const allNodes = fromIterable(
|
|
15846
|
+
const allNodes = fromIterable(
|
|
15847
|
+
values2(dfsPostOrderWithOrder(reversedGraph, { start: rootIndexes, order: orderByProvidedCount }))
|
|
15848
|
+
);
|
|
15856
15849
|
for (const nodeInfo of allNodes) {
|
|
15857
15850
|
if (!ts.isExpression(nodeInfo.node)) continue;
|
|
15858
15851
|
const reallyProvidedTypes = nodeInfo.provides.filter((_) => nodeInfo.requires.indexOf(_) === -1);
|