Jesús Lapastora
Jesús Lapastora
The parser fails with `expected '=>' after pattern case` if a case is a byte literal: ``` function main() { match b'.' { b';' => 0 else => 1 }...
Removes the `JAKT_RESOLVE_CONTROL_FLOW` macros and outputs their contents inside codegen, so that we can have better line detection from clang in generated C++ code from matches. Updates bootstrap since it...
Instead of relying on a single resolve_call and typecheck_call to do all the job, I've split them so that functions can be resolved differently depending on the context (method call...
Removes errors of the kind "no methods available on type", "assignment between incompatible types", "attempt to access member on a non-struct type" etc. that propagate when some lookup yields "unknown"...
This affects matches specially but another test is added to make sure that assigning never is still reported as an error since it doesn't make sense to store something you're...
Givin the following code: ```jakt function my_func() -> i32? => match true { false => None else => Some(32i32) } function main() { let a = my_func() print("{}", a) }...
This is an attempt to remove the `run-one.sh` script by integrating the different stages of compiling a test binary into the Jakttest scheduler. EDIT: Managed to work around #1025. Now...
File::write might get an empty array, so fwrite() returning zero does not always mean that an error occurred. Better check that an error actually occurred before returning an Error(errno=0).
Let's say I have the following Jakt code: ```jakt /// Expect: /// - output: "" struct SecretHolder { private secret: T function create(secret: T) -> SecretHolder => SecretHolder(secret) } function...
Code generation forwards it correctly, but typechecker did not ensure the inner expression's typecheck knew that the expression could throw.