GCC Code Coverage Report


Directory: ../
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 8 / 0 / 8
Functions: 100.0% 3 / 0 / 3
Branches: 58.3% 7 / 0 / 12

src/exception/ErrorManager.cpp
Line Branch Exec Source
1 // Copyright (c) 2021-2026 ChilliBits. All rights reserved.
2
3 #include "ErrorManager.h"
4
5 #include <ast/ASTNodes.h>
6
7 namespace spice::compiler {
8
9 138 void ErrorManager::addSoftError(const ASTNode *astNode, SemanticErrorType errorType, const std::string &message) {
10 // Build error message
11
1/2
✓ Branch 2 → 3 taken 138 times.
✗ Branch 2 → 20 not taken.
138 const SemanticError semanticError(astNode, errorType, message);
12 // Add to soft errors list
13
2/4
✓ Branch 6 → 7 taken 138 times.
✗ Branch 6 → 14 not taken.
✓ Branch 7 → 8 taken 138 times.
✗ Branch 7 → 12 not taken.
138 addSoftError(astNode->codeLoc, semanticError.what());
14 138 }
15
16 138 void ErrorManager::addSoftError(const CodeLoc &codeLoc, const std::string &message) {
17 // Avoid duplicate errors
18
2/2
✓ Branch 3 → 4 taken 129 times.
✓ Branch 3 → 8 taken 9 times.
236 if (std::ranges::none_of(softErrors, [&](const SoftError &err) { return err.codeLoc == codeLoc; }))
19
2/4
✓ Branch 4 → 5 taken 129 times.
✗ Branch 4 → 11 not taken.
✓ Branch 5 → 6 taken 129 times.
✗ Branch 5 → 9 not taken.
129 softErrors.emplace_back(SoftError{codeLoc, message});
20 138 }
21
22 } // namespace spice::compiler
23