André
André
Still happens on `version dev-2022-09:98420192` ```md src/types.cpp(3419): Assertion Failure: is_type_typed(t) ``` Additional note: Same compiler assertion with `foo: Foo(nil)`.
Seems like **inlining** is the culprit. crash: ```odin foo :: proc($FN: proc()) {} foo(proc(){}) //inline ``` successful compilation: ```odin fn :: proc(){} foo :: proc($FN: proc()) {} foo(fn) //not inline...
I can confirm this bug. The builtin swap does not work with bigger structs. Here is my minimal repo: ```odin Foo :: struct #align 64 { n: int } //use...
here is another finding: `-vet` variable shadowing detection will not work with generic procs the following will trigger the shadowing error as expected (both type and name match): ```odin foo...
Appears to be fixed (tested with `version dev-2022-09:98420192`), there is no more compiler panic. It reports the following user error instead: `Illegal declaration of a constant procedure value`
The syntax in your code example is not valid. In order to access struct fields you need an **instantiated** struct. The following will solve the Issue: ```odin size_of(win32.Bitmap_Info{}.header) // struct...
> This begs the question, is this something we should allow in the first place? I think many users, myself included, would have expected constant declarations `::` inside a `defer`...
Still happens on `version dev-2022-09:98420192`. ```md src/llvm_backend_general.cpp(1250): Assertion Failure: type_size_of(ut) > 0 ```
Here is a minimal code example, does it capture your use case? ```odin A :: enum { A } B :: enum { B } U :: union {A, B}...
Closing this Issue because it's fixed. 👍 Tested with 2d699fd13bb4bb15e9a36b0b1fe44d274b538f3e. ```sh test.odin(13:10) Expected a type for the argument 'T', got 123 foo: Foo(123) ^~^ test.odin(13:6) 'Foo(123)' is not a type...