Skip to content

Commit 65e5b01

Browse files
committed
Fix iterator for empty ModifierSet
1 parent 17d2dff commit 65e5b01

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

src/shared.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,12 @@ impl<'a, S: Deref<Target = str>> IntoIterator for &'a ModifierSet<S> {
121121

122122
/// Iterate over the list of modifiers in an arbitrary order.
123123
fn into_iter(self) -> Self::IntoIter {
124-
self.0.split('.')
124+
let mut iter = self.0.split('.');
125+
if self.0.is_empty() {
126+
// empty the iterator
127+
let _ = iter.next();
128+
}
129+
iter
125130
}
126131
}
127132

@@ -131,6 +136,21 @@ impl<'a> IntoIterator for ModifierSet<&'a str> {
131136

132137
/// Iterate over the list of modifiers in an arbitrary order.
133138
fn into_iter(self) -> Self::IntoIter {
134-
self.0.split('.')
139+
let mut iter = self.0.split('.');
140+
if self.0.is_empty() {
141+
// empty the iterator
142+
let _ = iter.next();
143+
}
144+
iter
135145
}
136146
}
147+
148+
#[cfg(test)]
149+
mod tests {
150+
type ModifierSet = super::ModifierSet<&'static str>;
151+
152+
#[test]
153+
fn empty_set_empty_iter() {
154+
assert_eq!(ModifierSet::default().iter().count(), 0);
155+
}
156+
}

0 commit comments

Comments
 (0)