fn finish()

in guppy/src/graph/summaries/package_set.rs [666:724]


    fn finish(self, graph: &PackageGraph, error_message: impl Into<String>) -> Result<(), Error> {
        let mut unknown_summary_ids: Vec<_> = self
            .summary_ids
            .into_iter()
            .filter_map(
                |(summary_id, matched)| {
                    if matched {
                        None
                    } else {
                        Some(summary_id)
                    }
                },
            )
            .cloned()
            .collect();
        unknown_summary_ids.sort_unstable();

        let workspace = graph.workspace();
        let unknown_workspace_members: Vec<_> = self
            .workspace_members
            .iter()
            .filter_map(|member| {
                if workspace.contains_name(member) {
                    None
                } else {
                    Some(member.clone())
                }
            })
            .collect();

        let mut unknown_third_party: Vec<_> =
            self.third_party
                .into_iter()
                .flat_map(|(_, summaries)| {
                    summaries.into_iter().filter_map(|(summary, matched)| {
                        if matched {
                            None
                        } else {
                            Some(summary.clone())
                        }
                    })
                })
                .collect();
        unknown_third_party.sort_by(|x, y| x.name.cmp(&y.name));

        if unknown_summary_ids.is_empty()
            && unknown_workspace_members.is_empty()
            && unknown_third_party.is_empty()
        {
            Ok(())
        } else {
            Err(UnknownPackageSetSummary {
                message: error_message.into(),
                unknown_summary_ids,
                unknown_workspace_members,
                unknown_third_party,
            })
        }
    }