Commit c16d11b
committed
cgen: fix generic type handling bugs
Ensure generic types are properly unwrapped/resolved before generating C code:
- assign.v: Unwrap generic types in expr_opt_with_cast and expr_with_opt before checking flags
and generating code
- cgen.v: Add safeguard in base_type() to force generic conversion when symbol name matches a
generic parameter; skip registering option/result types that are still unresolved generics;
properly unwrap types in expr_with_tmp_var; ensure option types from channel pop operations are
registered for typedef generation
- fn.v: Ensure generic flag is set before calling convert_generic_type in call_args; add
fallback to receiver_type for embedded type method lookup; unwrap generic expected_type in
ref_or_deref_arg1 parent 82133f5 commit c16d11b
3 files changed
Lines changed: 103 additions & 32 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | | - | |
130 | | - | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
131 | 132 | | |
132 | 133 | | |
133 | 134 | | |
| |||
167 | 168 | | |
168 | 169 | | |
169 | 170 | | |
170 | | - | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
171 | 175 | | |
172 | 176 | | |
173 | | - | |
174 | | - | |
| 177 | + | |
| 178 | + | |
175 | 179 | | |
176 | 180 | | |
177 | 181 | | |
| |||
182 | 186 | | |
183 | 187 | | |
184 | 188 | | |
185 | | - | |
| 189 | + | |
| 190 | + | |
186 | 191 | | |
187 | 192 | | |
188 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1281 | 1281 | | |
1282 | 1282 | | |
1283 | 1283 | | |
1284 | | - | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
1285 | 1297 | | |
1286 | 1298 | | |
1287 | 1299 | | |
| |||
1448 | 1460 | | |
1449 | 1461 | | |
1450 | 1462 | | |
1451 | | - | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
1452 | 1469 | | |
1453 | 1470 | | |
1454 | 1471 | | |
1455 | 1472 | | |
1456 | 1473 | | |
1457 | | - | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
1458 | 1479 | | |
1459 | 1480 | | |
1460 | 1481 | | |
| |||
1664 | 1685 | | |
1665 | 1686 | | |
1666 | 1687 | | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
1667 | 1698 | | |
1668 | 1699 | | |
1669 | 1700 | | |
| |||
2379 | 2410 | | |
2380 | 2411 | | |
2381 | 2412 | | |
2382 | | - | |
| 2413 | + | |
| 2414 | + | |
| 2415 | + | |
2383 | 2416 | | |
2384 | | - | |
| 2417 | + | |
2385 | 2418 | | |
2386 | | - | |
2387 | 2419 | | |
2388 | | - | |
2389 | | - | |
| 2420 | + | |
| 2421 | + | |
2390 | 2422 | | |
2391 | 2423 | | |
2392 | | - | |
| 2424 | + | |
2393 | 2425 | | |
2394 | 2426 | | |
2395 | | - | |
2396 | | - | |
| 2427 | + | |
| 2428 | + | |
| 2429 | + | |
2397 | 2430 | | |
2398 | 2431 | | |
2399 | 2432 | | |
| |||
2408 | 2441 | | |
2409 | 2442 | | |
2410 | 2443 | | |
2411 | | - | |
2412 | | - | |
2413 | 2444 | | |
2414 | 2445 | | |
2415 | 2446 | | |
2416 | | - | |
2417 | | - | |
| 2447 | + | |
| 2448 | + | |
2418 | 2449 | | |
2419 | 2450 | | |
2420 | | - | |
| 2451 | + | |
2421 | 2452 | | |
2422 | 2453 | | |
2423 | 2454 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2008 | 2008 | | |
2009 | 2009 | | |
2010 | 2010 | | |
2011 | | - | |
2012 | | - | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
2013 | 2014 | | |
2014 | 2015 | | |
2015 | 2016 | | |
| |||
2428 | 2429 | | |
2429 | 2430 | | |
2430 | 2431 | | |
2431 | | - | |
| 2432 | + | |
| 2433 | + | |
| 2434 | + | |
| 2435 | + | |
| 2436 | + | |
| 2437 | + | |
| 2438 | + | |
| 2439 | + | |
| 2440 | + | |
| 2441 | + | |
| 2442 | + | |
| 2443 | + | |
| 2444 | + | |
| 2445 | + | |
2432 | 2446 | | |
2433 | 2447 | | |
2434 | 2448 | | |
2435 | | - | |
2436 | | - | |
| 2449 | + | |
| 2450 | + | |
| 2451 | + | |
| 2452 | + | |
2437 | 2453 | | |
2438 | 2454 | | |
2439 | 2455 | | |
| |||
2445 | 2461 | | |
2446 | 2462 | | |
2447 | 2463 | | |
2448 | | - | |
2449 | | - | |
| 2464 | + | |
| 2465 | + | |
| 2466 | + | |
| 2467 | + | |
2450 | 2468 | | |
2451 | 2469 | | |
2452 | 2470 | | |
| |||
2480 | 2498 | | |
2481 | 2499 | | |
2482 | 2500 | | |
2483 | | - | |
2484 | | - | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
2485 | 2505 | | |
2486 | 2506 | | |
2487 | 2507 | | |
2488 | 2508 | | |
2489 | 2509 | | |
2490 | 2510 | | |
2491 | 2511 | | |
| 2512 | + | |
| 2513 | + | |
| 2514 | + | |
| 2515 | + | |
| 2516 | + | |
| 2517 | + | |
| 2518 | + | |
| 2519 | + | |
| 2520 | + | |
| 2521 | + | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
2492 | 2526 | | |
2493 | 2527 | | |
2494 | 2528 | | |
| |||
2758 | 2792 | | |
2759 | 2793 | | |
2760 | 2794 | | |
2761 | | - | |
| 2795 | + | |
| 2796 | + | |
2762 | 2797 | | |
2763 | 2798 | | |
2764 | 2799 | | |
| |||
0 commit comments