-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Java.Interop] remove
DynamicallyAccessedMemberTypes.Interfaces
Context: dotnet/android#9630 As #9630 required new declarations of `DynamicallyAccessedMemberTypes.Interfaces`, we intestigated to see *why* these were needed in Java.Interop. There are two cases: var listIface = typeof (IList<>); var listType = (from iface in type.GetInterfaces ().Concat (new[]{type}) where (listIface).IsAssignableFrom (iface.IsGenericType ? iface.GetGenericTypeDefinition () : iface) select iface) .FirstOrDefault (); This first one, if `IList<>` were trimmed away. We don't actually care, as everything in this code path would still work. We can suppress the warning instead. The second case: JniValueMarshalerAttribute? ifaceAttribute = null; foreach (var iface in type.GetInterfaces ()) { marshalerAttr = iface.GetCustomAttribute<JniValueMarshalerAttribute> (); if (marshalerAttr != null) { if (ifaceAttribute != null) throw new NotSupportedException ($"There is more than one interface with custom marshaler for type {type}."); ifaceAttribute = marshalerAttr; } } if (ifaceAttribute != null) return (JniValueMarshaler) Activator.CreateInstance (ifaceAttribute.MarshalerType)!; Feels like we should be able to remove this code completely. With these changes we can remove `DynamicallyAccessedMemberTypes.Interfaces`. I also introduced `build-tools/trim-analyzers/trim-analyzers.props` that will setup the appropriate trimmer MSBuild properties to make trimmer warnings an error. This should keep us from accidentally creating warnings. I only use this setting in projects that were already using `$(EnableAotAnalyzer)`.
- Loading branch information
1 parent
f800ea5
commit 02bfa6e
Showing
12 changed files
with
139 additions
and
96 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<!-- Import this to enable trim warnings of all kinds --> | ||
<Project> | ||
<PropertyGroup> | ||
<!-- Sets assembly metadata, enable analyzers --> | ||
<IsTrimmable>true</IsTrimmable> | ||
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer> | ||
<EnableAotAnalyzer>true</EnableAotAnalyzer> | ||
<!-- In app projects, tells ILLink to emit warnings as errors --> | ||
<ILLinkTreatWarningsAsErrors>true</ILLinkTreatWarningsAsErrors> | ||
<!-- | ||
Trim warnings, codes listed here: | ||
* https://github.com/dotnet/runtime/blob/7403a062960d092c73ce3f07d3ff323ffdf7de43/src/tools/illink/src/linker/Resources/Strings.resx | ||
* https://github.com/dotnet/docs/tree/9cb45cf9cd34f3b7259a023c3d92a124a87090d5/docs/core/deploying/trimming/trim-warnings | ||
--> | ||
<WarningsAsErrors> | ||
$(WarningsAsErrors); | ||
IL2000;IL2001;IL2002;IL2003;IL2004; | ||
IL2005;IL2006;IL2007;IL2008;IL2009; | ||
IL2010;IL2011;IL2012;IL2013;IL2014; | ||
IL2015;IL2016;IL2017;IL2018;IL2019; | ||
IL2020;IL2021;IL2022;IL2023;IL2024; | ||
IL2025;IL2026;IL2027;IL2028;IL2029; | ||
IL2030;IL2031;IL2032;IL2033;IL2034; | ||
IL2035;IL2036;IL2037;IL2038;IL2039; | ||
IL2040;IL2041;IL2042;IL2043;IL2044; | ||
IL2045;IL2046;IL2047;IL2048;IL2049; | ||
IL2050;IL2051;IL2052;IL2053;IL2054; | ||
IL2055;IL2056;IL2057;IL2058;IL2059; | ||
IL2060;IL2061;IL2062;IL2063;IL2064; | ||
IL2065;IL2066;IL2067;IL2068;IL2069; | ||
IL2070;IL2071;IL2072;IL2073;IL2074; | ||
IL2075;IL2076;IL2077;IL2078;IL2079; | ||
IL2080;IL2081;IL2082;IL2083;IL2084; | ||
IL2085;IL2086;IL2087;IL2088;IL2089; | ||
IL2090;IL2091;IL2092;IL2093;IL2094; | ||
IL2095;IL2096;IL2097;IL2098;IL2099; | ||
IL2100;IL2101;IL2102;IL2103;IL2104; | ||
IL2105;IL2106;IL2107;IL2108;IL2109; | ||
IL2110;IL2111;IL2112;IL2113;IL2114; | ||
IL2115;IL2116;IL2117;IL2118;IL2119; | ||
IL2120;IL2121;IL2122;IL2123;IL2124; | ||
IL2125;IL2126;IL2127;IL2128;IL2129; | ||
</WarningsAsErrors> | ||
<!-- In NativeAOT app projects, tells Ilc to emit warnings as errors --> | ||
<IlcTreatWarningsAsErrors>true</IlcTreatWarningsAsErrors> | ||
<!-- | ||
NativeAOT warnings, codes listed here: | ||
* https://github.com/dotnet/docs/tree/9cb45cf9cd34f3b7259a023c3d92a124a87090d5/docs/core/deploying/native-aot/warnings | ||
--> | ||
<WarningsAsErrors> | ||
$(WarningsAsErrors); | ||
IL3050;IL3051;IL3052;IL3053;IL3054;IL3055;IL3056; | ||
</WarningsAsErrors> | ||
</PropertyGroup> | ||
</Project> |
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.