-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NativeAOT] Fix transforming [Preserve] into [DynamicDependency] for generic types and generic methods #18854
[NativeAOT] Fix transforming [Preserve] into [DynamicDependency] for generic types and generic methods #18854
Conversation
|
💻 [CI Build] Windows Integration Tests passed 💻✅ All Windows Integration Tests passed. Pipeline on Agent |
📚 [PR Build] Artifacts 📚Packages generatedView packagesPipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) passed 💻✅ All tests on macOS M1 - Mac Big Sur (11.5) passed. Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Ventura (13.0) passed 💻✅ All tests on macOS M1 - Mac Ventura (13.0) passed. Pipeline on Agent |
✅ API diff for current PR / commitLegacy Xamarin (No breaking changes)
NET (empty diffs)
✅ API diff vs stableLegacy Xamarin (No breaking changes).NET (No breaking changes)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
🔥 [CI Build] Test results 🔥Test results❌ Tests failed on VSTS: simulator tests 0 tests crashed, 1 tests failed, 231 tests passed. Failures❌ monotouch tests
Html Report (VSDrops) Download Successes✅ bcl: All 69 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
Test failure is unrelated (https://github.com/xamarin/maccore/issues/2450). |
…#18864) This is a follow-up to #18854 The code that we use to generate method signatures still isn't working properly. Method signatures that contain constructed generic types are incorrect (this is a problem for example for UIGestureRecognizer subclasses in MAUI). We are also handling multidimensional arrays incorrectly. Instead of implementing the signature builder ourselves, we can utilize the `DocCommentId.GetDocCommentId (member)` method from Mono.Cecil.Rocks. ```c# void Method(IEnumerable<int> arg) { } // before [DynamicDependency ("Method(System.Collections.Generic.IEnumerable`1<System.Int32>)", typeof (MyClass))] // after [DynamicDependency ("Method(System.Collections.Generic.IEnumerable{System.Int32})", typeof (MyClass))] ```
I noticed that we're generating invalid DynamicDependency attributes for generic types and methods. For example for the
void Activated(T sender)
method ofUIKit.UIGestureRecognizer.Callback<T>
: