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() {
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
// is two
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)?;
if cf.is_break() {
break;
@ -146,12 +147,14 @@ fn find_one_two_typo_derivations(
match d.to_u8() {
0 => (),
1 => {
let derived_word_interned = word_interner.insert(derived_word.to_owned());
let cf = visit(derived_word_interned, NumberOfTypos::One)?;
if cf.is_break() {
break;
}
}
2 => {
let derived_word_interned = word_interner.insert(derived_word.to_owned());
let cf = visit(derived_word_interned, NumberOfTypos::Two)?;
if cf.is_break() {
break;