Skip to content

Commit 2563283

Browse files
committed
Auto merge of rust-lang#289 - steffahn:clippy_more_features, r=Amanieu
Activate more features in clippy CI and fix new warnings Continuing rust-lang#288 (`@Amanieu,` you were too quick with the merge xD) <hr> Add `raw` feature to clippy-tested features but exclude `clippy::mising_safety_doc` and `clippy::missing_errors_doc` for now. These documentation lints require some nontrivial fixes, I guess I’ll open an issue. <hr> I’ve got the fixes ready already, but let’s first test if CI failure works properly with the new lints activated…
2 parents be1ae29 + 33eedbd commit 2563283

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

benches/bench.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl Iterator for RandomKeys {
3838
type Item = usize;
3939
fn next(&mut self) -> Option<usize> {
4040
// Add 1 then multiply by some 32 bit prime.
41-
self.state = self.state.wrapping_add(1).wrapping_mul(3787392781);
41+
self.state = self.state.wrapping_add(1).wrapping_mul(3_787_392_781);
4242
Some(self.state)
4343
}
4444
}

ci/tools.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ fi
3131

3232
if retry rustup component add clippy ; then
3333
cargo clippy --all --tests --features serde,rayon,bumpalo -- -D clippy::all -D clippy::pedantic
34+
cargo clippy --all --tests --features raw -- -D clippy::all -D clippy::pedantic \
35+
-A clippy::missing_safety_doc -A clippy::missing_errors_doc
3436
fi
3537

3638
if command -v shellcheck ; then

src/map.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4802,13 +4802,13 @@ mod test_map {
48024802

48034803
let mut rng = rand::thread_rng();
48044804
for n in 0..N {
4805-
let mut m = HashMap::new();
4805+
let mut map = HashMap::new();
48064806
for i in 0..n {
4807-
assert!(m.insert(i, 2 * i).is_none());
4807+
assert!(map.insert(i, 2 * i).is_none());
48084808
}
4809-
let hasher = m.hasher().clone();
4809+
let hash_builder = map.hasher().clone();
48104810

4811-
let mut it = unsafe { m.table.iter() };
4811+
let mut it = unsafe { map.table.iter() };
48124812
assert_eq!(it.len(), n);
48134813

48144814
let mut i = 0;
@@ -4817,23 +4817,23 @@ mod test_map {
48174817
loop {
48184818
// occasionally remove some elements
48194819
if i < n && rng.gen_bool(0.1) {
4820-
let mut hsh = hasher.build_hasher();
4821-
i.hash(&mut hsh);
4822-
let hash = hsh.finish();
4820+
let mut hasher = hash_builder.build_hasher();
4821+
i.hash(&mut hasher);
4822+
let hash_value = hasher.finish();
48234823

48244824
unsafe {
4825-
let e = m.table.find(hash, |q| q.0.eq(&i));
4825+
let e = map.table.find(hash_value, |q| q.0.eq(&i));
48264826
if let Some(e) = e {
48274827
it.reflect_remove(&e);
4828-
let t = m.table.remove(e);
4828+
let t = map.table.remove(e);
48294829
removed.push(t);
48304830
left -= 1;
48314831
} else {
48324832
assert!(removed.contains(&(i, 2 * i)), "{} not in {:?}", i, removed);
4833-
let e = m.table.insert(
4834-
hash,
4833+
let e = map.table.insert(
4834+
hash_value,
48354835
(i, 2 * i),
4836-
super::make_hasher::<usize, _, usize, _>(&hasher),
4836+
super::make_hasher::<usize, _, usize, _>(&hash_builder),
48374837
);
48384838
it.reflect_insert(&e);
48394839
if let Some(p) = removed.iter().position(|e| e == &(i, 2 * i)) {
@@ -4851,14 +4851,14 @@ mod test_map {
48514851
assert!(i < n);
48524852
let t = unsafe { e.unwrap().as_ref() };
48534853
assert!(!removed.contains(t));
4854-
let (k, v) = t;
4855-
assert_eq!(*v, 2 * k);
4854+
let (key, value) = t;
4855+
assert_eq!(*value, 2 * key);
48564856
i += 1;
48574857
}
48584858
assert!(i <= n);
48594859

48604860
// just for safety:
4861-
assert_eq!(m.table.len(), left);
4861+
assert_eq!(map.table.len(), left);
48624862
}
48634863
}
48644864

src/raw/mod.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,9 @@ impl<T, A: Allocator + Clone> RawTable<T, A> {
557557
pub fn erase_entry(&mut self, hash: u64, eq: impl FnMut(&T) -> bool) -> bool {
558558
// Avoid `Option::map` because it bloats LLVM IR.
559559
if let Some(bucket) = self.find(hash, eq) {
560-
unsafe { self.erase(bucket) };
560+
unsafe {
561+
self.erase(bucket);
562+
}
561563
true
562564
} else {
563565
false
@@ -600,7 +602,7 @@ impl<T, A: Allocator + Clone> RawTable<T, A> {
600602
}
601603

602604
unsafe fn drop_elements(&mut self) {
603-
if mem::needs_drop::<T>() && self.len() != 0 {
605+
if mem::needs_drop::<T>() && !self.is_empty() {
604606
for item in self.iter() {
605607
item.drop();
606608
}
@@ -924,6 +926,12 @@ impl<T, A: Allocator + Clone> RawTable<T, A> {
924926
self.table.items
925927
}
926928

929+
/// Returns `true` if the table contains no elements.
930+
#[inline]
931+
pub fn is_empty(&self) -> bool {
932+
self.len() == 0
933+
}
934+
927935
/// Returns the number of buckets in the table.
928936
#[inline]
929937
pub fn buckets(&self) -> usize {
@@ -1696,7 +1704,7 @@ impl<T: Clone, A: Allocator + Clone> RawTable<T, A> {
16961704
// to make sure we drop only the elements that have been
16971705
// cloned so far.
16981706
let mut guard = guard((0, &mut *self), |(index, self_)| {
1699-
if mem::needs_drop::<T>() && self_.len() != 0 {
1707+
if mem::needs_drop::<T>() && !self_.is_empty() {
17001708
for i in 0..=*index {
17011709
if is_full(*self_.table.ctrl(i)) {
17021710
self_.bucket(i).drop();

0 commit comments

Comments
 (0)