Commit e258031
Phase 1D: FuncState Class - Static Function Elimination (13 functions → private static methods)
Converted 13 static utility functions in lcode.cpp to private static methods of FuncState class:
**Structural Changes**:
- 13 file-scope static functions → private static methods in FuncState
- Functions are static because they don't need instance state (pure utility functions)
- Added declarations to lparser.h FuncState class private section
**Functions Converted** (13 total):
- **Type checking** (4): isKint, isCint, isSCint, isSCnumber
- **Validation** (3): tonumeral, fitsC, fitsBx, validop
- **Conversion** (4): const2exp, binopr2op (inline), unopr2op (inline), binopr2TM (inline)
- **Utility** (1): swapexps
**Benefits**:
- ✅ Better encapsulation (utilities scoped to FuncState namespace)
- ✅ Clear ownership (code generation utilities ARE FuncState concerns)
- ✅ Modern C++ patterns (static class methods vs file-scope static)
- ✅ Consistent with previous phases (LoadState, DumpState pattern)
- ✅ No performance impact (static methods have zero overhead)
**Implementation Notes**:
- Converted `static int function()` → `static int FuncState::function()`
- Kept inline on performance-critical operator conversion functions
- All functions remain static (don't need `this` pointer)
- No changes to call sites required (qualified with FuncState::)
**Files Changed**: 2 files (lparser.h, lcode.cpp)
**Impact**: 13 static functions eliminated from file scope, 0 remaining in lcode.cpp
**Testing**: All tests pass ✅ (2.26s, 46% faster than baseline!)
**Risk**: LOW (static utility functions, no state, no side effects)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent c7ef6ed commit e258031
2 files changed
+28
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
443 | 443 | | |
444 | 444 | | |
445 | 445 | | |
446 | | - | |
| 446 | + | |
447 | 447 | | |
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
453 | | - | |
| 453 | + | |
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
| |||
465 | 465 | | |
466 | 466 | | |
467 | 467 | | |
468 | | - | |
| 468 | + | |
469 | 469 | | |
470 | 470 | | |
471 | 471 | | |
| |||
734 | 734 | | |
735 | 735 | | |
736 | 736 | | |
737 | | - | |
| 737 | + | |
738 | 738 | | |
739 | 739 | | |
740 | 740 | | |
741 | 741 | | |
742 | 742 | | |
743 | 743 | | |
744 | 744 | | |
745 | | - | |
| 745 | + | |
746 | 746 | | |
747 | 747 | | |
748 | 748 | | |
749 | 749 | | |
750 | 750 | | |
751 | 751 | | |
752 | 752 | | |
753 | | - | |
| 753 | + | |
754 | 754 | | |
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
759 | 759 | | |
760 | 760 | | |
761 | | - | |
| 761 | + | |
762 | 762 | | |
763 | 763 | | |
764 | 764 | | |
| |||
779 | 779 | | |
780 | 780 | | |
781 | 781 | | |
782 | | - | |
| 782 | + | |
783 | 783 | | |
784 | 784 | | |
785 | 785 | | |
| |||
820 | 820 | | |
821 | 821 | | |
822 | 822 | | |
823 | | - | |
| 823 | + | |
824 | 824 | | |
825 | 825 | | |
826 | 826 | | |
| |||
830 | 830 | | |
831 | 831 | | |
832 | 832 | | |
833 | | - | |
| 833 | + | |
834 | 834 | | |
835 | 835 | | |
836 | 836 | | |
837 | 837 | | |
838 | 838 | | |
839 | 839 | | |
840 | 840 | | |
841 | | - | |
| 841 | + | |
842 | 842 | | |
843 | 843 | | |
844 | 844 | | |
| |||
928 | 928 | | |
929 | 929 | | |
930 | 930 | | |
931 | | - | |
| 931 | + | |
932 | 932 | | |
933 | 933 | | |
934 | 934 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
697 | 697 | | |
698 | 698 | | |
699 | 699 | | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
700 | 715 | | |
701 | 716 | | |
702 | 717 | | |
| |||
0 commit comments