revset: add two new error variants to support extensions

This commit is contained in:
dploch 2024-04-16 19:25:54 -04:00 committed by Daniel Ploch
parent d13be927a8
commit cf78532bd8
2 changed files with 6 additions and 2 deletions

View file

@ -496,7 +496,8 @@ impl From<RevsetResolutionError> for CommandError {
| RevsetResolutionError::WorkspaceMissingWorkingCopy { .. }
| RevsetResolutionError::AmbiguousCommitIdPrefix(_)
| RevsetResolutionError::AmbiguousChangeIdPrefix(_)
| RevsetResolutionError::StoreError(_) => None,
| RevsetResolutionError::StoreError(_)
| RevsetResolutionError::Other(_) => None,
};
let mut cmd_err = user_error(err);
cmd_err.extend_hints(hint);

View file

@ -62,6 +62,8 @@ pub enum RevsetResolutionError {
AmbiguousChangeIdPrefix(String),
#[error("Unexpected error from store")]
StoreError(#[source] BackendError),
#[error(transparent)]
Other(#[from] Box<dyn std::error::Error + Send + Sync>),
}
/// Error occurred during revset evaluation.
@ -2283,7 +2285,8 @@ fn resolve_symbols(
| RevsetResolutionError::EmptyString
| RevsetResolutionError::AmbiguousCommitIdPrefix(_)
| RevsetResolutionError::AmbiguousChangeIdPrefix(_)
| RevsetResolutionError::StoreError(_) => Err(err),
| RevsetResolutionError::StoreError(_)
| RevsetResolutionError::Other(_) => Err(err),
})
.map(Some) // Always rewrite subtree
}