Ifdef out DynamicDependencies that are not necessary (#87209)
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>
Thu, 8 Jun 2023 09:14:36 +0000 (18:14 +0900)
committerGitHub <noreply@github.com>
Thu, 8 Jun 2023 09:14:36 +0000 (18:14 +0900)
These create unnecessary reflection targets. Trimming done by NativeAOT will do the right thing and it is redundant on CoreCLR.

src/libraries/System.Private.CoreLib/src/System/AppContext.cs
src/libraries/System.Private.CoreLib/src/System/String.cs

index 9023a33..23e968c 100644 (file)
@@ -71,10 +71,14 @@ namespace System
         }
 
 #pragma warning disable CS0067 // events raised by the VM
+#if MONO
         [field: DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(UnhandledExceptionEventArgs))]
+#endif
         internal static event UnhandledExceptionEventHandler? UnhandledException;
 
+#if MONO
         [field: DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(FirstChanceExceptionEventArgs))]
+#endif
         internal static event EventHandler<FirstChanceExceptionEventArgs>? FirstChanceException;
 #pragma warning restore CS0067
 
index f3429dd..d20d5d2 100644 (file)
@@ -69,7 +69,9 @@ namespace System
          */
 
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.Char[])")]
+#endif
         public extern String(char[]? value);
 
         private static string Ctor(char[]? value)
@@ -88,7 +90,9 @@ namespace System
         }
 
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.Char[],System.Int32,System.Int32)")]
+#endif
         public extern String(char[] value, int startIndex, int length);
 
         private static string Ctor(char[] value, int startIndex, int length)
@@ -113,7 +117,9 @@ namespace System
 
         [CLSCompliant(false)]
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.Char*)")]
+#endif
         public extern unsafe String(char* value);
 
         private static unsafe string Ctor(char* ptr)
@@ -137,7 +143,9 @@ namespace System
 
         [CLSCompliant(false)]
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.Char*,System.Int32,System.Int32)")]
+#endif
         public extern unsafe String(char* value, int startIndex, int length);
 
         private static unsafe string Ctor(char* ptr, int startIndex, int length)
@@ -169,7 +177,9 @@ namespace System
 
         [CLSCompliant(false)]
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.SByte*)")]
+#endif
         public extern unsafe String(sbyte* value);
 
         private static unsafe string Ctor(sbyte* value)
@@ -185,7 +195,9 @@ namespace System
 
         [CLSCompliant(false)]
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.SByte*,System.Int32,System.Int32)")]
+#endif
         public extern unsafe String(sbyte* value, int startIndex, int length);
 
         private static unsafe string Ctor(sbyte* value, int startIndex, int length)
@@ -239,7 +251,9 @@ namespace System
 
         [CLSCompliant(false)]
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.SByte*,System.Int32,System.Int32,System.Text.Encoding)")]
+#endif
         public extern unsafe String(sbyte* value, int startIndex, int length, Encoding enc);
 
         private static unsafe string Ctor(sbyte* value, int startIndex, int length, Encoding? enc)
@@ -268,7 +282,9 @@ namespace System
         }
 
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.Char,System.Int32)")]
+#endif
         public extern String(char c, int count);
 
         private static string Ctor(char c, int count)
@@ -288,7 +304,9 @@ namespace System
         }
 
         [MethodImpl(MethodImplOptions.InternalCall)]
+#if MONO
         [DynamicDependency("Ctor(System.ReadOnlySpan{System.Char})")]
+#endif
         public extern String(ReadOnlySpan<char> value);
 
         private static unsafe string Ctor(ReadOnlySpan<char> value)