GCC Code Coverage Report


Directory: ./
File: src/sema/bindings.cpp
Date: 2023-04-27 00:55:30
Exec Total Coverage
Lines: 23 23 100.0%
Functions: 2 2 100.0%
Branches: 30 30 100.0%

Line Branch Exec Source
1 #include "sema/bindings.h"
2 #include "ast/magic.h"
3 #include "ast/ops.h"
4 #include "utilities/strings.h"
5
6 namespace lython {
7
8 std::ostream& print(std::ostream& out, int i, BindingEntry const& entry);
9
10 void Bindings::dump(std::ostream& out) const {
11
1/1
✓ Branch 2 taken 1 times.
1 auto big = String(40, '-');
12
1/1
✓ Branch 2 taken 1 times.
1 auto small = String(20, '-');
13
1/1
✓ Branch 1 taken 1 times.
1 auto sep = fmt::format("{:>40}-+-{:>20}-+-{}", big, small, small);
14
15
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 out << sep << '\n';
16
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
2 out << fmt::format(" {:40} | {:20} | {}", "name", "type", "value") << "\n";
17
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 out << sep << '\n';
18 1 int i = 0;
19
2/2
✓ Branch 4 taken 21 times.
✓ Branch 5 taken 1 times.
22 for (auto& e: bindings) {
20
1/1
✓ Branch 1 taken 21 times.
21 print(out, i, e);
21 21 i += 1;
22 }
23
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 out << sep << '\n';
24 1 }
25
26 inline std::ostream& print(std::ostream& out, int i, BindingEntry const& entry) {
27
1/1
✓ Branch 1 taken 21 times.
21 String n = str(entry.name);
28
1/1
✓ Branch 1 taken 21 times.
21 String v = str(entry.value);
29
1/1
✓ Branch 1 taken 21 times.
21 String t = str(entry.type);
30
31
1/1
✓ Branch 1 taken 21 times.
21 auto frags = split('\n', v);
32
33
3/3
✓ Branch 2 taken 21 times.
✓ Branch 5 taken 21 times.
✓ Branch 8 taken 21 times.
42 out << fmt::format("{:3d} {:>40} | {:>20} | {}", i, n, t, frags[0]) << '\n';
34
35
2/2
✓ Branch 1 taken 15 times.
✓ Branch 2 taken 21 times.
36 for (int i = 1; i < frags.size(); i++) {
36
3/3
✓ Branch 2 taken 15 times.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 9 times.
15 if (strip(frags[i]) == "") {
37 6 continue;
38 }
39
3/3
✓ Branch 2 taken 9 times.
✓ Branch 5 taken 9 times.
✓ Branch 8 taken 9 times.
18 out << fmt::format(" {:>40} | {:>20} | {}", "", "", frags[i]) << '\n';
40 }
41 21 return out;
42 21 }
43
44 } // namespace lython
45