Yorick Peterse
Yorick Peterse
### Please describe the bug When using explicit type signatures for closure arguments, it's possible to specify type signatures that aren't compatible with what is expected, yet the compiler doesn't...
### Problem Recently I noticed that when working with projects that produce 300+ diagnostics (e.g. when refactoring something that affects pretty much the entire codebase), memory usage of Neovim can...
With https://github.com/inko-lang/inko/issues/633 fixed, we should do the same for socket IO. The following functions need to be replaced: - [ ] `inko_socket_accept` - [ ] `inko_socket_bind` - [ ] `inko_socket_connect`...
### Please describe the bug When a type can't be fully inferred, the compiler is supposed to emit an error. This doesn't always happen though, such as for the following...
### Please describe the bug The compiler doesn't handle recursive C structures gracefully, i.e. the following code crashes it: ```inko class extern Foo { let @a: Int32 let @b: Foo...
### Please describe the bug When passing non-pointer values, such as a `Foo` or `ref Foo`, the type checker allows such values to be passed when a `Pointer[T]` is expected:...
### Please describe the bug Certain code patterns that involve C types, such as iterating over `Array[Int32]`, result in a type checking error such as illustrated by this code example:...
### Description The type system expresses pointers as `TypeRef::Pointer(TypeId)`, meaning we don't support pointer pointers (`Pointer[Pointer[Int32]]` for example). This can make working with C code tricky. In particular, if you...
### Description Instances of classes are heap allocated by default, with the exception of `Int`, `Float`, `Bool`, and `Nil`. This is what allows Inko's borrowing mechanism to work, and crucially...
### Please describe the bug When running the following code, the return value of `allocate` is inferred as `move T` instead of `Pointer[T]`, which should then be inferred as `Pointer[Int]`:...