Commit 6dd6b30
refactor: remove collections.namedtuple, add helpful SPY0432 error (#508)
collections.namedtuple is redundant with Sharpy's native named tuples
(`type Point = tuple[x: float, y: float]`) and @DataClass, while being
strictly inferior — untyped fields (object), different C# target (record
vs ValueTuple), and string-based field names violating Axiom 3.
Remove the entire implementation:
- Delete Sharpy.Core/Collections/NamedTuple.cs runtime stub
- Remove TryCheckNamedTupleDefinition from TypeChecker
- Remove SemanticInfo namedtuple tracking (MarkAsNamedTupleDefinition)
- Remove GenerateNamedTupleRecord from RoslynEmitter
- Remove ModuleLevelValidator namedtuple exemption
- Remove ISemanticQuery.GetNamedTupleDefinition
Add SPY0432 error in ImportResolver that fires on `from collections
import namedtuple` with a message suggesting native alternatives.
Convert match_named_tuple fixture from .expected to .error test.
Delete namedtuple_basic and namedtuple_print fixtures.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 29aef76 commit 6dd6b30
15 files changed
Lines changed: 51 additions & 302 deletions
File tree
- src
- Sharpy.Compiler.Tests/Integration/TestFixtures
- expressions
- pattern_matching
- Sharpy.Compiler
- CodeGen
- Diagnostics
- Semantic
- Validation
- Services
- Sharpy.Core/Collections
Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 0 additions & 1 deletion
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
502 | 502 | | |
503 | 503 | | |
504 | 504 | | |
505 | | - | |
506 | | - | |
507 | 505 | | |
508 | 506 | | |
509 | 507 | | |
510 | 508 | | |
511 | 509 | | |
512 | 510 | | |
513 | 511 | | |
514 | | - | |
515 | | - | |
516 | | - | |
517 | | - | |
518 | | - | |
519 | | - | |
520 | | - | |
521 | | - | |
522 | | - | |
523 | | - | |
524 | | - | |
525 | | - | |
526 | | - | |
527 | | - | |
528 | | - | |
529 | | - | |
530 | | - | |
531 | | - | |
532 | | - | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | | - | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | 512 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
420 | | - | |
| 420 | + | |
| 421 | + | |
421 | 422 | | |
422 | 423 | | |
423 | 424 | | |
| |||
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1341 | 1341 | | |
1342 | 1342 | | |
1343 | 1343 | | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
1344 | 1355 | | |
1345 | 1356 | | |
1346 | 1357 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
341 | 378 | | |
342 | 379 | | |
343 | 380 | | |
| |||
0 commit comments