[TrimmableTypeMap] Add TypeMap proxy groundwork with CreateInstance#10808
Open
simonrozsival wants to merge 9 commits intomainfrom
Open
[TrimmableTypeMap] Add TypeMap proxy groundwork with CreateInstance#10808simonrozsival wants to merge 9 commits intomainfrom
simonrozsival wants to merge 9 commits intomainfrom
Conversation
627fef2 to
408d73d
Compare
ba936c9 to
61ac7ed
Compare
ddddd2f to
83a50be
Compare
83a50be to
4e7d06c
Compare
2388cf1 to
e92938e
Compare
4e7d06c to
7088777
Compare
e92938e to
9215de9
Compare
7088777 to
b9f33c9
Compare
b9f33c9 to
21a68db
Compare
4c8b459 to
e3e4f05
Compare
Add the core pipeline that transforms scanned JavaPeerInfo records into TypeMap .dll assemblies with proxy types and CreateInstance support: - TypeMapAssemblyData model: proxy types, TypeMap attributes, associations - ModelBuilder: transforms JavaPeerInfo into model with alias detection, ACW filtering, proxy naming, cross-assembly IgnoresAccessChecksTo - TypeMapAssemblyEmitter: PE/IL emission of proxy types with CreateInstance, get_TargetType, get_InvokerType properties - TypeMapAssemblyGenerator: orchestrates Build + Emit pipeline - RootTypeMapAssemblyGenerator: generates root _Microsoft.Android.TypeMaps.dll - JniSignatureHelper: JNI signature parsing utility - Scanner enrichment for generator consumption - Comprehensive tests for model builder, assembly generator, root generator UCO wrappers, RegisterNatives, and IAndroidCallableWrapper support will be added in a follow-up PR. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
e3e4f05 to
9449651
Compare
This entire test file references JcwJavaSourceGenerator which doesn't exist in this PR or anywhere in the repo yet. It belongs with PR #10830 (JCW Java Source Generation) which introduces that class. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move UCO-specific JniSignatureHelper methods (JniParamKind, ParseParameterTypes, ParseReturnType, EncodeClrType, ParseSingleType) and their tests to PR #10831. Move JCW-specific scanner properties (BaseJavaName, ImplementedInterfaceJavaNames, JavaConstructors, JavaConstructorInfo) and resolver methods (ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName, BuildJavaConstructors) to PR #10830. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add JniParamKind enum, ParseParameterTypes, ParseReturnType, EncodeClrType, ParseSingleType, and their test classes (JniSignatureHelperTests, NegativeEdgeCase) — moved from PR #10808. Also add back JavaConstructors property, JavaConstructorInfo record, and BuildJavaConstructors scanner method needed by ModelBuilder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add JniParamKind enum, ParseParameterTypes, ParseReturnType, EncodeClrType, ParseSingleType, and their test classes (JniSignatureHelperTests, NegativeEdgeCase) — moved from PR #10808. Also add back JavaConstructors property, JavaConstructorInfo record, and BuildJavaConstructors scanner method needed by ModelBuilder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use xUnit's IDisposable pattern for test cleanup instead of manual try-finally blocks. Each nested test class that generates temp files now creates a per-instance temp directory in a field initializer and cleans it up in Dispose(). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
d9bd575 to
163f892
Compare
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add JniParamKind enum, ParseParameterTypes, ParseReturnType, EncodeClrType, ParseSingleType, and their test classes (JniSignatureHelperTests, NegativeEdgeCase) — moved from PR #10808. Also add back JavaConstructors property, JavaConstructorInfo record, and BuildJavaConstructors scanner method needed by ModelBuilder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove // ---- section separator comments from PEAssemblyBuilder and TypeMapAssemblyEmitter - Expand all single-line /// <summary>...</summary> to 3-line format - Remove trivial property doc comments that just restate the name Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add JniParamKind enum, ParseParameterTypes, ParseReturnType, EncodeClrType, ParseSingleType, and their test classes (JniSignatureHelperTests, NegativeEdgeCase) — moved from PR #10808. Also add back JavaConstructors property, JavaConstructorInfo record, and BuildJavaConstructors scanner method needed by ModelBuilder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival
added a commit
that referenced
this pull request
Feb 19, 2026
Add BaseJavaName, ImplementedInterfaceJavaNames properties to JavaPeerInfo, and ResolveBaseJavaName, ResolveImplementedInterfaceJavaNames, ResolveInterfaceJniName methods to JavaPeerScanner — moved from PR #10808. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Member
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Member
Author
|
/azp run Xamarin.Android-PR |
|
No pipelines are associated with this pull request. |
Retry all PR checks to refresh failing internal status context.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a Linux template parameter for MSBUILD_ARGS and set -m:2 in the public pipeline Linux build to reduce recurrent MSB4166/OOM failures.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Member
Author
|
/azp run Xamarin.Android-PR |
|
No pipelines are associated with this pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part of #10799
Summary
Adds the core pipeline that transforms scanned
JavaPeerInforecords into TypeMap.dllassemblies with proxy types andCreateInstancesupport.Generator pipeline
TypeMapAssemblyDatamodel: records for proxy types, type map attributes, associationsModelBuilder: transformsJavaPeerInfo→TypeMapAssemblyDatawith alias detection, ACW filtering, proxy naming, cross-assemblyIgnoresAccessChecksTosupportTypeMapAssemblyEmitter: PE/IL emission of proxy types withCreateInstance,get_TargetType,get_InvokerTypepropertiesTypeMapAssemblyGenerator: orchestrates Build + Emit pipelineRootTypeMapAssemblyGenerator: generates root_Microsoft.Android.TypeMaps.dllJniSignatureHelper: JNI signature parsing utilityTests
UCO wrappers, RegisterNatives, and IAndroidCallableWrapper support will be added in a follow-up PR.
Stacked PRs: