@@ -693,9 +693,8 @@ impl DoubleArrayAhoCorasickBuilder {
693693 for & ( c, orig_child_idx) in & sparse_trie. nodes [ orig_node_idx] {
694694 let child_idx = self . get_child_index ( node_idx, c) . unwrap ( ) ;
695695 let mut fail_idx = self . fail [ node_idx] ;
696- loop {
696+ self . fail [ child_idx ] = loop {
697697 if let Some ( child_fail_idx) = self . get_child_index ( fail_idx, c) {
698- self . fail [ child_idx] = child_fail_idx;
699698 if self . pattern_ids [ child_fail_idx] != std:: usize:: MAX {
700699 if self . pattern_ids [ child_idx] == std:: usize:: MAX {
701700 self . pattern_ids [ child_idx] = self . pattern_ids [ child_fail_idx] ;
@@ -707,15 +706,14 @@ impl DoubleArrayAhoCorasickBuilder {
707706 self . cs_pattern_ids [ child_pattern_id] . append ( & mut fail_ids) ;
708707 }
709708 }
710- break ;
709+ break child_fail_idx ;
711710 }
712711 let next_fail_idx = self . fail [ fail_idx] ;
713712 if fail_idx == 0 && next_fail_idx == 0 {
714- self . fail [ child_idx] = 0 ;
715- break ;
713+ break 0 ;
716714 }
717715 fail_idx = next_fail_idx;
718- }
716+ } ;
719717 queue. push_back ( ( child_idx, orig_child_idx) ) ;
720718 }
721719 }
@@ -826,7 +824,7 @@ mod tests {
826824
827825 // daachorse
828826 let mut actual = HashSet :: new ( ) ;
829- let patterns_vec: Vec < _ > = patterns. iter ( ) . cloned ( ) . collect ( ) ;
827+ let patterns_vec: Vec < _ > = patterns. into_iter ( ) . collect ( ) ;
830828 let pma = DoubleArrayAhoCorasick :: new ( & patterns_vec) . unwrap ( ) ;
831829 for m in pma. find_iter ( & haystack) {
832830 actual. insert ( ( m. start ( ) , m. end ( ) , patterns_vec[ m. pattern ( ) ] . clone ( ) ) ) ;
@@ -857,7 +855,7 @@ mod tests {
857855
858856 // daachorse
859857 let mut actual = HashSet :: new ( ) ;
860- let patterns_vec: Vec < _ > = patterns. iter ( ) . cloned ( ) . collect ( ) ;
858+ let patterns_vec: Vec < _ > = patterns. into_iter ( ) . collect ( ) ;
861859 let pma = DoubleArrayAhoCorasick :: new ( & patterns_vec) . unwrap ( ) ;
862860 for m in pma. find_overlapping_iter ( & haystack) {
863861 actual. insert ( ( m. start ( ) , m. end ( ) , patterns_vec[ m. pattern ( ) ] . clone ( ) ) ) ;
0 commit comments