fix: broken when memory is enabled

This commit is contained in:
Miwa / Ensan
2025-06-04 01:24:35 +09:00
parent a6e35f91ac
commit 5b4f901d02

View File

@@ -182,7 +182,7 @@ extension Kana2Kanji {
candidateIndex: Int,
candidates: [Candidate],
reviewResult: consuming ZenzContext.CandidateEvaluationResult,
constraint: inout PrefixConstraint
constraint: inout PrefixConstraint,
) -> NextAction {
switch reviewResult {
case .error:
@@ -200,13 +200,18 @@ extension Kana2Kanji {
return .return(constraint: PrefixConstraint([]), alternativeConstraints: [], satisfied: false)
}
//
let isIncrementalUpdate = prefixConstraint.hasPrefix(constraint.constraint)
constraint = PrefixConstraint(prefixConstraint)
debug("update constraint:", constraint)
// 使
for (i, candidate) in candidates.indexed() where i != candidateIndex {
if candidate.text.utf8.hasPrefix(prefixConstraint) && self.heuristicRetryValidation(candidate.text) {
debug("found \(candidate.text) as another retry")
return .retry(candidateIndex: i)
if isIncrementalUpdate {
// 使
// prefix constraintcandidates
// prefix constraint!isIncrementalUpdate
for (i, candidate) in candidates.indexed() where i != candidateIndex {
if candidate.text.utf8.hasPrefix(prefixConstraint) && self.heuristicRetryValidation(candidate.text) {
debug("found \(candidate.text) as another retry")
return .retry(candidateIndex: i)
}
}
}
return .continue
@@ -219,12 +224,16 @@ extension Kana2Kanji {
}
//
debug("update whole constraint:", wholeConstraint)
let isIncrementalUpdate = wholeConstraint.utf8.hasPrefix(constraint.constraint)
constraint = PrefixConstraint(Array(wholeConstraint.utf8), hasEOS: true)
// 使
for (i, candidate) in candidates.indexed() where i != candidateIndex {
if candidate.text == wholeConstraint && self.heuristicRetryValidation(candidate.text) {
debug("found \(candidate.text) as another retry")
return .retry(candidateIndex: i)
if isIncrementalUpdate {
// 使
// prefix constraint!isIncrementalUpdate
for (i, candidate) in candidates.indexed() where i != candidateIndex {
if candidate.text == wholeConstraint && self.heuristicRetryValidation(candidate.text) {
debug("found \(candidate.text) as another retry")
return .retry(candidateIndex: i)
}
}
}
return .continue