Files
@ ed4fe8216eb0
Branch filter:
Location: CSY/reowolf/src/runtime/error.rs - annotation
ed4fe8216eb0
1.8 KiB
application/rls-services+xml
Fix binding- and assignment-expression related typing issues.
Simpler solutions are better, so the typechecker is back to normal.
Instead we simply make sure that assignment expression is never
nested under another expression, and binding expressions may only
be nested under LogicalAnd-expressions. If only I knew why I thought
type shenanigans were a good idea in the first place...
Simpler solutions are better, so the typechecker is back to normal.
Instead we simply make sure that assignment expression is never
nested under another expression, and binding expressions may only
be nested under LogicalAnd-expressions. If only I knew why I thought
type shenanigans were a good idea in the first place...
cecf94fdb875 cecf94fdb875 65390fb1cdbc 65390fb1cdbc 65390fb1cdbc 0131beae03dc 9ed6d091a817 65390fb1cdbc 65390fb1cdbc 65390fb1cdbc 65390fb1cdbc 65390fb1cdbc 65390fb1cdbc ada07cee1f99 65390fb1cdbc cecf94fdb875 db17da820a3b db17da820a3b d76b1fe2648f b69f417a9972 db17da820a3b db17da820a3b db17da820a3b db17da820a3b db17da820a3b db17da820a3b db17da820a3b db17da820a3b 65390fb1cdbc 3f6d45f84e76 2a1875efc62c 2a1875efc62c ada07cee1f99 ada07cee1f99 2a1875efc62c 2a1875efc62c 2a1875efc62c cecf94fdb875 8642f7a7bf01 330b9c117fa5 65390fb1cdbc 2a1875efc62c 8ab15200d9a4 8ab15200d9a4 8ab15200d9a4 8ab15200d9a4 8ab15200d9a4 cecf94fdb875 65390fb1cdbc ada07cee1f99 65390fb1cdbc ada07cee1f99 65390fb1cdbc 1e7064d79bdb 1e7064d79bdb 1e7064d79bdb 8ab15200d9a4 1e7064d79bdb 1e7064d79bdb 1e7064d79bdb 1e7064d79bdb 3f6d45f84e76 3f6d45f84e76 3f6d45f84e76 3f6d45f84e76 3f6d45f84e76 3f6d45f84e76 842acacee86d 162c3306c4af 2a1875efc62c 2a1875efc62c 2a1875efc62c 2a1875efc62c 2a1875efc62c 2a1875efc62c | use crate::common::*;
#[derive(Debug)]
pub enum ConnectError {
BindFailed(SocketAddr),
UdpConnectFailed(SocketAddr),
TcpInvalidConnect(SocketAddr),
PollInitFailed,
Timeout,
PollFailed,
AcceptFailed(SocketAddr),
AlreadyConnected,
PortPeerPolarityMismatch(PortId),
NetEndpointSetupError(SocketAddr, NetEndpointError),
SetupAlgMisbehavior,
}
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
pub enum AddComponentError {
DuplicatePort(PortId),
NoSuchModule,
NoSuchComponent,
NonPortTypeParameters,
CannotMovePort(PortId),
WrongNumberOfParamaters { expected: usize },
UnknownPort(PortId),
WrongPortPolarity { port: PortId, expected_polarity: Polarity },
DuplicateMovedPort(PortId),
}
////////////////////////
#[derive(Debug, Clone)]
pub enum UnrecoverableSyncError {
PollFailed,
BrokenNetEndpoint { index: usize },
BrokenUdpEndpoint { index: usize },
MalformedStateError(MalformedStateError),
}
#[derive(Debug, Clone)]
pub enum SyncError {
NotConnected,
InconsistentProtoComponent(ComponentId),
RoundFailure,
Unrecoverable(UnrecoverableSyncError),
}
#[derive(Debug, Clone)]
pub enum MalformedStateError {
PortCannotPut(PortId),
GetterUnknownFor { putter: PortId },
}
#[derive(Debug, Clone)]
pub enum NetEndpointError {
MalformedMessage,
BrokenNetEndpoint,
}
#[derive(Debug)]
pub enum PortOpError {
WrongPolarity,
UnknownPolarity,
NotConnected,
MultipleOpsOnPort,
PortUnavailable,
}
#[derive(Debug, Eq, PartialEq)]
pub enum GottenError {
NoPreviousRound,
PortDidntGet,
PreviousSyncFailed,
}
#[derive(Debug, Eq, PartialEq)]
pub struct WrongStateError;
/////////////////////
impl From<UnrecoverableSyncError> for SyncError {
fn from(e: UnrecoverableSyncError) -> Self {
Self::Unrecoverable(e)
}
}
|