Unify dist error handling (#9659)

This came up when trying to improve the build error reporting.
Introduces `DistErrorKind` to avoid error variants for each case that
are only different in one line of the message.
This commit is contained in:
konsti 2024-12-06 02:54:14 +01:00 committed by GitHub
parent dc82a84841
commit 890fb10fa1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 163 additions and 310 deletions

View file

@ -277,26 +277,12 @@ impl<'a> BuildContext for BuildDispatch<'a> {
.prepare(remote, &self.shared_state.in_flight)
.await
.map_err(|err| match err {
uv_installer::PrepareError::DownloadAndBuild(dist, chain, err) => {
uv_installer::PrepareError::Dist(kind, dist, chain, err) => {
debug_assert!(chain.is_empty());
let chain =
DerivationChainBuilder::from_resolution(resolution, (&*dist).into())
.unwrap_or_default();
uv_installer::PrepareError::DownloadAndBuild(dist, chain, err)
}
uv_installer::PrepareError::Download(dist, chain, err) => {
debug_assert!(chain.is_empty());
let chain =
DerivationChainBuilder::from_resolution(resolution, (&*dist).into())
.unwrap_or_default();
uv_installer::PrepareError::Download(dist, chain, err)
}
uv_installer::PrepareError::Build(dist, chain, err) => {
debug_assert!(chain.is_empty());
let chain =
DerivationChainBuilder::from_resolution(resolution, (&*dist).into())
.unwrap_or_default();
uv_installer::PrepareError::Build(dist, chain, err)
uv_installer::PrepareError::Dist(kind, dist, chain, err)
}
_ => err,
})?