Uh oh!
There was an error while loading. Please reload this page.
[TrimmableTypeMap][Core A] Foundation model and metadata providers - #10816
[TrimmableTypeMap][Core A] Foundation model and metadata providers#10816simonrozsival wants to merge 6 commits into
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
simonrozsival
commented
Feb 14, 2026
Addressed review comments: prefer string interpolation, use null patterns. Updated CustomAttributeTypeProvider and SignatureTypeProvider accordingly. Note: record-based types and package version variables addressed in downstream core-b branch. |
There was a problem hiding this comment.
Pull request overview
Adds the foundational “Core slice A” pieces for the new Microsoft.Android.Sdk.TrimmableTypeMap project, introducing the shared scanner data model and the minimal System.Reflection.Metadata providers needed to decode signatures and custom attributes without relying on Cecil.
Changes:
- Introduces the new
Microsoft.Android.Sdk.TrimmableTypeMapnetstandard project with package dependencies. - Adds the shared scanner data model (
JavaPeerInfo+ related method/ctor metadata types). - Adds minimal
ISignatureTypeProviderandICustomAttributeTypeProviderimplementations for SRM decoding.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Microsoft.Android.Sdk.TrimmableTypeMap/Scanner/SignatureTypeProvider.cs | Adds minimal SRM signature decoder to produce managed type name strings. |
| src/Microsoft.Android.Sdk.TrimmableTypeMap/Scanner/JavaPeerInfo.cs | Adds core scanner result data model consumed by downstream generators. |
| src/Microsoft.Android.Sdk.TrimmableTypeMap/Scanner/CustomAttributeTypeProvider.cs | Adds SRM custom-attribute decoder helper (including enum underlying type resolution). |
| src/Microsoft.Android.Sdk.TrimmableTypeMap/Microsoft.Android.Sdk.TrimmableTypeMap.csproj | Introduces the new TrimmableTypeMap project and its package references/IVT. |
| eng/Versions.props | Adds a centralized version property for System.Reflection.Metadata. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
….Metadata Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove unused 'using System.Collections.Immutable' import - Fix nested enum type resolution in GetUnderlyingEnumType by reusing GetTypeFromDefinition which correctly handles nested types - Cache enum type lookups to avoid O(N) scan on each call - Remove redundant LangVersion=latest from csproj (set by Configuration.props) - Convert JavaPeerInfo, MarshalMethodInfo, ActivationCtorInfo to records Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…preview.1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add netstandard2.0 polyfills for IsExternalInit, RequiredMemberAttribute, CompilerFeatureRequiredAttribute, and SetsRequiredMembersAttribute. Convert all record properties to init-only, with 'required' on non-nullable string and essential properties. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Core slice A from #10805.
Scope
JavaPeerInfo)Notes