[ TOPIC ]
type-systems
11 real merged PRs across 6 projects, ordered easiest to hardest. Read them in order to see how type-systems shows up in production code, then go deeper with the free papers and talks below.
[ 01 // REAL PRs ]
Next (mid) · 6
Fix JIT-compiled min and max on DateTime64 comparing timestamps as unsigned
This PR teaches how C++ template specializations interact with inheritance, and how to write targeted regression tests for subtle type trait bugs in numerics.
gh-155752: Do not crash when GenericAlias parameters change during substitution
This PR teaches how to defensively handle subtle type system invariants and prevent crashes when internal assumptions about cached parameters are violated.
Fix reservoir_quantile for DECIMAL types (preserve precision and supp…
This PR teaches how to extend an aggregate function to support additional types (DECIMALs), including careful handling of physical representations, serialization, and regression testing.
Implement clamp_to
This PR teaches how to design and implement a generic, const-friendly clamp_to API for ranges with careful handling of edge cases like NaN and range validity, including trait-based extensibility and unstable feature gating in Rust.
GH-48740: [C++] Add missing CTypeTraits for decimal types
This PR teaches how to extend and maintain type trait specializations in a C++ type system, ensuring consistency and correctness for generic programming.
implement `Add` and `Sub` for `Complex`
This PR teaches how to implement generic operator overloading for a numeric type in Rust, handle trait bounds and conflicts, and write comprehensive tests for arithmetic operations.
Go deep (senior) · 5
Make const eval return normalized ty
This PR teaches how to refactor and generalize a core compiler API to handle normalization and error propagation in a type-safe, extensible way, including nuanced error handling and trait system interactions.
Error on projection of dyn noncompat type in old trait solver
This PR teaches how Rust's compiler enforces trait object (dyn Trait) compatibility rules and reports precise errors for invalid trait projections, illustrating deep type system checks and robust error handling in compiler internals.
Allow associated const equality constraints with GCA
This PR teaches how Rust's type system and compiler internals evolve to support new features (generic const arguments) while carefully managing backwards compatibility and trait object constraints.
fix supposedly unreachable `bug!` being reachable
This PR teaches how to handle supposedly unreachable states in a type system implementation, including updating error handling and documenting subtle normalization behavior in a compiler's type-checking logic.
[clang] Delay dependent co_return promise calls
Shows how to defer semantic decisions on dependent coroutine return expressions to handle template-dependent types correctly, with discussion on compiler internals and subtle correctness issues.
[ 02 // MUST-READ PAPERS ]
Free to read, ranked by citations.
- A theory of type polymorphism in programmingRobin Milner · Journal of Computer and System Sciences · 19782,297 citationsfree PDF
- RustBelt: securing the foundations of the Rust programming languageRalf Jung, Jacques-Henri Jourdan, Robbert Krebbers · Proceedings of the ACM on Programming Languages · 2017502 citationsfree PDF
[ 03 // FREE VIDEOS & TALKS ]
Ranked by views.
other topics
