Incompatible length or index units
Rule ID: correctness.regex-range-units@1.0.0. Availability below refers to source-scan at product 524fa07e.
V-COR-03 — Incompatible length or index units#
Incompatible length or index units. It examines value, collection, identity, ordering, and control-flow contracts.
Availability#
Not available in source-scan. There is no source-scan flag to activate this condition.
A separate experimental source preview recognizes a limited local pattern for this condition:
"$ANALYZER" experimental-scan <path> --rule correctness.regex-range-units --format jsonUse the terminal from Installation, with ANALYZER set, and replace <path> with a Swift file or directory. This preview is not compiler-backed source-scan coverage.
Example and action#
Illustrative pattern only. This is not a complete runnable package or a reproduced source-scan result. Helper APIs and omitted context must be supplied by the application.
import Foundation
let text = "😀"
let regex = try NSRegularExpression(pattern: ".")
let range = NSRange(location: 0, length: text.count)
let matches = regex.matches(in: text, range: range)NSRegularExpression consumes a UTF-16 range. Convert the indices of this same String with NSRange(_:in:), rather than supplying the grapheme count. Include emoji and composed characters when checking the consuming operation. The experimental selector is specific to this regex range context.
import Foundation
let text = "😀"
let regex = try NSRegularExpression(pattern: ".")
let range = NSRange(text.startIndex..<text.endIndex, in: text)
let matches = regex.matches(in: text, range: range)Intended analysis#
Intended reasoning: Compare the value, unit, identity or protocol assumptions at each operation. The intended conclusion requires consistent source identities and the relevant path constraints; an unrecognized abstraction can invalidate the comparison. Required evidence: value, identity, ordering, collection, and control-flow facts
Assumptions and unknown#
The relevant facts must be admitted for the selected immutable build world. Unknown aliases, external effects, unsupported source forms or incomplete consumers can prevent a conclusion. Availability in this workflow is stated above; the illustration does not expand that availability.
Evidence and interpretation#
The target catalog describes the intended condition. It is not evidence of an active source-scan diagnostic.
Historical evidence at 4558458d: accepted-subset (a limited set of source forms and profiles passed historical checks). That evidence has not been requalified for this product revision.
How we validate checks explains the evidence boundary. Foundations separates method assumptions from implementation claims.