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.
Instead of instantiating all built-in converters on startup unconditionally or referencing all the supported data types themselves, use a generic method so that the JIT will remove references to data types (and their converters) that are never serialized in the application.
It may not be intuitive, but indeed a long C# method of type checks does offer this trim optimization, because the JIT / AOT compiler will remove type checks that will never match given the type argument on the generic method, thereby removing the unrelated type references, leaving only those behind that are actually going to be used.
Accrues toward #190, by bringing the AOT console test app down from 3.9MB to just under 3.6MB.