Line | Branch | Exec | Source |
---|---|---|---|
1 | #include "nodes.h" | ||
2 | #include "magic.h" | ||
3 | #include "ops.h" | ||
4 | |||
5 | namespace lython { | ||
6 | |||
7 | ExprNode* None(); | ||
8 | ExprNode* True(); | ||
9 | ExprNode* False(); | ||
10 | |||
11 | // -------------------------------------------------------------------- | ||
12 | // to-string | ||
13 | |||
14 | String str(NodeKind k) { | ||
15 | #define CASEGEN(name) \ | ||
16 | case NodeKind::name: \ | ||
17 | return #name; | ||
18 | |||
19 | #define X(name, _) CASEGEN(name) | ||
20 | #define SECTION(name) CASEGEN(name) | ||
21 | #define EXPR(name, _) CASEGEN(name) | ||
22 | #define STMT(name, _) CASEGEN(name) | ||
23 | #define MOD(name, _) CASEGEN(name) | ||
24 | #define MATCH(name, _) CASEGEN(name) | ||
25 | |||
26 |
68/82✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✓ Branch 3 taken 7 times.
✓ Branch 4 taken 18 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 7 times.
✓ Branch 7 taken 7 times.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 7 times.
✓ Branch 11 taken 7 times.
✓ Branch 12 taken 7 times.
✓ Branch 13 taken 7 times.
✓ Branch 14 taken 7 times.
✓ Branch 15 taken 9 times.
✓ Branch 16 taken 7 times.
✓ Branch 17 taken 15 times.
✓ Branch 18 taken 7 times.
✓ Branch 19 taken 9 times.
✓ Branch 20 taken 9 times.
✓ Branch 21 taken 199 times.
✓ Branch 22 taken 9 times.
✓ Branch 23 taken 8 times.
✓ Branch 24 taken 7 times.
✓ Branch 25 taken 489 times.
✓ Branch 26 taken 10 times.
✓ Branch 27 taken 22 times.
✓ Branch 28 taken 8 times.
✓ Branch 29 taken 6 times.
✓ Branch 30 taken 6 times.
✓ Branch 31 taken 6 times.
✓ Branch 32 taken 85 times.
✓ Branch 33 taken 6 times.
✓ Branch 34 taken 6 times.
✓ Branch 35 taken 246 times.
✓ Branch 36 taken 6 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 6 times.
✓ Branch 46 taken 60 times.
✓ Branch 47 taken 11 times.
✓ Branch 48 taken 14 times.
✓ Branch 49 taken 7 times.
✓ Branch 50 taken 34 times.
✓ Branch 51 taken 8 times.
✓ Branch 52 taken 11 times.
✓ Branch 53 taken 8 times.
✓ Branch 54 taken 7 times.
✓ Branch 55 taken 7 times.
✓ Branch 56 taken 8 times.
✓ Branch 57 taken 8 times.
✓ Branch 58 taken 7 times.
✓ Branch 59 taken 8 times.
✓ Branch 60 taken 8 times.
✓ Branch 61 taken 8 times.
✓ Branch 62 taken 7 times.
✓ Branch 63 taken 7 times.
✓ Branch 64 taken 56 times.
✓ Branch 65 taken 32 times.
✓ Branch 66 taken 7 times.
✓ Branch 67 taken 7 times.
✓ Branch 68 taken 9 times.
✓ Branch 69 taken 7 times.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 9 times.
✓ Branch 73 taken 2 times.
✓ Branch 74 taken 3 times.
✓ Branch 75 taken 2 times.
✓ Branch 76 taken 1 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 1 times.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
|
1660 | switch (k) { |
27 |
68/94✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 10 taken 9 times.
✓ Branch 14 taken 7 times.
✓ Branch 18 taken 18 times.
✓ Branch 22 taken 10 times.
✓ Branch 26 taken 7 times.
✓ Branch 30 taken 7 times.
✓ Branch 34 taken 10 times.
✓ Branch 38 taken 10 times.
✓ Branch 42 taken 7 times.
✓ Branch 46 taken 7 times.
✓ Branch 50 taken 7 times.
✓ Branch 54 taken 7 times.
✓ Branch 58 taken 7 times.
✓ Branch 62 taken 9 times.
✓ Branch 66 taken 7 times.
✓ Branch 70 taken 15 times.
✓ Branch 74 taken 7 times.
✓ Branch 78 taken 9 times.
✓ Branch 82 taken 9 times.
✓ Branch 86 taken 199 times.
✓ Branch 90 taken 9 times.
✓ Branch 94 taken 8 times.
✓ Branch 98 taken 7 times.
✓ Branch 102 taken 489 times.
✓ Branch 106 taken 10 times.
✓ Branch 110 taken 22 times.
✓ Branch 114 taken 8 times.
✓ Branch 118 taken 6 times.
✓ Branch 122 taken 6 times.
✓ Branch 126 taken 6 times.
✓ Branch 130 taken 85 times.
✓ Branch 134 taken 6 times.
✓ Branch 138 taken 6 times.
✓ Branch 142 taken 246 times.
✓ Branch 146 taken 6 times.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✓ Branch 182 taken 6 times.
✓ Branch 186 taken 60 times.
✓ Branch 190 taken 11 times.
✓ Branch 194 taken 14 times.
✓ Branch 198 taken 7 times.
✓ Branch 202 taken 34 times.
✓ Branch 206 taken 8 times.
✓ Branch 210 taken 11 times.
✓ Branch 214 taken 8 times.
✓ Branch 218 taken 7 times.
✓ Branch 222 taken 7 times.
✓ Branch 226 taken 8 times.
✓ Branch 230 taken 8 times.
✓ Branch 234 taken 7 times.
✓ Branch 238 taken 8 times.
✓ Branch 242 taken 8 times.
✓ Branch 246 taken 8 times.
✓ Branch 250 taken 7 times.
✓ Branch 254 taken 7 times.
✓ Branch 258 taken 56 times.
✓ Branch 262 taken 32 times.
✓ Branch 266 taken 7 times.
✓ Branch 270 taken 7 times.
✓ Branch 274 taken 9 times.
✓ Branch 278 taken 7 times.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✓ Branch 290 taken 9 times.
✓ Branch 294 taken 2 times.
✓ Branch 298 taken 3 times.
✓ Branch 302 taken 2 times.
✓ Branch 306 taken 1 times.
✓ Branch 310 taken 1 times.
✓ Branch 314 taken 1 times.
✓ Branch 318 taken 1 times.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
|
1660 | NODEKIND_ENUM(X, SECTION, EXPR, STMT, MOD, MATCH) |
28 | |||
29 | ✗ | default: break; | |
30 | } | ||
31 | |||
32 | #undef X | ||
33 | #undef SECTION | ||
34 | #undef EXPR | ||
35 | #undef STMT | ||
36 | #undef MOD | ||
37 | #undef MATCH | ||
38 | ✗ | return "<invalid>"; | |
39 | } | ||
40 | |||
41 | void print(BoolOperator const& v, std::ostream& out) { | ||
42 |
2/3✓ Branch 0 taken 8 times.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
17 | switch (v) { |
43 | #define OP(name, kw, _) \ | ||
44 | case BoolOperator::name: { \ | ||
45 | out << #kw; \ | ||
46 | return; \ | ||
47 | } | ||
48 | 17 | BOOL_OPERATORS(OP) | |
49 | |||
50 | ✗ | default: break; | |
51 | #undef OP | ||
52 | } | ||
53 | } | ||
54 | |||
55 | void print(BinaryOperator const& v, std::ostream& out) { | ||
56 |
5/17✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
35 | switch (v) { |
57 | #define OP(name, kw, _) \ | ||
58 | case BinaryOperator::name: { \ | ||
59 | out << #name; \ | ||
60 | return; \ | ||
61 | } | ||
62 | 35 | BINARY_OPERATORS(OP) | |
63 | |||
64 | ✗ | default: break; | |
65 | #undef OP | ||
66 | } | ||
67 | } | ||
68 | |||
69 | void print(UnaryOperator const& v, std::ostream& out) { | ||
70 |
4/6✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 3 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
|
15 | switch (v) { |
71 | #define OP(name, kw, _) \ | ||
72 | case UnaryOperator::name: { \ | ||
73 | out << #name; \ | ||
74 | return; \ | ||
75 | } | ||
76 | 15 | UNARY_OPERATORS(OP) | |
77 | |||
78 | #undef OP | ||
79 | } | ||
80 | } | ||
81 | |||
82 | void print(CmpOperator const& v, std::ostream& out) { | ||
83 |
8/12✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 4 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 34 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✓ Branch 8 taken 4 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
|
67 | switch (v) { |
84 | #define OP(name, kw, _) \ | ||
85 | case CmpOperator::name: { \ | ||
86 | out << #name; \ | ||
87 | return; \ | ||
88 | } | ||
89 | 67 | COMP_OPERATORS(OP) | |
90 | |||
91 | #undef OP | ||
92 | } | ||
93 | } | ||
94 | |||
95 | void ClassDef::Attr::dump(std::ostream& out) { | ||
96 | ✗ | out << name << ": " << str(type) << " = " << str(stmt); | |
97 | ✗ | } | |
98 | |||
99 | StringRef operator_magic_name(BinaryOperator const& v, bool reverse) { | ||
100 | |||
101 | #define OP(name, kw, magic) \ | ||
102 | static StringRef m_##name = String("__" #magic "__"); \ | ||
103 | static StringRef mr_##name = String("__r" #magic "__"); | ||
104 | |||
105 |
128/256✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✓ Branch 150 taken 12 times.
✗ Branch 151 not taken.
✓ Branch 153 taken 12 times.
✗ Branch 154 not taken.
✓ Branch 157 taken 12 times.
✓ Branch 160 taken 12 times.
✓ Branch 165 taken 12 times.
✗ Branch 166 not taken.
✓ Branch 168 taken 12 times.
✗ Branch 169 not taken.
✓ Branch 172 taken 12 times.
✓ Branch 175 taken 12 times.
✓ Branch 180 taken 12 times.
✗ Branch 181 not taken.
✓ Branch 183 taken 12 times.
✗ Branch 184 not taken.
✓ Branch 187 taken 12 times.
✓ Branch 190 taken 12 times.
✓ Branch 195 taken 12 times.
✗ Branch 196 not taken.
✓ Branch 198 taken 12 times.
✗ Branch 199 not taken.
✓ Branch 202 taken 12 times.
✓ Branch 205 taken 12 times.
✓ Branch 210 taken 12 times.
✗ Branch 211 not taken.
✓ Branch 213 taken 12 times.
✗ Branch 214 not taken.
✓ Branch 217 taken 12 times.
✓ Branch 220 taken 12 times.
✓ Branch 225 taken 12 times.
✗ Branch 226 not taken.
✓ Branch 228 taken 12 times.
✗ Branch 229 not taken.
✓ Branch 232 taken 12 times.
✓ Branch 235 taken 12 times.
✓ Branch 240 taken 12 times.
✗ Branch 241 not taken.
✓ Branch 243 taken 12 times.
✗ Branch 244 not taken.
✓ Branch 247 taken 12 times.
✓ Branch 250 taken 12 times.
✓ Branch 255 taken 12 times.
✗ Branch 256 not taken.
✓ Branch 258 taken 12 times.
✗ Branch 259 not taken.
✓ Branch 262 taken 12 times.
✓ Branch 265 taken 12 times.
✓ Branch 270 taken 12 times.
✗ Branch 271 not taken.
✓ Branch 273 taken 12 times.
✗ Branch 274 not taken.
✓ Branch 277 taken 12 times.
✓ Branch 280 taken 12 times.
✓ Branch 285 taken 12 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 12 times.
✗ Branch 289 not taken.
✓ Branch 292 taken 12 times.
✓ Branch 295 taken 12 times.
✓ Branch 300 taken 12 times.
✗ Branch 301 not taken.
✓ Branch 303 taken 12 times.
✗ Branch 304 not taken.
✓ Branch 307 taken 12 times.
✓ Branch 310 taken 12 times.
✓ Branch 315 taken 12 times.
✗ Branch 316 not taken.
✓ Branch 318 taken 12 times.
✗ Branch 319 not taken.
✓ Branch 322 taken 12 times.
✓ Branch 325 taken 12 times.
✓ Branch 330 taken 12 times.
✗ Branch 331 not taken.
✓ Branch 333 taken 12 times.
✗ Branch 334 not taken.
✓ Branch 337 taken 12 times.
✓ Branch 340 taken 12 times.
✓ Branch 345 taken 12 times.
✗ Branch 346 not taken.
✓ Branch 348 taken 12 times.
✗ Branch 349 not taken.
✓ Branch 352 taken 12 times.
✓ Branch 355 taken 12 times.
✓ Branch 360 taken 12 times.
✗ Branch 361 not taken.
✓ Branch 363 taken 12 times.
✗ Branch 364 not taken.
✓ Branch 367 taken 12 times.
✓ Branch 370 taken 12 times.
✓ Branch 375 taken 12 times.
✗ Branch 376 not taken.
✓ Branch 378 taken 12 times.
✗ Branch 379 not taken.
✓ Branch 382 taken 12 times.
✓ Branch 385 taken 12 times.
✓ Branch 390 taken 12 times.
✗ Branch 391 not taken.
✓ Branch 393 taken 12 times.
✗ Branch 394 not taken.
✓ Branch 397 taken 12 times.
✓ Branch 400 taken 12 times.
✓ Branch 405 taken 12 times.
✗ Branch 406 not taken.
✓ Branch 408 taken 12 times.
✗ Branch 409 not taken.
✓ Branch 412 taken 12 times.
✓ Branch 415 taken 12 times.
✓ Branch 420 taken 12 times.
✗ Branch 421 not taken.
✓ Branch 423 taken 12 times.
✗ Branch 424 not taken.
✓ Branch 427 taken 12 times.
✓ Branch 430 taken 12 times.
✓ Branch 435 taken 12 times.
✗ Branch 436 not taken.
✓ Branch 438 taken 12 times.
✗ Branch 439 not taken.
✓ Branch 442 taken 12 times.
✓ Branch 445 taken 12 times.
✓ Branch 450 taken 12 times.
✗ Branch 451 not taken.
✓ Branch 453 taken 12 times.
✗ Branch 454 not taken.
✓ Branch 457 taken 12 times.
✓ Branch 460 taken 12 times.
✓ Branch 465 taken 12 times.
✗ Branch 466 not taken.
✓ Branch 468 taken 12 times.
✗ Branch 469 not taken.
✓ Branch 472 taken 12 times.
✓ Branch 475 taken 12 times.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
|
12 | BINARY_OPERATORS(OP) |
106 | |||
107 | #undef OP | ||
108 | |||
109 |
1/17✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
12 | switch (v) { |
110 | #define OP(name, kw, _) \ | ||
111 | case BinaryOperator::name: { \ | ||
112 | return reverse ? mr_##name : m_##name; \ | ||
113 | } | ||
114 |
1/32✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
|
12 | BINARY_OPERATORS(OP) |
115 | |||
116 | #undef OP | ||
117 | } | ||
118 | |||
119 | ✗ | return StringRef(""); | |
120 | } | ||
121 | |||
122 | StringRef operator_magic_name(BoolOperator const& v, bool reverse) { | ||
123 | |||
124 | #define OP(name, kw, magic) \ | ||
125 | static StringRef m_##name = String("__" #magic "__"); \ | ||
126 | static StringRef mr_##name = String("__r" #magic "__"); | ||
127 | |||
128 |
20/32✓ Branch 0 taken 12 times.
✓ Branch 1 taken 20 times.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✓ Branch 16 taken 20 times.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✓ Branch 31 taken 20 times.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✓ Branch 46 taken 20 times.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
|
32 | BOOL_OPERATORS(OP) |
129 | |||
130 | #undef OP | ||
131 | |||
132 |
2/3✓ Branch 0 taken 24 times.
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
32 | switch (v) { |
133 | #define OP(name, kw, _) \ | ||
134 | case BoolOperator::name: { \ | ||
135 | return reverse ? mr_##name : m_##name; \ | ||
136 | } | ||
137 |
4/4✓ Branch 0 taken 6 times.
✓ Branch 1 taken 18 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
|
32 | BOOL_OPERATORS(OP) |
138 | |||
139 | ✗ | default: break; | |
140 | #undef OP | ||
141 | } | ||
142 | |||
143 | ✗ | return StringRef(""); | |
144 | } | ||
145 | |||
146 | StringRef operator_magic_name(UnaryOperator const& v, bool reverse) { | ||
147 | |||
148 | #define OP(name, kw, magic) \ | ||
149 | static StringRef m_##name = String("__" #magic "__"); \ | ||
150 | static StringRef mr_##name = String("__r" #magic "__"); | ||
151 | |||
152 |
40/80✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
|
12 | UNARY_OPERATORS(OP) |
153 | |||
154 | #undef OP | ||
155 | |||
156 |
1/6✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
12 | switch (v) { |
157 | #define OP(name, kw, _) \ | ||
158 | case UnaryOperator::name: { \ | ||
159 | return reverse ? mr_##name : m_##name; \ | ||
160 | } | ||
161 |
1/10✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
12 | UNARY_OPERATORS(OP) |
162 | |||
163 | #undef OP | ||
164 | } | ||
165 | |||
166 | ✗ | return StringRef(""); | |
167 | } | ||
168 | |||
169 | StringRef operator_magic_name(CmpOperator const& v, bool reverse) { | ||
170 | |||
171 | #define OP(name, kw, magic) \ | ||
172 | static StringRef m_##name = String("__" #magic "__"); \ | ||
173 | static StringRef mr_##name = String("__r" #magic "__"); | ||
174 | |||
175 |
88/176✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✓ Branch 150 taken 12 times.
✗ Branch 151 not taken.
✓ Branch 153 taken 12 times.
✗ Branch 154 not taken.
✓ Branch 157 taken 12 times.
✓ Branch 160 taken 12 times.
✓ Branch 165 taken 12 times.
✗ Branch 166 not taken.
✓ Branch 168 taken 12 times.
✗ Branch 169 not taken.
✓ Branch 172 taken 12 times.
✓ Branch 175 taken 12 times.
✓ Branch 180 taken 12 times.
✗ Branch 181 not taken.
✓ Branch 183 taken 12 times.
✗ Branch 184 not taken.
✓ Branch 187 taken 12 times.
✓ Branch 190 taken 12 times.
✓ Branch 195 taken 12 times.
✗ Branch 196 not taken.
✓ Branch 198 taken 12 times.
✗ Branch 199 not taken.
✓ Branch 202 taken 12 times.
✓ Branch 205 taken 12 times.
✓ Branch 210 taken 12 times.
✗ Branch 211 not taken.
✓ Branch 213 taken 12 times.
✗ Branch 214 not taken.
✓ Branch 217 taken 12 times.
✓ Branch 220 taken 12 times.
✓ Branch 225 taken 12 times.
✗ Branch 226 not taken.
✓ Branch 228 taken 12 times.
✗ Branch 229 not taken.
✓ Branch 232 taken 12 times.
✓ Branch 235 taken 12 times.
✓ Branch 240 taken 12 times.
✗ Branch 241 not taken.
✓ Branch 243 taken 12 times.
✗ Branch 244 not taken.
✓ Branch 247 taken 12 times.
✓ Branch 250 taken 12 times.
✓ Branch 255 taken 12 times.
✗ Branch 256 not taken.
✓ Branch 258 taken 12 times.
✗ Branch 259 not taken.
✓ Branch 262 taken 12 times.
✓ Branch 265 taken 12 times.
✓ Branch 270 taken 12 times.
✗ Branch 271 not taken.
✓ Branch 273 taken 12 times.
✗ Branch 274 not taken.
✓ Branch 277 taken 12 times.
✓ Branch 280 taken 12 times.
✓ Branch 285 taken 12 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 12 times.
✗ Branch 289 not taken.
✓ Branch 292 taken 12 times.
✓ Branch 295 taken 12 times.
✓ Branch 300 taken 12 times.
✗ Branch 301 not taken.
✓ Branch 303 taken 12 times.
✗ Branch 304 not taken.
✓ Branch 307 taken 12 times.
✓ Branch 310 taken 12 times.
✓ Branch 315 taken 12 times.
✗ Branch 316 not taken.
✓ Branch 318 taken 12 times.
✗ Branch 319 not taken.
✓ Branch 322 taken 12 times.
✓ Branch 325 taken 12 times.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
|
12 | COMP_OPERATORS(OP) |
176 | |||
177 | #undef OP | ||
178 | |||
179 |
1/12✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
12 | switch (v) { |
180 | #define OP(name, kw, _) \ | ||
181 | case CmpOperator::name: { \ | ||
182 | return reverse ? mr_##name : m_##name; \ | ||
183 | } | ||
184 |
1/22✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
12 | COMP_OPERATORS(OP) |
185 | |||
186 | #undef OP | ||
187 | } | ||
188 | |||
189 | ✗ | return StringRef(""); | |
190 | } | ||
191 | |||
192 | // FIXME: this is a hack | ||
193 | // to avoid cicle we should just make a reference to the type that cycles | ||
194 | bool Arrow::add_arg_type(ExprNode* arg_type) { | ||
195 |
1/2✓ Branch 0 taken 206 times.
✗ Branch 1 not taken.
|
206 | if (arg_type != this) { |
196 | 206 | args.push_back(arg_type); | |
197 | |||
198 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 206 times.
|
206 | if (has_circle(this)) { |
199 | ✗ | args.pop_back(); | |
200 | ✗ | return false; | |
201 | } | ||
202 | |||
203 | 206 | return true; | |
204 | } | ||
205 | kwwarn("trying to assing self to an arrow argument"); | ||
206 | ✗ | return false; | |
207 | } | ||
208 | |||
209 | bool Arrow::set_arg_type(int i, ExprNode* arg_type) { | ||
210 | |||
211 |
1/2✓ Branch 0 taken 8 times.
✗ Branch 1 not taken.
|
8 | if (arg_type != this) { |
212 | 8 | ExprNode* old = args[i]; | |
213 | 8 | args[i] = arg_type; | |
214 | |||
215 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 8 times.
|
8 | if (has_circle(this)) { |
216 | ✗ | args[i] = old; | |
217 | ✗ | return false; | |
218 | } | ||
219 | |||
220 | 8 | return true; | |
221 | } | ||
222 | |||
223 | kwwarn("trying to assing self to an arrow argument"); | ||
224 | ✗ | return false; | |
225 | } | ||
226 | |||
227 | // ------------------------------------------ | ||
228 | } // namespace lython | ||
229 |