Christian Buttner

Results 89 comments of Christian Buttner

This fix broke assigning to bitstructs with designated initializers. ```c bitstruct Flags : int { bool flag1; } struct Foo { long x; Flags flags; } fn int main(String[] args)...

Any chance this could also be improved? ``` module test; import std::io; macro @macro_2(#x) { int a = #x; } macro @macro_1(#x) { @macro_2(#x); } fn int main(String[] args) {...

Better, but I found another case: ``` module test; import std::io; macro void @macro_2(x) { int a = x; } macro void @macro_1(#x) { @macro_2(#x); } fn int main(String[] args)...

That case is fixed, but here's one more: ``` module test; struct Foo { bool a; int b; } fn int main(String[] args) { mem::new(Foo, { .test = 1, });...

Cool, I'll let you know if I stumble across another case.

The compile time macro is a good replacement for my use case. I'm in favor to emit an error, otherwise it's just potentially confusing UB.

Yes, I'm now getting the error if I go back to my original code.

The simplest example I can give is ```c fn void main() { foo(); } fn void foo() { bar(); } macro bar() { unreachable(); } ``` Which gives the call...