@@ -208,9 +208,7 @@ pub fn glob_with(pattern: &str, options: MatchOptions) -> Result<Paths, PatternE
208208 }
209209
210210 // make sure that the pattern is valid first, else early return with error
211- if let Err ( err) = Pattern :: new ( pattern) {
212- return Err ( err) ;
213- }
211+ let _ = Pattern :: new ( pattern) ?;
214212
215213 let mut components = Path :: new ( pattern) . components ( ) . peekable ( ) ;
216214 loop {
@@ -391,7 +389,7 @@ impl Iterator for Paths {
391389 if let Some ( scope) = self . scope . take ( ) {
392390 if !self . dir_patterns . is_empty ( ) {
393391 // Shouldn't happen, but we're using -1 as a special index.
394- assert ! ( self . dir_patterns. len( ) < ! 0 as usize ) ;
392+ assert ! ( self . dir_patterns. len( ) < std :: usize :: MAX ) ;
395393
396394 fill_todo ( & mut self . todo , & self . dir_patterns , 0 , & scope, self . options ) ;
397395 }
@@ -409,7 +407,7 @@ impl Iterator for Paths {
409407
410408 // idx -1: was already checked by fill_todo, maybe path was '.' or
411409 // '..' that we can't match here because of normalization.
412- if idx == ! 0 as usize {
410+ if idx == std :: usize:: MAX {
413411 if self . require_dir && !path. is_directory {
414412 continue ;
415413 }
@@ -843,8 +841,8 @@ impl Pattern {
843841 false
844842 }
845843 AnyChar => true ,
846- AnyWithin ( ref specifiers) => in_char_specifiers ( & specifiers, c, options) ,
847- AnyExcept ( ref specifiers) => !in_char_specifiers ( & specifiers, c, options) ,
844+ AnyWithin ( ref specifiers) => in_char_specifiers ( specifiers, c, options) ,
845+ AnyExcept ( ref specifiers) => !in_char_specifiers ( specifiers, c, options) ,
848846 Char ( c2) => chars_eq ( c, c2, options. case_sensitive ) ,
849847 AnySequence | AnyRecursiveSequence => unreachable ! ( ) ,
850848 } {
@@ -892,7 +890,7 @@ fn fill_todo(
892890 // We know it's good, so don't make the iterator match this path
893891 // against the pattern again. In particular, it can't match
894892 // . or .. globs since these never show up as path components.
895- todo. push ( Ok ( ( next_path, ! 0 as usize ) ) ) ;
893+ todo. push ( Ok ( ( next_path, std :: usize:: MAX ) ) ) ;
896894 } else {
897895 fill_todo ( todo, patterns, idx + 1 , & next_path, options) ;
898896 }
@@ -941,7 +939,7 @@ fn fill_todo(
941939 Ok ( mut children) => {
942940 if options. require_literal_leading_dot {
943941 children
944- . retain ( |x| !x. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) . starts_with ( "." ) ) ;
942+ . retain ( |x| !x. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) . starts_with ( '.' ) ) ;
945943 }
946944 children. sort_by ( |p1, p2| p2. file_name ( ) . cmp ( & p1. file_name ( ) ) ) ;
947945 todo. extend ( children. into_iter ( ) . map ( |x| Ok ( ( x, idx) ) ) ) ;
@@ -1490,12 +1488,12 @@ mod test {
14901488 fn test_matches_path ( ) {
14911489 // on windows, (Path::new("a/b").as_str().unwrap() == "a\\b"), so this
14921490 // tests that / and \ are considered equivalent on windows
1493- assert ! ( Pattern :: new( "a/b" ) . unwrap( ) . matches_path( & Path :: new( "a/b" ) ) ) ;
1491+ assert ! ( Pattern :: new( "a/b" ) . unwrap( ) . matches_path( Path :: new( "a/b" ) ) ) ;
14941492 }
14951493
14961494 #[ test]
14971495 fn test_path_join ( ) {
1498- let pattern = Path :: new ( "one" ) . join ( & Path :: new ( "**/*.rs" ) ) ;
1496+ let pattern = Path :: new ( "one" ) . join ( Path :: new ( "**/*.rs" ) ) ;
14991497 assert ! ( Pattern :: new( pattern. to_str( ) . unwrap( ) ) . is_ok( ) ) ;
15001498 }
15011499}
0 commit comments