-
Notifications
You must be signed in to change notification settings - Fork 520
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
[dotnet] Stop suppressing trim analysis warnings. Fixes #21293. #21351
[dotnet] Stop suppressing trim analysis warnings. Fixes #21293. #21351
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…no-trimmer-warning-suppression
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…no-trimmer-warning-suppression
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
New commits in xamarin/MonoTouch.Dialog: * xamarin/MonoTouch.Dialog@d157950 Exclude code that's not trimmer safe. Diff: https://github.com/xamarin/MonoTouch.Dialog/compare/77b3337dbbc9e3e2f1b06dab3d37d2822488b0b3..d157950b6e6ed32cf53d4074fe19223dc1f1e8fe New commits in xamarin/Touch.Unit: * xamarin/Touch.Unit@957faca [Touch.Client] Disable features that aren't trimmer safe. Diff: https://github.com/xamarin/Touch.Unit/compare/92a072683b69b2f61f235a7a249c2c7f261236d4..957facad80e753310f52fcbb8cf85219d9d6d887
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This reverts commit c0e0ee9.
💻 [CI Build] Windows Integration Tests passed 💻✅ All Windows Integration Tests passed. Pipeline on Agent |
💻 [CI Build] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [CI Build] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
✅ API diff for current PR / commit.NET (No breaking changes)✅ API diff vs stable.NET (No breaking changes)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
💻 [CI Build] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 99 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
Context: xamarin/xamarin-macios#21351 This will avoid some of the fallout of the above PR.
* Build with .NET 10 successfully Changes required: * Get appropriate `net9` branded workload manifests from dotnet/runtime * Fix NuGet package downgrades: src\SingleProject\Resizetizer\src\Resizetizer.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Runtime.CompilerServices.Unsafe from 6.1.0 to 6.0.0. Reference the package directly from the project to select a different version. Microsoft.Maui.Resizetizer -> Microsoft.Bcl.AsyncInterfaces 10.0.0-alpha.1.25058.4 -> System.Threading.Tasks.Extensions 4.6.0 -> System.Runtime.CompilerServices.Unsafe (>= 6.1.0) Microsoft.Maui.Resizetizer -> System.Runtime.CompilerServices.Unsafe (>= 6.0.0) src\Core\src\Core.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Numerics.Vectors from 4.6.0 to 4.5.0. Reference the package directly from the project to select a different version. Microsoft.Maui.Core -> Microsoft.Extensions.Logging.Abstractions 10.0.0-alpha.1.25057.17 -> System.Memory 4.6.0 -> System.Numerics.Vectors (>= 4.6.0) Microsoft.Maui.Core -> System.Numerics.Vectors (>= 4.5.0) * Update to iOS, tvOS, MacCatalyst 18.2 10.0.100-alpha.1.25059.14\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(259,5): error NETSDK1140: 18.0 is not a valid TargetPlatformVersion for MacCatalyst. Valid versions include: 18.2 10.0.100-alpha.1.25059.14\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(259,5): error NETSDK1140: 18.0 is not a valid TargetPlatformVersion for iOS. Valid versions include: 18.2 * Temporarily ignore `CS9270`: * dotnet/roslyn#76312 * dotnet/roslyn#72133 artifacts\obj\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.BindingSourceGen\Microsoft.Maui.Controls.BindingSourceGen.BindingSourceGenerator\D--src-maui-src-Controls-src-Core-BindableLayout-BindableLayout.cs-GeneratedBindingInterceptors-235-10.g.cs(43,4): error CS9270: 'InterceptsLocationAttribute(string, int, int)' is not supported. Move to 'InterceptableLocation'-based generation of these attributes instead. (dotnet/roslyn#72133) artifacts\obj\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.BindingSourceGen\Microsoft.Maui.Controls.BindingSourceGen.BindingSourceGenerator\D--src-maui-src-Controls-src-Core-ContentConverter.cs-GeneratedBindingInterceptors-72-13.g.cs(43,4): error CS9270: 'InterceptsLocationAttribute(string, int, int)' is not supported. Move to 'InterceptableLocation'-based generation of these attributes instead. (dotnet/roslyn#72133) artifacts\obj\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.BindingSourceGen\Microsoft.Maui.Controls.BindingSourceGen.BindingSourceGenerator\D--src-maui-src-Controls-src-Core-ContentConverter.cs-GeneratedBindingInterceptors-77-13.g.cs(43,4): error CS9270: 'InterceptsLocationAttribute(string, int, int)' is not supported. Move to 'InterceptableLocation'-based generation of these attributes instead. (dotnet/roslyn#72133) * iOS API changes: error CS0618: 'CLLocation.AccurracyBestForNavigation' is obsolete: 'Use 'AccuracyBestForNavigation' instead.' Screenshot.ios.cs(57,69): error CS8602: Dereference of a possibly null reference. Platform\iOS\KeyboardAutoManagerScroll.cs(867,55): error CS8602: Dereference of a possibly null reference. src\Core\src\Platform\iOS\MauiSwipeView.cs(601,8): error CS8625: Cannot convert null literal to non-nullable reference type. src\Core\src\Platform\iOS\MauiSwipeView.cs(634,8): error CS8625: Cannot convert null literal to non-nullable reference type. ResignFirstResponderTouchGestureRecognizer.iOS.cs(70,12): error CS8600: Converting null literal or possible null value to non-nullable type. GesturePlatformManager.iOS.cs(282,21): error CS8602: Dereference of a possibly null reference. Most notably: * `UIView.Window` can be null. * Typo in API fixed `AccurracyBestForNavigation` -> `AccuracyBestForNavigation` * Disable tizen net10.0 temporarily * TargetFramework=net10.0 * TargetFramework=net10.0 * Unused yaml: `TestTargetFrameworks` * Update RunnerGenerator.cs Workaround: dotnet/android@715a36a * Put iOS simulator versions back to 18.0 * Update RunnerGenerator.cs * Update xUnitSharedAttributes.cs D:\src\maui\src\TestUtils\src\TestShared\xUnitSharedAttributes.cs(75,89): error CS0117: 'DynamicallyAccessedMemberTypes' does not contain a definition for 'PublicParameterlessConstructors' D:\src\maui\src\TestUtils\src\TestShared\xUnitSharedAttributes.cs(83,63): error CS0117: 'DynamicallyAccessedMemberTypes' does not contain a definition for 'PublicParameterlessConstructors' * Update Core.DeviceTests.Shared.csproj * Update RunnerGenerator.cs * Remove Tizen project * Update ios.cake * Update Core.DeviceTests.csproj * Update android * Update xcode * Disable trimming warnings for now * [iOS] Move to 18.2 simulators * Ignore more warnings * Ignore more warnings * Update MainViewController.cs * Ignore more warnings * Disable more warnings * Update xUnitSharedAttributes.cs * Put trimmer warnings back * EnableTrimAnalyzer=false for test projects across repo * Make `EnableTizen()` a no-op * Update Controls.DeviceTests.csproj * Install `mobile-librarybuilder-net9` Context: xamarin/xamarin-macios@cb13402 * Update WindowsTemplateTest.cs * `mobile-librarybuilder-net9` on test lanes * Update Essentials.Sample.csproj * See if newer .NET SDK fixes maui-blazor Context: dotnet/sdk@26fd6d1...60e9a46 I see a dotnet/aspnetcore bump in the diff. * Essentials.Sample.csproj is a "sample project" * > darc update-dependencies --id 252455 * Revert "Update RunnerGenerator.cs" This reverts commit b9f32f6. * Revert "Update RunnerGenerator.cs" This reverts commit 9f6d36d. * Revert "Update RunnerGenerator.cs" This reverts commit 0f43f7d. * darc update-dependencies --id 252613 * darc update-dependencies --coherency-only * Update Version.Details.xml * SuppressTrimAnalysisWarnings=true for test/sample projects * Update Controls.DeviceTests.csproj * Revert "Update Controls.DeviceTests.csproj" This reverts commit 5ce0390. * Disable iOS test for now * Update provision.yml * Update versions * Update versions * Revert "Update provision.yml" This reverts commit 33a8ee5. * Update LabelExtensions.cs * Update ButtonTests.iOS.cs * Try these new aspnet versions * Update AssemblyInfoTests.cs * $(TrimmerSingleWarn)=false * Update MauiBlazorWebView.DeviceTests.csproj * $(IsTestProject) -> $(MauiTestProject) The old name conflicts with dotnet/arcade. * Update Core.UnitTests.csproj * Update MacTemplateTest.cs * Update MacTemplateTest.cs * Revert "Update MacTemplateTest.cs" This reverts commit 7ed2b89. * Revert "Update MacTemplateTest.cs" This reverts commit 882c45e. * EnableTrimAnalyzer=false for default projects Context: xamarin/xamarin-macios#21351 This will avoid some of the fallout of the above PR. * $(EnableTrimAnalyzer) take 2 * Update TestUtils.DeviceTests.Sample.csproj * Update Microsoft.Maui.Controls.Common.targets * Update Microsoft.Maui.Controls.Common.targets * Update SimpleTemplateTest.cs * Update Microsoft.Maui.Controls.Common.targets * System.Text.Json.Serialization.Converters.EnumConverterFactory warning is gone * Potential fix for M.E.DI failure Fixes? [15:12:46.2484560] 2025-01-22 15:12:46.242709-0800 RunOniOSmauiRel1586373188[97228:54445246] Received unhandled Objective-C exception that was marshalled from a managed exception: A suitable constructor for type 'Microsoft.Maui.Hosting.FontsMauiAppBuilderExtensions+FontInitializer' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. (System.InvalidOperationException) [15:12:46.2484780] at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateConstructorCallSite(ResultCache, ServiceIdentifier, Type, CallSiteChain) + 0x4de [15:12:46.2485210] at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateExact(ServiceDescriptor, ServiceIdentifier, CallSiteChain, Int32) + 0x1a5 [15:12:46.2485640] at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateEnumerable(ServiceIdentifier, CallSiteChain) + 0x42f [15:12:46.2485930] at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateCallSite(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain) + 0xfb [15:12:46.2486100] at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.GetCallSite(ServiceIdentifier, CallSiteChain) + 0x92 [15:12:46.2486220] at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier) + 0x68 [15:12:46.2486330] at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey, Func`2) + 0xdc [15:12:46.2486790] at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier, ServiceProviderEngineScope) + 0x39 [15:12:46.2486900] at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type) + 0x3d [15:12:46.2487000] at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider) + 0x2f [15:12:46.2487100] at Microsoft.Maui.MauiContextExtensions.InitializeAppServices(MauiApp) + 0x1b [15:12:46.2487190] at Microsoft.Maui.Hosting.MauiAppBuilder.Build() + 0x67 [15:12:46.2487420] at Microsoft.Maui.MauiUIApplicationDelegate.WillFinishLaunching(UIApplication application, NSDictionary launchOptions) + 0x44 [15:12:46.2487530] at RunOniOSmauiRel1586373188!<BaseAddress>+0xe200a * Revert "Potential fix for M.E.DI failure" This reverts commit 802e4c1. * Update versions with CoherentParentDependency * Update versions with coherent Microsoft.JSInterop * Use strongly-typed Transient() for M.E.DI * MauiVersionCurrent / MauiVersionPrevious * Update FontsMauiAppBuilderExtensions.cs * Revert "Update FontsMauiAppBuilderExtensions.cs" This reverts commit 6b8e48a. * Revert "Use strongly-typed Transient() for M.E.DI" This reverts commit b0e0e45. * Comment a few NativeAOT tests --------- Co-authored-by: Rui Marinho <[email protected]>
Our own code shouldn't produce trim analysis warnings anymore (see #10405), so we don't need to suppress trim analysis warnings for everyone.
Except: we still want to suppress trim analysis warnings if no assemblies are trimmed, because otherwise we'll get warnings for code that would otherwise be trimmed away.
On the other hand, we want trim analyzer always enabled, so that warnings are reported for user code.
The difference between "trim analyzer" and "trim analysis warnings" is that the former is an analyzer that analyzes the currently compiled code (which we always want), while the latter is reported by the trimmers, and as such will report warnings from all code, including all references.
This also required bumping Touch.Unit and MonoTouch.Dialog.
New commits in xamarin/MonoTouch.Dialog:
xamarin/MonoTouch.Dialog@d157950 Exclude code that's not trimmer safe.
Diff: 77b3337..d157950
New commits in xamarin/Touch.Unit:
xamarin/Touch.Unit@957faca [Touch.Client] Disable features that aren't trimmer safe.
Diff: 92a0726..957faca
Fixes #21293.