Hacker News new | ask | show | jobs
by bob1029 300 days ago
> That said, we already have value types like System.Int32 which inherit from System.ValueType (an abstract type) which inherits from System.Object (a non-abstract reference type), so things are already a bit weird.

But it all works, right? The runtime can do anything it wants to with the IL. The handling of Vector<T> is a good example of this - Locating arbitrary types/namespaces and emitting special instructions based upon the current machine's capabilities. Normalizing value vs reference semantics would be a tiny drop in this bucket.

1 comments

There's some really interesting stuff about how that works here:

https://stackoverflow.com/a/56392846/7077511