(line, legacy, lineNumber)
| 21 | let previousAnchor; |
| 22 | |
| 23 | function parse(line, legacy, lineNumber) { |
| 24 | const anchorMatch = anchorPattern.exec(line); |
| 25 | if (anchorMatch) { |
| 26 | const code = anchorMatch[1]; |
| 27 | if (previousAnchor != null && previousAnchor > code) { |
| 28 | throw new Error(`Unordered error anchor in ${docPath}:${lineNumber}`, { cause: `${previousAnchor} ≤ ${code}` }); |
| 29 | } |
| 30 | previousAnchor = code; |
| 31 | return; |
| 32 | } |
| 33 | |
| 34 | const codeMatch = codePattern.exec(line); |
| 35 | if (codeMatch == null) return; |
| 36 | |
| 37 | const code = codeMatch[1]; |
| 38 | if (previousAnchor == null) { |
| 39 | throw new Error(`Missing error anchor in ${docPath}:${lineNumber}`, { cause: code }); |
| 40 | } |
| 41 | assert.strictEqual(code, previousAnchor, `Error anchor do not match with error code in ${docPath}:${lineNumber}`); |
| 42 | |
| 43 | if (legacy && errors.has(code)) { |
| 44 | throw new Error(`Error is documented both as legacy and non-legacy in ${docPath}:${lineNumber}`, { cause: code }); |
| 45 | } |
| 46 | (legacy ? legacyErrors : errors).add(code); |
| 47 | } |
| 48 | |
| 49 | let lineNumber = 0; |
| 50 | for (const line of lines) { |
no test coverage detected
searching dependent graphs…