new Range[sourceInfoMap.size()]);
Arrays.sort(dependencyOrder, Range.DEPENDENCY_ORDER_COMPARATOR);
Stack<RangeInfo> dependencyScope = new Stack<RangeInfo>();
for (Range range : dependencyOrder) {
SourceInfo info = sourceInfoMap.get(range);
assert info != null;
// Infer dependency information
if (!dependencyScope.isEmpty()) {
/*
* Pop frames until we get back to a container, using this as a chance
* to build up our list of non-overlapping Ranges to report back to the
* user.
*/
while (!dependencyScope.peek().range.contains(range)) {
popAndRecord(dependencyScope, fragment);
}
}
// Possibly create and record Members
if (!sourceInfoSeen.contains(info)) {
sourceInfoSeen.add(info);
for (Correlation c : info.getPrimaryCorrelationsArray()) {
if (c == null) {
continue;
}
if (membersByCorrelation.containsKey(c)) {
continue;