Replace old ReflectionMethodBodyScanner with the illink-based one #594
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This required beefing up the illink-based one a little:
typeof(SomeType<>).MakeGenericType(otherType).GetMethod("Foo")
work for reference-typeotherType
. This is a heuristic.MakeGenericType
just needs to warn as being unsafe.Enum.GetValues
andMarshal.SizeOf
. As a bonus, this hooks into the flow analysis infra, so we can potentially figure out more use cases. As another bonus, there's now a warning.Lost features:
typeof(T) == typeof(Foo)
that was trying to avoid seeingFoo
as constructed (with a fully populated vtable). This can be added later; I'm leaving the compiler infra inplace.