-A clippy::needless_collect # rust-clippy/issues/8046, since Nov 2021 at least
-A clippy::match_ref_pats
-A clippy::needless_question_mark
+-A clippy::needless_return
+-A clippy::if_same_then_else # rust-clippy/issues/6285 etc.
+-A clippy::redundant_pattern_matching
+-A clippy::unnecessary_lazy_evaluations
impl IPieceTraitObj {
pub fn new(p: Box<dyn PieceTrait>) -> Self { Self(p) }
- pub fn show(&self, _: ShowUnocculted) -> &Box<dyn PieceTrait> {
- &self.0
+ pub fn show(&self, _: ShowUnocculted) -> &dyn PieceTrait {
+ &*self.0
}
pub fn into_inner(self) -> Box<dyn PieceTrait> { self.0 }
- pub fn direct_trait_access(&self) -> &Box<dyn PieceTrait> {
- &self.0
+ pub fn direct_trait_access(&self) -> &dyn PieceTrait {
+ &*self.0
}
}
dbgc!(most_obscure);
let describe_occulter = |oni| Ok::<_,IE>(if_chain! {
- if let Some(ref h) = occulteds.as_refs().main()[oni];
+ if let Some(h) = occulteds.as_refs().main()[oni];
let opiece = h.occ.occulter;
let bad = || internal_error_bydebug(&("missing", opiece, h.occid));
let oipc = ipieces.get(opiece).ok_or_else(bad)?;
players
};
- players.into_iter().filter(
+ players.into_iter().find(
|(_,mpi)| &mpi.account == account
- ).next()
+ )
}
#[throws(AE)]
let PrimaryEnt { piece, bbox, .. } = &pieces[ih];
let place = 'placed: loop {
for xi in 0..3 {
- let place = (cur - att.tl(&bbox)?)?;
- let br_real = (place + att.br_real(&bbox)?)?;
+ let place = (cur - att.tl(bbox)?)?;
+ let br_real = (place + att.br_real(bbox)?)?;
let tr = |w| {
trace_dbg!("attempt inner",
region, att, piece, bbox, xi, cur, n_y,
}
throw!(IE::OrganisedPlacementFailure);
};
- let br_tile = ((place + att.tl(&bbox)?)? + att.stride(&bbox)?)?;
+ let br_tile = ((place + att.tl(bbox)?)? + att.stride(bbox)?)?;
cur.coords[0] = br_tile.x();
n_y = max(n_y, br_tile.y());
out.push(place);
let ApiPieceOpArgs { ref mut gs, player,ipieces,ioccults,.. } = *a;
let apiece = a.piece;
let agpc = gs.pieces.byid(apiece)?;
- let aipc = ipieces.get(apiece).ok_or(internal_error_bydebug(&apiece))?;
+ let aipc = ipieces.get(apiece)
+ .ok_or_else(|| internal_error_bydebug(&apiece))?;
let gpl = gs.players.byid(player)?;
let log = log_did_to_piece(ioccults, &gs.occults, gpl,agpc,aipc,
"organised")?;
let ipc = ipc.show(vis);
if let Some(bbox) = want!( Ok = ipc.bbox_approx(), ?piece );
let sortkey = if do_sort {
- Some(ipc.sortkey().unwrap_or(ipc.itemname()))
+ Some(ipc.sortkey().unwrap_or_else(|| ipc.itemname()))
} else {
None
};
use PriOcculted as PO;
match &self.occulted {
PO::Visible(_) | PO::Occulted => (gpc.pos, &gpc.zlevel),
- PO::Displaced(pos, zlevel) => (*pos, &zlevel),
+ PO::Displaced(pos, zlevel) => (*pos, zlevel),
}
}
#[throws(IE)]
- pub fn make_defs<'p>(&self, ioccults: &IOccults, gs: &GameState,
- gpc: &GPiece, ipc: &IPiece) -> (Html, Rect)
+ pub fn make_defs(&self, ioccults: &IOccults, gs: &GameState,
+ gpc: &GPiece, ipc: &IPiece) -> (Html, Rect)
{
let pri = self;
let instead = pri.instead(ioccults, ipc)?;