GCC Code Coverage Report


Directory: ../
File: src/typechecker/TypeCheckerTopLevelDefinitions.cpp
Date: 2025-11-25 12:07:23
Coverage Exec Excl Total
Lines: 100.0% 44 0 44
Functions: 100.0% 11 0 11
Branches: 80.6% 29 0 36

Line Branch Exec Source
1 // Copyright (c) 2021-2025 ChilliBits. All rights reserved.
2
3 #include "TypeChecker.h"
4
5 namespace spice::compiler {
6
7 810 std::any TypeChecker::visitMainFctDef(MainFctDefNode *node) {
8
2/2
✓ Branch 2 → 3 taken 383 times.
✓ Branch 2 → 4 taken 427 times.
810 if (typeCheckerMode == TC_MODE_PRE)
9 383 return visitMainFctDefPrepare(node);
10 else
11 427 return visitMainFctDefCheck(node);
12 }
13
14 25086 std::any TypeChecker::visitFctDef(FctDefNode *node) {
15
2/2
✓ Branch 2 → 3 taken 8067 times.
✓ Branch 2 → 4 taken 17019 times.
25086 if (typeCheckerMode == TC_MODE_PRE)
16 8067 return visitFctDefPrepare(node);
17 else
18 17019 return visitFctDefCheck(node);
19 }
20
21 13020 std::any TypeChecker::visitProcDef(ProcDefNode *node) {
22
2/2
✓ Branch 2 → 3 taken 4164 times.
✓ Branch 2 → 4 taken 8856 times.
13020 if (typeCheckerMode == TC_MODE_PRE)
23 4164 return visitProcDefPrepare(node);
24 else
25 8856 return visitProcDefCheck(node);
26 }
27
28 1897 std::any TypeChecker::visitStructDef(StructDefNode *node) {
29
2/2
✓ Branch 2 → 3 taken 712 times.
✓ Branch 2 → 4 taken 1185 times.
1897 if (typeCheckerMode == TC_MODE_PRE)
30 712 return visitStructDefPrepare(node);
31 else
32 1185 return visitStructDefCheck(node);
33 }
34
35 210 std::any TypeChecker::visitInterfaceDef(InterfaceDefNode *node) {
36
2/2
✓ Branch 2 → 3 taken 101 times.
✓ Branch 2 → 4 taken 109 times.
210 if (typeCheckerMode == TC_MODE_PRE)
37 101 return visitInterfaceDefPrepare(node);
38
1/2
✓ Branch 4 → 5 taken 109 times.
✗ Branch 4 → 7 not taken.
109 return nullptr;
39 }
40
41 193 std::any TypeChecker::visitEnumDef(EnumDefNode *node) {
42
2/2
✓ Branch 2 → 3 taken 65 times.
✓ Branch 2 → 4 taken 128 times.
193 if (typeCheckerMode == TC_MODE_PRE)
43 65 return visitEnumDefPrepare(node);
44
1/2
✓ Branch 4 → 5 taken 128 times.
✗ Branch 4 → 7 not taken.
128 return nullptr;
45 }
46
47 3026 std::any TypeChecker::visitGenericTypeDef(GenericTypeDefNode *node) {
48
2/2
✓ Branch 2 → 3 taken 970 times.
✓ Branch 2 → 4 taken 2056 times.
3026 if (typeCheckerMode == TC_MODE_PRE)
49 970 return visitGenericTypeDefPrepare(node);
50
1/2
✓ Branch 4 → 5 taken 2056 times.
✗ Branch 4 → 7 not taken.
2056 return nullptr;
51 }
52
53 176 std::any TypeChecker::visitAliasDef(AliasDefNode *node) {
54
2/2
✓ Branch 2 → 3 taken 69 times.
✓ Branch 2 → 4 taken 107 times.
176 if (typeCheckerMode == TC_MODE_PRE)
55 69 return visitAliasDefPrepare(node);
56
1/2
✓ Branch 4 → 5 taken 107 times.
✗ Branch 4 → 7 not taken.
107 return nullptr;
57 }
58
59 2790 std::any TypeChecker::visitGlobalVarDef(GlobalVarDefNode *node) {
60
2/2
✓ Branch 2 → 3 taken 1190 times.
✓ Branch 2 → 4 taken 1600 times.
2790 if (typeCheckerMode == TC_MODE_PRE)
61 1190 return visitGlobalVarDefPrepare(node);
62
1/2
✓ Branch 4 → 5 taken 1600 times.
✗ Branch 4 → 7 not taken.
1600 return nullptr;
63 }
64
65 3046 std::any TypeChecker::visitExtDecl(ExtDeclNode *node) {
66
2/2
✓ Branch 2 → 3 taken 1026 times.
✓ Branch 2 → 4 taken 2020 times.
3046 if (typeCheckerMode == TC_MODE_PRE)
67 1026 return visitExtDeclPrepare(node);
68
1/2
✓ Branch 4 → 5 taken 2020 times.
✗ Branch 4 → 7 not taken.
2020 return nullptr;
69 }
70
71 1774 std::any TypeChecker::visitImportDef(ImportDefNode *node) {
72
2/2
✓ Branch 2 → 3 taken 633 times.
✓ Branch 2 → 4 taken 1141 times.
1774 if (typeCheckerMode == TC_MODE_PRE)
73 633 return visitImportDefPrepare(node);
74
1/2
✓ Branch 4 → 5 taken 1141 times.
✗ Branch 4 → 7 not taken.
1141 return nullptr;
75 }
76
77 } // namespace spice::compiler
78