dotnet-core/release-notes/5.0/api-diff/netstandard2.1/5.0_System.Runtime.CompilerServices.md
Anirudh Agnihotry fdaef4427a
Api diff between net5.0 and netcoreapp3.1 & netstandard2.1 (#5610)
* .net shared framework changes

* standalone net 5.0 packages

* netstanard2.1 diff

* improving the directory structure

* adding a readme file

* aspnetcore shared framework changes

* remove wrong process type change diff

* adding comments about apis being to inbox from package
2020-11-18 10:40:01 -08:00

4.4 KiB

System.Runtime.CompilerServices

 namespace System.Runtime.CompilerServices {
+    public sealed class CallerArgumentExpressionAttribute : Attribute {
+        public CallerArgumentExpressionAttribute(string parameterName);
+        public string ParameterName { get; }
+    }
+    public sealed class CppInlineNamespaceAttribute : Attribute {
+        public CppInlineNamespaceAttribute(string dottedName);
+    }
+    public sealed class IDispatchConstantAttribute : CustomConstantAttribute {
+        public IDispatchConstantAttribute();
+        public override object Value { get; }
+    }
+    public static class IsExternalInit
     public enum MethodImplOptions {
+        AggressiveOptimization = 512,
     }
+    public sealed class ModuleInitializerAttribute : Attribute {
+        public ModuleInitializerAttribute();
+    }
+    public sealed class PreserveBaseOverridesAttribute : Attribute {
+        public PreserveBaseOverridesAttribute();
+    }
     public static class RuntimeFeature {
+        public const string CovariantReturnsOfClasses = "CovariantReturnsOfClasses";
+        public const string UnmanagedSignatureCallingConvention = "UnmanagedSignatureCallingConvention";
     }
     public static class RuntimeHelpers {
+        public static IntPtr AllocateTypeAssociatedMemory(Type type, int size);
     }
+    public sealed class SkipLocalsInitAttribute : Attribute {
+        public SkipLocalsInitAttribute();
+    }
     public sealed class SwitchExpressionException : InvalidOperationException {
+        public override string Message { get; }
     }
+    public static class Unsafe {
+        public unsafe static void* Add<T>(void* source, int elementOffset);
+        public static ref T Add<T>(ref T source, int elementOffset);
+        public static ref T Add<T>(ref T source, IntPtr elementOffset);
+        public static ref T AddByteOffset<T>(ref T source, IntPtr byteOffset);
+        public static bool AreSame<T>(ref T left, ref T right);
+        public static T As<T>(object o) where T : class;
+        public static ref TTo As<TFrom, TTo>(ref TFrom source);
+        public unsafe static void* AsPointer<T>(ref T value);
+        public unsafe static ref T AsRef<T>(void* source);
+        public static ref T AsRef<T>(in T source);
+        public static IntPtr ByteOffset<T>(ref T origin, ref T target);
+        public unsafe static void Copy<T>(void* destination, ref T source);
+        public unsafe static void Copy<T>(ref T destination, void* source);
+        public static void CopyBlock(ref byte destination, ref byte source, uint byteCount);
+        public unsafe static void CopyBlock(void* destination, void* source, uint byteCount);
+        public static void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount);
+        public unsafe static void CopyBlockUnaligned(void* destination, void* source, uint byteCount);
+        public static void InitBlock(ref byte startAddress, byte value, uint byteCount);
+        public unsafe static void InitBlock(void* startAddress, byte value, uint byteCount);
+        public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount);
+        public unsafe static void InitBlockUnaligned(void* startAddress, byte value, uint byteCount);
+        public static bool IsAddressGreaterThan<T>(ref T left, ref T right);
+        public static bool IsAddressLessThan<T>(ref T left, ref T right);
+        public static bool IsNullRef<T>(ref T source);
+        public static ref T NullRef<T>();
+        public unsafe static T Read<T>(void* source);
+        public static T ReadUnaligned<T>(ref byte source);
+        public unsafe static T ReadUnaligned<T>(void* source);
+        public static int SizeOf<T>();
+        public static void SkipInit<T>(out T value);
+        public unsafe static void* Subtract<T>(void* source, int elementOffset);
+        public static ref T Subtract<T>(ref T source, int elementOffset);
+        public static ref T Subtract<T>(ref T source, IntPtr elementOffset);
+        public static ref T SubtractByteOffset<T>(ref T source, IntPtr byteOffset);
+        public static ref T Unbox<T>(object box) where T : struct;
+        public unsafe static void Write<T>(void* destination, T value);
+        public static void WriteUnaligned<T>(ref byte destination, T value);
+        public unsafe static void WriteUnaligned<T>(void* destination, T value);
+    }
 }