Mini-rust in Rust 018: Type checking, the happy path
February 28, 2025 [Programming, Programming Languages, Rust, Tech, Videos] #mini-rust
mini-rust (19 part Series)
Mini-rust in Rust 001: Lexing an int
Mini-rust in Rust 002: Errors while lexing
Mini-rust in Rust 003: Much prettier errors
Mini-rust in Rust 004: Refactoring our lexer
Mini-rust in Rust 005: Making our lexer an iterator
Mini-rust in Rust 006: Parsing an operation
Mini-rust in Rust 007: Evaluating an operation
Mini-rust in Rust 008: Refactoring our parser
Mini-rust in Rust 009: Handling parsing errors
Mini-rust in Rust 010: Lexing an assignment
Mini-rust in Rust 011: Parsing an assignment plus expression
Mini-rust in Rust 012: Parsing with backtracking
Mini-rust in Rust 013: Fixing a bug in our lexer
Mini-rust in Rust 014: Evaluating an assignment
Mini-rust in Rust 015: Parsing a typed assignment
Mini-rust in Rust 016: Tidying our parser
Mini-rust in Rust 017: Handling float literals
Mini-rust in Rust 018: Type checking, the happy path
Mini-rust in Rust 019: Type checking an actual type error
Mini-rust in Rust 001: Lexing an int
Mini-rust in Rust 002: Errors while lexing
Mini-rust in Rust 003: Much prettier errors
Mini-rust in Rust 004: Refactoring our lexer
Mini-rust in Rust 005: Making our lexer an iterator
Mini-rust in Rust 006: Parsing an operation
Mini-rust in Rust 007: Evaluating an operation
Mini-rust in Rust 008: Refactoring our parser
Mini-rust in Rust 009: Handling parsing errors
Mini-rust in Rust 010: Lexing an assignment
Mini-rust in Rust 011: Parsing an assignment plus expression
Mini-rust in Rust 012: Parsing with backtracking
Mini-rust in Rust 013: Fixing a bug in our lexer
Mini-rust in Rust 014: Evaluating an assignment
Mini-rust in Rust 015: Parsing a typed assignment
Mini-rust in Rust 016: Tidying our parser
Mini-rust in Rust 017: Handling float literals
Mini-rust in Rust 018: Type checking, the happy path
Mini-rust in Rust 019: Type checking an actual type error
This is it: we're going to do some actual type-checking. We want to be able to identify that let x: i32 = 3.0;
is wrong, but for now we're going to check some things that are right. Type-checking this kind of thing is way easier than the full type inference we will eventually need, so it's a gentle start.
You can find the source code at codeberg.org/andybalaam/milk and more of my stuff at artificialworlds.net