Whole-repo audit 2026-08-24 at commit 3e76bab (audit skill 0.35.0). Pass 2 status: ledgered (audit/mutation-test-scans.json, scan of 2026-08-24T08:55:39Z at 35496d8).
src/error/ErrConform.sol:5-6
EmptyStringMask's doc ('Thrown when a string is conformed to an empty character mask.') only covers conformStringToMask, but charFromMask (src/lib/mut/LibConformString.sol line 145-147) also reverts with it and involves no string at all — it selects a single character from a mask. The doc understates the error's production sites.
Proposed fix
In /home/gildlab/code/audit-rain.string/src/error/ErrConform.sol line 5, widen the comment to: '/// Thrown when a character mask that must yield at least one character is empty, i.e. when conforming a string to it or selecting a character from it.'
src/error/ErrConform.sol:5-6
EmptyStringMask's doc says "Thrown when a string is conformed to an empty character mask", but charFromMask (src/lib/mut/LibConformString.sol lines 144-147) also throws it and conforms no string — it selects a single character. The doc names only one of the two throwers' operations.
Proposed fix
In src/error/ErrConform.sol line 5, replace with "/// Thrown when a character mask is zero: no character can conform to it or\n/// be selected from it."
Whole-repo audit 2026-08-24 at commit 3e76bab (audit skill 0.35.0). Pass 2 status: ledgered (audit/mutation-test-scans.json, scan of 2026-08-24T08:55:39Z at 35496d8).
src/error/ErrConform.sol:5-6
EmptyStringMask's doc ('Thrown when a string is conformed to an empty character mask.') only covers conformStringToMask, but charFromMask (src/lib/mut/LibConformString.sol line 145-147) also reverts with it and involves no string at all — it selects a single character from a mask. The doc understates the error's production sites.
Proposed fix
In /home/gildlab/code/audit-rain.string/src/error/ErrConform.sol line 5, widen the comment to: '/// Thrown when a character mask that must yield at least one character is empty, i.e. when conforming a string to it or selecting a character from it.'
src/error/ErrConform.sol:5-6
EmptyStringMask's doc says "Thrown when a string is conformed to an empty character mask", but charFromMask (src/lib/mut/LibConformString.sol lines 144-147) also throws it and conforms no string — it selects a single character. The doc names only one of the two throwers' operations.
Proposed fix
In src/error/ErrConform.sol line 5, replace with "/// Thrown when a character mask is zero: no character can conform to it or\n/// be selected from it."