File tree Expand file tree Collapse file tree 1 file changed +22
-2
lines changed Expand file tree Collapse file tree 1 file changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -121,7 +121,12 @@ impl<'a, S: Deref<Target = str>> IntoIterator for &'a ModifierSet<S> {
121
121
122
122
/// Iterate over the list of modifiers in an arbitrary order.
123
123
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
125
130
}
126
131
}
127
132
@@ -131,6 +136,21 @@ impl<'a> IntoIterator for ModifierSet<&'a str> {
131
136
132
137
/// Iterate over the list of modifiers in an arbitrary order.
133
138
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
135
145
}
136
146
}
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
+ }
You can’t perform that action at this time.
0 commit comments