GCC Code Coverage Report


Directory: ../
File: src/typechecker/TypeCheckerTopLevelDefinitions.cpp
Date: 2025-06-14 23:29:02
Exec Total Coverage
Lines: 44 44 100.0%
Functions: 11 11 100.0%
Branches: 29 36 80.6%

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 765 std::any TypeChecker::visitMainFctDef(MainFctDefNode *node) {
8
2/2
✓ Branch 0 (2→3) taken 362 times.
✓ Branch 1 (2→4) taken 403 times.
765 if (typeCheckerMode == TC_MODE_PRE)
9 362 return visitMainFctDefPrepare(node);
10 else
11 403 return visitMainFctDefCheck(node);
12 }
13
14 19563 std::any TypeChecker::visitFctDef(FctDefNode *node) {
15
2/2
✓ Branch 0 (2→3) taken 6333 times.
✓ Branch 1 (2→4) taken 13230 times.
19563 if (typeCheckerMode == TC_MODE_PRE)
16 6333 return visitFctDefPrepare(node);
17 else
18 13230 return visitFctDefCheck(node);
19 }
20
21 10727 std::any TypeChecker::visitProcDef(ProcDefNode *node) {
22
2/2
✓ Branch 0 (2→3) taken 3455 times.
✓ Branch 1 (2→4) taken 7272 times.
10727 if (typeCheckerMode == TC_MODE_PRE)
23 3455 return visitProcDefPrepare(node);
24 else
25 7272 return visitProcDefCheck(node);
26 }
27
28 1603 std::any TypeChecker::visitStructDef(StructDefNode *node) {
29
2/2
✓ Branch 0 (2→3) taken 611 times.
✓ Branch 1 (2→4) taken 992 times.
1603 if (typeCheckerMode == TC_MODE_PRE)
30 611 return visitStructDefPrepare(node);
31 else
32 992 return visitStructDefCheck(node);
33 }
34
35 172 std::any TypeChecker::visitInterfaceDef(InterfaceDefNode *node) {
36
2/2
✓ Branch 0 (2→3) taken 83 times.
✓ Branch 1 (2→4) taken 89 times.
172 if (typeCheckerMode == TC_MODE_PRE)
37 83 return visitInterfaceDefPrepare(node);
38
1/2
✓ Branch 0 (4→5) taken 89 times.
✗ Branch 1 (4→7) not taken.
89 return nullptr;
39 }
40
41 184 std::any TypeChecker::visitEnumDef(EnumDefNode *node) {
42
2/2
✓ Branch 0 (2→3) taken 63 times.
✓ Branch 1 (2→4) taken 121 times.
184 if (typeCheckerMode == TC_MODE_PRE)
43 63 return visitEnumDefPrepare(node);
44
1/2
✓ Branch 0 (4→5) taken 121 times.
✗ Branch 1 (4→7) not taken.
121 return nullptr;
45 }
46
47 2545 std::any TypeChecker::visitGenericTypeDef(GenericTypeDefNode *node) {
48
2/2
✓ Branch 0 (2→3) taken 816 times.
✓ Branch 1 (2→4) taken 1729 times.
2545 if (typeCheckerMode == TC_MODE_PRE)
49 816 return visitGenericTypeDefPrepare(node);
50
1/2
✓ Branch 0 (4→5) taken 1729 times.
✗ Branch 1 (4→7) not taken.
1729 return nullptr;
51 }
52
53 144 std::any TypeChecker::visitAliasDef(AliasDefNode *node) {
54
2/2
✓ Branch 0 (2→3) taken 54 times.
✓ Branch 1 (2→4) taken 90 times.
144 if (typeCheckerMode == TC_MODE_PRE)
55 54 return visitAliasDefPrepare(node);
56
1/2
✓ Branch 0 (4→5) taken 90 times.
✗ Branch 1 (4→7) not taken.
90 return nullptr;
57 }
58
59 2760 std::any TypeChecker::visitGlobalVarDef(GlobalVarDefNode *node) {
60
2/2
✓ Branch 0 (2→3) taken 1200 times.
✓ Branch 1 (2→4) taken 1560 times.
2760 if (typeCheckerMode == TC_MODE_PRE)
61 1200 return visitGlobalVarDefPrepare(node);
62
1/2
✓ Branch 0 (4→5) taken 1560 times.
✗ Branch 1 (4→7) not taken.
1560 return nullptr;
63 }
64
65 2580 std::any TypeChecker::visitExtDecl(ExtDeclNode *node) {
66
2/2
✓ Branch 0 (2→3) taken 882 times.
✓ Branch 1 (2→4) taken 1698 times.
2580 if (typeCheckerMode == TC_MODE_PRE)
67 882 return visitExtDeclPrepare(node);
68
1/2
✓ Branch 0 (4→5) taken 1698 times.
✗ Branch 1 (4→7) not taken.
1698 return nullptr;
69 }
70
71 1432 std::any TypeChecker::visitImportDef(ImportDefNode *node) {
72
2/2
✓ Branch 0 (2→3) taken 516 times.
✓ Branch 1 (2→4) taken 916 times.
1432 if (typeCheckerMode == TC_MODE_PRE)
73 516 return visitImportDefPrepare(node);
74
1/2
✓ Branch 0 (4→5) taken 916 times.
✗ Branch 1 (4→7) not taken.
916 return nullptr;
75 }
76
77 } // namespace spice::compiler
78