Skip to content
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

[tests] verify trimmer warnings where appropriate #9076

Merged
merged 1 commit into from
Jul 4, 2024

Commits on Jul 3, 2024

  1. [tests] verify trimmer warnings where appropriate

    One change we need in the Android workload is to make sure that
    trimmer warnings are displayed if a project sets `$(IsAotCompatible)`.
    Customers would likely want this set for all platforms if they are
    using NativeAOT on iOS or MacCatalyst.
    
    I also wrote a test with somewhat complicated parameters to verify
    we get warnings.
    
    First, I can create a warning for both `IL2055` and `IL3050`:
    
        // Member field
        Type type = typeof (List<>);
        // ...
        // Later in OnCreate
        Console.WriteLine (type.MakeGenericType (typeof (object)));
    
    The combinations of tests are:
    
    | Configuration | Property                           | Warning(s)        |
    | ------------- | ---------------------------------- | ----------------- |
    | Debug         | (defaults)                         | None              |
    | Release       | (defaults)                         | None              |
    | Debug         | TrimMode=full                      | None              |
    | Release       | TrimMode=full                      | IL2055(2)         |
    | Release       | SuppressTrimAnalysisWarnings=false | IL2055(2)         |
    | Debug         | IsAotCompatible=true               | IL2055, IL3050    |
    | Release       | IsAotCompatible=false              | IL2055(2), IL3050 |
    
    Some of the cases receive duplicate warnings, but this is expected as
    the same behavior occurs in the simplest case:
    
    * `dotnet new console`
    * Add the above code to `Program.cs`
    * `dotnet publish -c Release -r win-x64 -p:PublishAot=true`
    * Receive warnings from both the Roslyn analyzer and ILC (NativeAOT compiler)
    
    In a future PR, I might try to "fix" the duplicate warnings.
    jonathanpeppers committed Jul 3, 2024
    Configuration menu
    Copy the full SHA
    2b8a6fc View commit details
    Browse the repository at this point in the history