Merge pull request #5573 from CodeMan62/fix-5555

Only intern in case of typo when looking for one or two typoes
This commit is contained in:
Louis Dureuil 2025-05-20 09:17:35 +00:00 committed by GitHub
commit 8068337b07
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -131,10 +131,11 @@ fn find_one_two_typo_derivations(
while let Some((derived_word, state)) = stream.next() { while let Some((derived_word, state)) = stream.next() {
let derived_word = std::str::from_utf8(derived_word)?; let derived_word = std::str::from_utf8(derived_word)?;
let derived_word_interned = word_interner.insert(derived_word.to_owned()); // No need to intern here
// in the case the typo is on the first letter, we know the number of typo // in the case the typo is on the first letter, we know the number of typo
// is two // is two
if get_first(derived_word) != get_first(word) { if get_first(derived_word) != get_first(word) {
let derived_word_interned = word_interner.insert(derived_word.to_owned());
let cf = visit(derived_word_interned, NumberOfTypos::Two)?; let cf = visit(derived_word_interned, NumberOfTypos::Two)?;
if cf.is_break() { if cf.is_break() {
break; break;
@ -146,12 +147,14 @@ fn find_one_two_typo_derivations(
match d.to_u8() { match d.to_u8() {
0 => (), 0 => (),
1 => { 1 => {
let derived_word_interned = word_interner.insert(derived_word.to_owned());
let cf = visit(derived_word_interned, NumberOfTypos::One)?; let cf = visit(derived_word_interned, NumberOfTypos::One)?;
if cf.is_break() { if cf.is_break() {
break; break;
} }
} }
2 => { 2 => {
let derived_word_interned = word_interner.insert(derived_word.to_owned());
let cf = visit(derived_word_interned, NumberOfTypos::Two)?; let cf = visit(derived_word_interned, NumberOfTypos::Two)?;
if cf.is_break() { if cf.is_break() {
break; break;