I’m spending a lot of time rewriting some of the oldest code in RubyCLR. This code is the lowest layer in the RubyCLR stack – it will map a CLR type to a Ruby shadow class name, and it will map strings that define either a CLR type, method, event, property, field, or constructor to the appropriate MemberInfo derived type.
The original code was tested only by driving it from higher layers in the stack. It evolved over time, features accreted etc. and now it needs to be broken out into its own set of independently tested APIs.
Here’s a problem that I’ve been grappling with, and it feels like something that’s missing in the Reflection APIs. Type strings look like this:
@System.Int64 G`1[System.Int32]::M2[System.Int64]()