Code Review
Early-stage C++ compiler project. Primary goal: keep architecture clean and extensible.
Review Checklist
1. Architecture and Extensibility
- Does the change fit the intended structure and boundaries?
- If it doesn't fit existing abstractions, should we generalize the design?
- Will this scale as we add more features?
2. No Hacks or Special Cases
- Avoid patch-like solutions with feature-specific workarounds
- No scattered conditional logic ("just for this feature")
- If forcing something in, consider a better abstraction
3. Use Existing Utilities
- Don't reinvent what standard library or codebase already provides
- Use modern C++ when it improves clarity (not for fancy)
4. Error Handling
Check docs/error-handling.md for correct error type usage:
DiagnosticExceptiononly in AST->HIR (with source location)InternalErrorfor compiler bugs (HIR->MIR, LLVM lowering, unreachable code)std::runtime_errorfor runtime failures- Never use
std::unreachable()orDiagnosticException({})
5. Design Principles Alignment
Read docs/design-principles.md and check:
- No Workarounds
- Parameterize, Don't Specialize
- Capture Behavior at the Source
- Unify Before Multiplying
- Follow Established Patterns
- Use Domain Vocabulary
- Comments Explain Why, Not What
Output Format
- Summary: One sentence on what the change does
- Architecture: Impact on system structure, potential issues
- Concerns: Hacky patterns, violations of design principles
- Suggestions: Better abstractions if needed
Converted and distributed by TomeVault — claim your Tome and manage your conversions.