David Maas
David Maas
C# structs do not support inheritance and by extension do not support `protected`. Right now we emit `protected` as `private`, but usually the generator ends up changing `protected` to `public`...
These trampolines aren't necessary since those constructors/destructors will be exported and available. However the trampolines also aren't hurting anything in this scenario, so it isn't a huge deal.
Pretty niche issue, but it's very frustrating when it happens. (In my case, it happened trying to process an older Windows SDK headers while Clang picked up the newer SDK...
[CLong](https://github.com/dotnet/runtime/blob/69f260eff523bc16c8a95c232e4816b3a1764e88/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/CLong.cs) is a new type being introduced for platform-independent handling of C/C++'s `long`. We should (optionally) support this to make Biohazrd code more portable and allow platform-agnostic reference assemblies to...
When testing Biohazrd with the DirectX API, I decided to split the API surface across various C# assemblies (IE: DXGI, D3D12, etc.) I implemented this by splitting the `TranslatedLibrary` into...
Occasionally it only makes sense for a particular type reference to be a `TranslatedTypeReference`. However, in order to properly work with type transformations you have to support the extremely general...
Right now if extensible metadata stores a type reference, it becomes a blind spot for type transformations.
I don't remember exactly why ref structs are used. I think it was mainly because I didn't want to think about the struct enumerators being boxes but forgot that'd break...
IE: ```c #define __LITERALLY_EVERY_HEADER_GUARD_H__ ``` Right now these appear in the macros listing, and when they are evaluated they yield no value and no diagnostics. We should also look into...