tamer: src::pipeline: Eliminate most error type references

Just cleaning up a bit, removing some unnecessary types, since there are so
many involved.

DEV-13162
main
Mike Gerwitz 2023-05-25 16:58:44 -04:00
parent ea6259570e
commit 57a805b495
3 changed files with 21 additions and 16 deletions

View File

@ -31,7 +31,8 @@ pub mod util;
pub use error::{FinalizeError, ParseError};
pub use lower::{
lowerable, terminal, Lower, LowerIter, LowerSource, ParsedObject,
lowerable, terminal, FromParseError, Lower, LowerIter, LowerSource,
ParsedObject,
};
pub use parser::{FinalizedParser, Parsed, ParsedResult, Parser};
pub use state::{

View File

@ -239,6 +239,16 @@ pub trait WidenedError<S: ParseState, LS: ParseState> = Diagnostic
+ From<ParseError<<S as ParseState>::Token, <S as ParseState>::Error>>
+ From<ParseError<<LS as ParseState>::Token, <LS as ParseState>::Error>>;
/// Convenience trait for converting [`From`] a [`ParseError`] for the
/// provided [`ParseState`] `S`.
///
/// This allows specifying this type in terms of only the [`ParseState`]
/// that is almost certainly already utilized,
/// rather than having to either import more types or use the verbose
/// associated type.
pub trait FromParseError<S: ParseState> =
From<ParseError<<S as ParseState>::Token, <S as ParseState>::Error>>;
/// A [`ParsedResult`](super::ParsedResult) with a [`WidenedError`].
pub type WidenedParsedResult<S, E> =
Result<Parsed<<S as ParseState>::Object>, E>;

View File

@ -41,21 +41,15 @@
//! see [`Lower`].
use crate::{
asg::{
air::{Air, AirAggregate, AirAggregateCtx},
AsgError,
},
asg::air::{AirAggregate, AirAggregateCtx},
diagnose::Diagnostic,
obj::xmlo::{
XmloAirContext, XmloAirError, XmloError, XmloReader, XmloToAir,
XmloToken,
},
obj::xmlo::{XmloAirContext, XmloReader, XmloToAir, XmloToken},
parse::{
FinalizeError, Lower, LowerSource, ParseError, Parsed, ParsedObject,
UnknownToken,
FinalizeError, FromParseError, Lower, LowerSource, ParseError, Parsed,
ParsedObject, UnknownToken,
},
xir::{
flat::{PartialXirToXirf, Text, XirToXirfError, XirfToken},
flat::{PartialXirToXirf, Text},
Error as XirError, Token as XirToken,
},
};
@ -76,10 +70,10 @@ pub fn load_xmlo<EO: Diagnostic + PartialEq>(
) -> Result<(AirAggregateCtx, XmloAirContext), EO>
where
EO: From<ParseError<UnknownToken, XirError>>
+ From<ParseError<XirfToken<Text>, XmloError>>
+ From<ParseError<XirToken, XirToXirfError>>
+ From<ParseError<XmloToken, XmloAirError>>
+ From<ParseError<Air, AsgError>>
+ FromParseError<PartialXirToXirf<4, Text>>
+ FromParseError<XmloReader>
+ FromParseError<XmloToAir>
+ FromParseError<AirAggregate>
+ From<FinalizeError>,
{
// TODO: This entire block is a WIP and will be incrementally