gitnexus 1.6.13-rc.47 → 1.6.13-rc.49
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.
|
@@ -1766,6 +1766,7 @@ export function emitReceiverBoundCalls(graph, scopes, parsedFiles, nodeLookup, h
|
|
|
1766
1766
|
const ambiguousCandidateIds = new Set();
|
|
1767
1767
|
const unknownCompatibilityCandidateIds = new Set();
|
|
1768
1768
|
const incompleteInheritanceSubtypeIds = new Set();
|
|
1769
|
+
const missingMemberSubtypeIds = new Set();
|
|
1769
1770
|
const visitedSubtypeIds = new Set([ownerDef.nodeId]);
|
|
1770
1771
|
const subtypeQueue = [ownerDef.nodeId];
|
|
1771
1772
|
let subtypeHead = 0;
|
|
@@ -1865,8 +1866,16 @@ export function emitReceiverBoundCalls(graph, scopes, parsedFiles, nodeLookup, h
|
|
|
1865
1866
|
// indexed MRO, leaving this subtype's target unproven.
|
|
1866
1867
|
incompleteInheritanceSubtypeIds.add(subtype.nodeId);
|
|
1867
1868
|
}
|
|
1868
|
-
if (subtypeAmbiguous
|
|
1869
|
+
if (subtypeAmbiguous)
|
|
1869
1870
|
continue;
|
|
1871
|
+
if (picked === undefined) {
|
|
1872
|
+
// This runtime subtype has no proven binding. Preserve
|
|
1873
|
+
// partial coverage even when a sibling supplies a target.
|
|
1874
|
+
if (!incompleteInheritanceSubtypeIds.has(subtype.nodeId)) {
|
|
1875
|
+
missingMemberSubtypeIds.add(subtype.nodeId);
|
|
1876
|
+
}
|
|
1877
|
+
continue;
|
|
1878
|
+
}
|
|
1870
1879
|
subtypeTargets.set(picked.nodeId, picked);
|
|
1871
1880
|
}
|
|
1872
1881
|
}
|
|
@@ -1886,6 +1895,7 @@ export function emitReceiverBoundCalls(graph, scopes, parsedFiles, nodeLookup, h
|
|
|
1886
1895
|
...ambiguousCandidateIds,
|
|
1887
1896
|
...unknownCompatibilityCandidateIds,
|
|
1888
1897
|
...incompleteInheritanceSubtypeIds,
|
|
1898
|
+
...missingMemberSubtypeIds,
|
|
1889
1899
|
]), MAX_INTERFACE_DISPATCH_FANOUT);
|
|
1890
1900
|
const targets = coverage.targets;
|
|
1891
1901
|
if (coverage.droppedTargets.length > 0) {
|
package/package.json
CHANGED