@effect/language-service 0.62.3 → 0.62.4
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/index.js +66 -75
- package/index.js.map +1 -1
- package/package.json +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;
|
|
@@ -8216,7 +8153,7 @@ var missedPipeableOpportunity = createDiagnostic({
|
|
|
8216
8153
|
parentChain,
|
|
8217
8154
|
filter(ts.isCallExpression),
|
|
8218
8155
|
map4((call) => call.expression),
|
|
8219
|
-
|
|
8156
|
+
reverse2
|
|
8220
8157
|
)
|
|
8221
8158
|
)
|
|
8222
8159
|
);
|
|
@@ -15843,6 +15780,54 @@ _${formatSourceFileNameLineAndColumn(ts, tsUtils, tsNode, fromSourceFile)}_`;
|
|
|
15843
15780
|
});
|
|
15844
15781
|
}
|
|
15845
15782
|
);
|
|
15783
|
+
var dfsPostOrderWithOrder = (graph, config) => {
|
|
15784
|
+
const start = config.start ?? [];
|
|
15785
|
+
const direction = config.direction ?? "outgoing";
|
|
15786
|
+
const orderByIndex = mapInput(config.order, (_) => graph.nodes.get(_));
|
|
15787
|
+
return new Walker((f) => ({
|
|
15788
|
+
[Symbol.iterator]: () => {
|
|
15789
|
+
const stack = [];
|
|
15790
|
+
const discovered = /* @__PURE__ */ new Set();
|
|
15791
|
+
const finished = /* @__PURE__ */ new Set();
|
|
15792
|
+
const sortedStart = sort(start, orderByIndex);
|
|
15793
|
+
for (let i = sortedStart.length - 1; i >= 0; i--) {
|
|
15794
|
+
stack.push({ node: sortedStart[i], visitedChildren: false });
|
|
15795
|
+
}
|
|
15796
|
+
const nextMapped = () => {
|
|
15797
|
+
while (stack.length > 0) {
|
|
15798
|
+
const current = stack[stack.length - 1];
|
|
15799
|
+
if (!discovered.has(current.node)) {
|
|
15800
|
+
discovered.add(current.node);
|
|
15801
|
+
current.visitedChildren = false;
|
|
15802
|
+
}
|
|
15803
|
+
if (!current.visitedChildren) {
|
|
15804
|
+
current.visitedChildren = true;
|
|
15805
|
+
const neighbors = neighborsDirected(graph, current.node, direction);
|
|
15806
|
+
const sortedNeighbors = sort(neighbors, orderByIndex);
|
|
15807
|
+
for (let i = sortedNeighbors.length - 1; i >= 0; i--) {
|
|
15808
|
+
const neighbor = sortedNeighbors[i];
|
|
15809
|
+
if (!discovered.has(neighbor) && !finished.has(neighbor)) {
|
|
15810
|
+
stack.push({ node: neighbor, visitedChildren: false });
|
|
15811
|
+
}
|
|
15812
|
+
}
|
|
15813
|
+
} else {
|
|
15814
|
+
const nodeToEmit = stack.pop().node;
|
|
15815
|
+
if (!finished.has(nodeToEmit)) {
|
|
15816
|
+
finished.add(nodeToEmit);
|
|
15817
|
+
const nodeData = getNode(graph, nodeToEmit);
|
|
15818
|
+
if (isSome2(nodeData)) {
|
|
15819
|
+
return { done: false, value: f(nodeToEmit, nodeData.value) };
|
|
15820
|
+
}
|
|
15821
|
+
return nextMapped();
|
|
15822
|
+
}
|
|
15823
|
+
}
|
|
15824
|
+
}
|
|
15825
|
+
return { done: true, value: void 0 };
|
|
15826
|
+
};
|
|
15827
|
+
return { next: nextMapped };
|
|
15828
|
+
}
|
|
15829
|
+
}));
|
|
15830
|
+
};
|
|
15846
15831
|
var convertOutlineGraphToLayerMagic = fn("convertOutlineGraphToLayerMagic")(
|
|
15847
15832
|
function* (outlineGraph, targetOutput) {
|
|
15848
15833
|
const typeCheckerUtils = yield* service(TypeCheckerUtils);
|
|
@@ -15850,9 +15835,15 @@ var convertOutlineGraphToLayerMagic = fn("convertOutlineGraphToLayerMagic")(
|
|
|
15850
15835
|
const result = [];
|
|
15851
15836
|
const missingOutputTypes = new Set(typeCheckerUtils.unrollUnionMembers(targetOutput));
|
|
15852
15837
|
const currentRequiredTypes = /* @__PURE__ */ new Set();
|
|
15853
|
-
const
|
|
15838
|
+
const orderByProvidedCount = mapInput(
|
|
15839
|
+
reverse(number2),
|
|
15840
|
+
(_) => _.provides.length
|
|
15841
|
+
);
|
|
15842
|
+
const reversedGraph = mutate2(outlineGraph, reverse4);
|
|
15854
15843
|
const rootIndexes = fromIterable(indices(externals(reversedGraph, { direction: "incoming" })));
|
|
15855
|
-
const allNodes = fromIterable(
|
|
15844
|
+
const allNodes = fromIterable(
|
|
15845
|
+
values2(dfsPostOrderWithOrder(reversedGraph, { start: rootIndexes, order: orderByProvidedCount }))
|
|
15846
|
+
);
|
|
15856
15847
|
for (const nodeInfo of allNodes) {
|
|
15857
15848
|
if (!ts.isExpression(nodeInfo.node)) continue;
|
|
15858
15849
|
const reallyProvidedTypes = nodeInfo.provides.filter((_) => nodeInfo.requires.indexOf(_) === -1);
|