Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/System.Private.CoreLib/shared/System')
-rw-r--r--src/System.Private.CoreLib/shared/System/Collections/DictionaryEntry.cs6
-rw-r--r--src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs21
-rw-r--r--src/System.Private.CoreLib/shared/System/Collections/Generic/KeyValuePair.cs6
-rw-r--r--src/System.Private.CoreLib/shared/System/Decimal.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Diagnostics/Debug.cs9
-rw-r--r--src/System.Private.CoreLib/shared/System/IO/Win32Marshal.cs8
-rw-r--r--src/System.Private.CoreLib/shared/System/InsufficientMemoryException.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Marvin.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/MissingFieldException.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/MissingMemberException.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Number.Parsing.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/OutOfMemoryException.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsByRefLikeAttribute.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsReadOnlyAttribute.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/String.Comparison.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/String.Manipulation.cs20
-rw-r--r--src/System.Private.CoreLib/shared/System/String.cs28
-rw-r--r--src/System.Private.CoreLib/shared/System/Threading/DeferredDisposableLifetime.cs8
-rw-r--r--src/System.Private.CoreLib/shared/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Threading/ThreadInterruptedException.cs2
-rw-r--r--src/System.Private.CoreLib/shared/System/Tuple.cs16
-rw-r--r--src/System.Private.CoreLib/shared/System/TupleExtensions.cs44
-rw-r--r--src/System.Private.CoreLib/shared/System/ValueTuple.cs18
23 files changed, 215 insertions, 3 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Collections/DictionaryEntry.cs b/src/System.Private.CoreLib/shared/System/Collections/DictionaryEntry.cs
index 187301a08..eabb01376 100644
--- a/src/System.Private.CoreLib/shared/System/Collections/DictionaryEntry.cs
+++ b/src/System.Private.CoreLib/shared/System/Collections/DictionaryEntry.cs
@@ -2,14 +2,18 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+#if !MONO
using System.ComponentModel;
+#endif
namespace System.Collections
{
// A DictionaryEntry holds a key and a value from a dictionary.
// It is returned by IDictionaryEnumerator::GetEntry().
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct DictionaryEntry
{
private object _key; // Do not rename (binary serialization)
@@ -49,7 +53,9 @@ namespace System.Collections
}
}
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public void Deconstruct(out object key, out object value)
{
key = Key;
diff --git a/src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs b/src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs
index 47105651d..623257d3c 100644
--- a/src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs
+++ b/src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs
@@ -33,7 +33,9 @@ namespace System.Collections.Generic
[DebuggerTypeProxy(typeof(IDictionaryDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
+#if !MONO
[TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary, IReadOnlyDictionary<TKey, TValue>, ISerializable, IDeserializationCallback
{
private struct Entry
@@ -76,11 +78,13 @@ namespace System.Collections.Generic
_comparer = comparer;
}
+#if !MONO
if (typeof(TKey) == typeof(string) && _comparer == null)
{
// To start, move off default comparer for string which is randomised
_comparer = (IEqualityComparer<TKey>)NonRandomizedStringEqualityComparer.Default;
}
+#endif
}
public Dictionary(IDictionary<TKey, TValue> dictionary) : this(dictionary, null) { }
@@ -650,6 +654,7 @@ namespace System.Collections.Generic
bucket = index + 1;
_version++;
+#if !MONO
// Value types never rehash
if (default(TKey) == null && collisionCount > HashHelpers.HashCollisionThreshold && comparer is NonRandomizedStringEqualityComparer)
{
@@ -658,6 +663,7 @@ namespace System.Collections.Generic
_comparer = null;
Resize(entries.Length, true);
}
+#endif
return true;
}
@@ -1156,6 +1162,9 @@ namespace System.Collections.Generic
}
}
+#if MONO
+ [Serializable]
+#endif
public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>,
IDictionaryEnumerator
{
@@ -1281,6 +1290,9 @@ namespace System.Collections.Generic
[DebuggerTypeProxy(typeof(DictionaryKeyCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
+#if MONO
+ [Serializable]
+#endif
public sealed class KeyCollection : ICollection<TKey>, ICollection, IReadOnlyCollection<TKey>
{
private Dictionary<TKey, TValue> _dictionary;
@@ -1392,6 +1404,9 @@ namespace System.Collections.Generic
object ICollection.SyncRoot => ((ICollection)_dictionary).SyncRoot;
+#if MONO
+ [Serializable]
+#endif
public struct Enumerator : IEnumerator<TKey>, IEnumerator
{
private readonly Dictionary<TKey, TValue> _dictionary;
@@ -1464,6 +1479,9 @@ namespace System.Collections.Generic
[DebuggerTypeProxy(typeof(DictionaryValueCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
+#if MONO
+ [Serializable]
+#endif
public sealed class ValueCollection : ICollection<TValue>, ICollection, IReadOnlyCollection<TValue>
{
private Dictionary<TKey, TValue> _dictionary;
@@ -1575,6 +1593,9 @@ namespace System.Collections.Generic
object ICollection.SyncRoot => ((ICollection)_dictionary).SyncRoot;
+#if MONO
+ [Serializable]
+#endif
public struct Enumerator : IEnumerator<TValue>, IEnumerator
{
private readonly Dictionary<TKey, TValue> _dictionary;
diff --git a/src/System.Private.CoreLib/shared/System/Collections/Generic/KeyValuePair.cs b/src/System.Private.CoreLib/shared/System/Collections/Generic/KeyValuePair.cs
index 82c786d40..612d243a2 100644
--- a/src/System.Private.CoreLib/shared/System/Collections/Generic/KeyValuePair.cs
+++ b/src/System.Private.CoreLib/shared/System/Collections/Generic/KeyValuePair.cs
@@ -2,7 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+#if !MONO
using System.ComponentModel;
+#endif
using System.Text;
namespace System.Collections.Generic
@@ -46,7 +48,9 @@ namespace System.Collections.Generic
// It is used by the IEnumerable<T> implementation for both IDictionary<TKey, TValue>
// and IReadOnlyDictionary<TKey, TValue>.
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public readonly struct KeyValuePair<TKey, TValue>
{
private readonly TKey key; // Do not rename (binary serialization)
@@ -73,7 +77,9 @@ namespace System.Collections.Generic
return KeyValuePair.PairToString(Key, Value);
}
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public void Deconstruct(out TKey key, out TValue value)
{
key = Key;
diff --git a/src/System.Private.CoreLib/shared/System/Decimal.cs b/src/System.Private.CoreLib/shared/System/Decimal.cs
index a79a7c3e7..7e472b70c 100644
--- a/src/System.Private.CoreLib/shared/System/Decimal.cs
+++ b/src/System.Private.CoreLib/shared/System/Decimal.cs
@@ -55,7 +55,9 @@ namespace System
[StructLayout(LayoutKind.Sequential)]
[Serializable]
[System.Runtime.Versioning.NonVersionable] // This only applies to field layout
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public readonly partial struct Decimal : IFormattable, IComparable, IConvertible, IComparable<decimal>, IEquatable<decimal>, IDeserializationCallback, ISpanFormattable
{
// Sign mask for the flags field. A value of zero in this bit indicates a
diff --git a/src/System.Private.CoreLib/shared/System/Diagnostics/Debug.cs b/src/System.Private.CoreLib/shared/System/Diagnostics/Debug.cs
index 7bc43ccfc..45f31928d 100644
--- a/src/System.Private.CoreLib/shared/System/Diagnostics/Debug.cs
+++ b/src/System.Private.CoreLib/shared/System/Diagnostics/Debug.cs
@@ -7,12 +7,19 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+#if MONO
+namespace System.Diagnostics.Private
+#else
namespace System.Diagnostics
+#endif
{
/// <summary>
/// Provides a set of properties and methods for debugging code.
/// </summary>
- public static partial class Debug
+#if !MONO
+ public
+#endif
+ static partial class Debug
{
private static readonly object s_lock = new object();
diff --git a/src/System.Private.CoreLib/shared/System/IO/Win32Marshal.cs b/src/System.Private.CoreLib/shared/System/IO/Win32Marshal.cs
index 7888d8d61..cf1d94cba 100644
--- a/src/System.Private.CoreLib/shared/System/IO/Win32Marshal.cs
+++ b/src/System.Private.CoreLib/shared/System/IO/Win32Marshal.cs
@@ -11,6 +11,14 @@ namespace System.IO
/// </summary>
internal static class Win32Marshal
{
+#if MONO
+ static Win32Marshal()
+ {
+ if (!Environment.IsRunningOnWindows)
+ throw new PlatformNotSupportedException();
+ }
+#endif
+
/// <summary>
/// Converts, resetting it, the last Win32 error into a corresponding <see cref="Exception"/> object, optionally
/// including the specified path in the error message.
diff --git a/src/System.Private.CoreLib/shared/System/InsufficientMemoryException.cs b/src/System.Private.CoreLib/shared/System/InsufficientMemoryException.cs
index 68377540e..baa5c9e24 100644
--- a/src/System.Private.CoreLib/shared/System/InsufficientMemoryException.cs
+++ b/src/System.Private.CoreLib/shared/System/InsufficientMemoryException.cs
@@ -16,7 +16,9 @@ namespace System
/// want to recover from these errors.
/// </summary>
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public sealed class InsufficientMemoryException : OutOfMemoryException
{
public InsufficientMemoryException() : base(
diff --git a/src/System.Private.CoreLib/shared/System/Marvin.cs b/src/System.Private.CoreLib/shared/System/Marvin.cs
index e51ad9c55..d25a244c9 100644
--- a/src/System.Private.CoreLib/shared/System/Marvin.cs
+++ b/src/System.Private.CoreLib/shared/System/Marvin.cs
@@ -131,9 +131,13 @@ namespace System
private static unsafe ulong GenerateSeed()
{
+#if MONO
+ return 839433921;
+#else
ulong seed;
Interop.GetRandomBytes((byte*)&seed, sizeof(ulong));
return seed;
+#endif
}
}
}
diff --git a/src/System.Private.CoreLib/shared/System/MissingFieldException.cs b/src/System.Private.CoreLib/shared/System/MissingFieldException.cs
index ba66bed0c..51078acbc 100644
--- a/src/System.Private.CoreLib/shared/System/MissingFieldException.cs
+++ b/src/System.Private.CoreLib/shared/System/MissingFieldException.cs
@@ -7,7 +7,9 @@ using System.Runtime.Serialization;
namespace System
{
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class MissingFieldException : MissingMemberException, ISerializable
{
public MissingFieldException()
diff --git a/src/System.Private.CoreLib/shared/System/MissingMemberException.cs b/src/System.Private.CoreLib/shared/System/MissingMemberException.cs
index a3da06017..7aaa38d31 100644
--- a/src/System.Private.CoreLib/shared/System/MissingMemberException.cs
+++ b/src/System.Private.CoreLib/shared/System/MissingMemberException.cs
@@ -7,7 +7,9 @@ using System.Runtime.Serialization;
namespace System
{
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public partial class MissingMemberException : MemberAccessException
{
public MissingMemberException()
diff --git a/src/System.Private.CoreLib/shared/System/Number.Parsing.cs b/src/System.Private.CoreLib/shared/System/Number.Parsing.cs
index 4d85fc20c..7c7866a90 100644
--- a/src/System.Private.CoreLib/shared/System/Number.Parsing.cs
+++ b/src/System.Private.CoreLib/shared/System/Number.Parsing.cs
@@ -5,7 +5,11 @@
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
+#if MONO
+using System.Runtime.CompilerServices;
+#else
using Internal.Runtime.CompilerServices;
+#endif
namespace System
{
diff --git a/src/System.Private.CoreLib/shared/System/OutOfMemoryException.cs b/src/System.Private.CoreLib/shared/System/OutOfMemoryException.cs
index 194f3bfda..c59852f78 100644
--- a/src/System.Private.CoreLib/shared/System/OutOfMemoryException.cs
+++ b/src/System.Private.CoreLib/shared/System/OutOfMemoryException.cs
@@ -10,7 +10,9 @@ namespace System
/// The exception class for OOM.
/// </summary>
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class OutOfMemoryException : SystemException
{
public OutOfMemoryException() : base(
diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsByRefLikeAttribute.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsByRefLikeAttribute.cs
index 90e49d2a4..61fa2261e 100644
--- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsByRefLikeAttribute.cs
+++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsByRefLikeAttribute.cs
@@ -2,7 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+#if !MONO
using System.ComponentModel;
+#endif
namespace System.Runtime.CompilerServices
{
@@ -10,7 +12,9 @@ namespace System.Runtime.CompilerServices
/// Reserved to be used by the compiler for tracking metadata.
/// This attribute should not be used by developers in source code.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
[AttributeUsage(AttributeTargets.Struct)]
public sealed class IsByRefLikeAttribute : Attribute
{
diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsReadOnlyAttribute.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsReadOnlyAttribute.cs
index 657df4395..5bff2a2c0 100644
--- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsReadOnlyAttribute.cs
+++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/IsReadOnlyAttribute.cs
@@ -2,7 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+#if !MONO
using System.ComponentModel;
+#endif
namespace System.Runtime.CompilerServices
{
@@ -10,7 +12,9 @@ namespace System.Runtime.CompilerServices
/// Reserved to be used by the compiler for tracking metadata.
/// This attribute should not be used by developers in source code.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
[AttributeUsage(AttributeTargets.All, Inherited = false)]
public sealed class IsReadOnlyAttribute : Attribute
{
diff --git a/src/System.Private.CoreLib/shared/System/String.Comparison.cs b/src/System.Private.CoreLib/shared/System/String.Comparison.cs
index 8ac31796b..267bfe1fd 100644
--- a/src/System.Private.CoreLib/shared/System/String.Comparison.cs
+++ b/src/System.Private.CoreLib/shared/System/String.Comparison.cs
@@ -746,7 +746,11 @@ namespace System
// they will return the same hash code.
public override int GetHashCode()
{
+#if MONO
+ return LegacyStringGetHashCode();
+#else
return Marvin.ComputeHash32(ref Unsafe.As<char, byte>(ref _firstChar), _stringLength * 2, Marvin.DefaultSeed);
+#endif
}
// Gets a hash code for this string and this comparison. If strings A and B and comparison C are such
diff --git a/src/System.Private.CoreLib/shared/System/String.Manipulation.cs b/src/System.Private.CoreLib/shared/System/String.Manipulation.cs
index 3359410a9..3da96bb3b 100644
--- a/src/System.Private.CoreLib/shared/System/String.Manipulation.cs
+++ b/src/System.Private.CoreLib/shared/System/String.Manipulation.cs
@@ -1119,7 +1119,11 @@ namespace System
throw new OutOfMemoryException();
string dst = FastAllocateString((int)dstLength);
+#if FEATURE_PORTABLE_SPAN
+ Span<char> dstSpan = new Span<char>(Unsafe.As<Pinnable<char>>(dst), MemoryExtensions.StringAdjustment, dst.Length);
+#else
Span<char> dstSpan = new Span<char>(ref dst.GetRawStringData(), dst.Length);
+#endif
int thisIdx = 0;
int dstIdx = 0;
@@ -1151,12 +1155,24 @@ namespace System
public string[] Split(char separator, StringSplitOptions options = StringSplitOptions.None)
{
- return SplitInternal(new ReadOnlySpan<char>(ref separator, 1), int.MaxValue, options);
+#if FEATURE_PORTABLE_SPAN
+ var srcSpan = new ReadOnlySpan<char>(Unsafe.As<Pinnable<char>>(separator), IntPtr.Zero, 1);
+#else
+ var srcSpan = new ReadOnlySpan<char>(ref separator, 1)
+#endif
+
+ return SplitInternal(srcSpan, int.MaxValue, options);
}
public string[] Split(char separator, int count, StringSplitOptions options = StringSplitOptions.None)
{
- return SplitInternal(new ReadOnlySpan<char>(ref separator, 1), count, options);
+#if FEATURE_PORTABLE_SPAN
+ var srcSpan = new ReadOnlySpan<char>(Unsafe.As<Pinnable<char>>(separator), IntPtr.Zero, 1);
+#else
+ var srcSpan = new ReadOnlySpan<char>(ref separator, 1)
+#endif
+
+ return SplitInternal(srcSpan, count, options);
}
// Creates an array of strings by splitting this string at each
diff --git a/src/System.Private.CoreLib/shared/System/String.cs b/src/System.Private.CoreLib/shared/System/String.cs
index 7050644d9..c573072eb 100644
--- a/src/System.Private.CoreLib/shared/System/String.cs
+++ b/src/System.Private.CoreLib/shared/System/String.cs
@@ -28,6 +28,7 @@ namespace System
// declared constructors.
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.Char[])")]
public extern String(char[] value);
#if PROJECTN
@@ -51,6 +52,7 @@ namespace System
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.Char[], System.Int32, System.Int32)")]
public extern String(char[] value, int startIndex, int length);
#if PROJECTN
@@ -87,6 +89,7 @@ namespace System
[CLSCompliant(false)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.Char*)")]
public extern unsafe String(char* value);
#if PROJECTN
@@ -112,6 +115,7 @@ namespace System
[CLSCompliant(false)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.Char*, System.Int32, System.Int32)")]
public extern unsafe String(char* value, int startIndex, int length);
#if PROJECTN
@@ -148,6 +152,7 @@ namespace System
[CLSCompliant(false)]
[MethodImpl(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.SByte*)")]
public extern unsafe String(sbyte* value);
#if PROJECTN
@@ -173,6 +178,7 @@ namespace System
[CLSCompliant(false)]
[MethodImpl(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.SByte*, System.Int32, System.Int32)")]
public extern unsafe String(sbyte* value, int startIndex, int length);
#if PROJECTN
@@ -235,6 +241,7 @@ namespace System
[CLSCompliant(false)]
[MethodImpl(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.SByte*, System.Int32, System.Int32, System.Text.Encoding)")]
public extern unsafe String(sbyte* value, int startIndex, int length, Encoding enc);
#if PROJECTN
@@ -263,6 +270,15 @@ namespace System
}
byte* pStart = (byte*)(value + startIndex);
+ if (pStart < value)
+ {
+ if (length == 0)
+ return Empty;
+
+ throw new ArgumentNullException(nameof(value));
+ }
+
+ byte* pStart = (byte*)(value + startIndex);
// overflow check
if (pStart < value)
@@ -272,6 +288,7 @@ namespace System
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.Char, System.Int32)")]
public extern String(char c, int count);
#if PROJECTN
@@ -324,6 +341,7 @@ namespace System
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
+ [PreserveDependency("System.String.CreateString(System.ReadOnlySpan`1<System.Char>)")]
public extern String(ReadOnlySpan<char> value);
#if PROJECTN
@@ -764,3 +782,13 @@ namespace System
}
}
}
+
+#if MONO
+
+namespace System.Buffers
+{
+ public delegate void SpanAction<T, in TArg>(Span<T> span, TArg arg);
+ public delegate void ReadOnlySpanAction<T, in TArg>(ReadOnlySpan<T> span, TArg arg);
+}
+
+#endif
diff --git a/src/System.Private.CoreLib/shared/System/Threading/DeferredDisposableLifetime.cs b/src/System.Private.CoreLib/shared/System/Threading/DeferredDisposableLifetime.cs
index e2b1eb983..43b8392bf 100644
--- a/src/System.Private.CoreLib/shared/System/Threading/DeferredDisposableLifetime.cs
+++ b/src/System.Private.CoreLib/shared/System/Threading/DeferredDisposableLifetime.cs
@@ -46,6 +46,14 @@ namespace System.Threading
//
private int _count;
+#if MONO
+ static DeferredDisposableLifetime()
+ {
+ if (!Environment.IsRunningOnWindows)
+ throw new PlatformNotSupportedException();
+ }
+#endif
+
public bool AddRef(T obj)
{
while (true)
diff --git a/src/System.Private.CoreLib/shared/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs b/src/System.Private.CoreLib/shared/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
index 9e3b0bc28..baf0a5025 100644
--- a/src/System.Private.CoreLib/shared/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
+++ b/src/System.Private.CoreLib/shared/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
@@ -716,7 +716,9 @@ namespace System.Threading.Tasks
private static void ContractAssertMonitorStatus(object syncObj, bool held)
{
Debug.Assert(syncObj != null, "The monitor object to check must be provided.");
+#if !MONO
Debug.Assert(Monitor.IsEntered(syncObj) == held, "The locking scheme was not correctly followed.");
+#endif
}
/// <summary>Gets the options to use for tasks.</summary>
diff --git a/src/System.Private.CoreLib/shared/System/Threading/ThreadInterruptedException.cs b/src/System.Private.CoreLib/shared/System/Threading/ThreadInterruptedException.cs
index 0d0288da2..13fa1e91b 100644
--- a/src/System.Private.CoreLib/shared/System/Threading/ThreadInterruptedException.cs
+++ b/src/System.Private.CoreLib/shared/System/Threading/ThreadInterruptedException.cs
@@ -10,7 +10,9 @@ namespace System.Threading
/// An exception class to indicate that the thread was interrupted from a waiting state.
/// </summary>
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class ThreadInterruptedException : SystemException
{
public ThreadInterruptedException() : base(
diff --git a/src/System.Private.CoreLib/shared/System/Tuple.cs b/src/System.Private.CoreLib/shared/System/Tuple.cs
index ebbd156dd..8529e01f9 100644
--- a/src/System.Private.CoreLib/shared/System/Tuple.cs
+++ b/src/System.Private.CoreLib/shared/System/Tuple.cs
@@ -103,7 +103,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -203,7 +205,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -318,7 +322,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -444,7 +450,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3, T4> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -581,7 +589,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3, T4, T5> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -729,7 +739,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3, T4, T5, T6> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -888,7 +900,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3, T4, T5, T6, T7> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
@@ -1058,7 +1072,9 @@ namespace System
}
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public class Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> : IStructuralEquatable, IStructuralComparable, IComparable, ITupleInternal, ITuple
{
private readonly T1 m_Item1; // Do not rename (binary serialization)
diff --git a/src/System.Private.CoreLib/shared/System/TupleExtensions.cs b/src/System.Private.CoreLib/shared/System/TupleExtensions.cs
index 106a88a08..f217da926 100644
--- a/src/System.Private.CoreLib/shared/System/TupleExtensions.cs
+++ b/src/System.Private.CoreLib/shared/System/TupleExtensions.cs
@@ -2,7 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+#if !MONO
using System.ComponentModel;
+#endif
using System.Runtime.CompilerServices;
namespace System
@@ -16,7 +18,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 1 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1>(
this Tuple<T1> value,
out T1 item1)
@@ -27,7 +31,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 2 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2>(
this Tuple<T1, T2> value,
out T1 item1, out T2 item2)
@@ -39,7 +45,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 3 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3>(
this Tuple<T1, T2, T3> value,
out T1 item1, out T2 item2, out T3 item3)
@@ -52,7 +60,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 4 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4>(
this Tuple<T1, T2, T3, T4> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4)
@@ -66,7 +76,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 5 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5>(
this Tuple<T1, T2, T3, T4, T5> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5)
@@ -81,7 +93,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 6 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6>(
this Tuple<T1, T2, T3, T4, T5, T6> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6)
@@ -97,7 +111,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 7 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7>(
this Tuple<T1, T2, T3, T4, T5, T6, T7> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7)
@@ -114,7 +130,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 8 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8)
@@ -132,7 +150,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 9 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9)
@@ -151,7 +171,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 10 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10)
@@ -171,7 +193,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 11 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11)
@@ -192,7 +216,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 12 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12)
@@ -214,7 +240,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 13 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13)
@@ -237,7 +265,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 14 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14)
@@ -261,7 +291,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 15 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15)
@@ -286,7 +318,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 16 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16)
@@ -312,7 +346,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 17 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16, T17>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17)
@@ -339,7 +375,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 18 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16, T17, T18>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18)
@@ -367,7 +405,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 19 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16, T17, T18, T19>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19)
@@ -396,7 +436,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 20 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16, T17, T18, T19, T20>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20)
@@ -426,7 +468,9 @@ namespace System
/// <summary>
/// Deconstruct a properly nested <see cref="Tuple"/> with 21 elements.
/// </summary>
+#if !MONO
[EditorBrowsable(EditorBrowsableState.Never)]
+#endif
public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(
this Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15, T16, T17, T18, T19, T20, T21>>> value,
out T1 item1, out T2 item2, out T3 item3, out T4 item4, out T5 item5, out T6 item6, out T7 item7, out T8 item8, out T9 item9, out T10 item10, out T11 item11, out T12 item12, out T13 item13, out T14 item14, out T15 item15, out T16 item16, out T17 item17, out T18 item18, out T19 item19, out T20 item20, out T21 item21)
diff --git a/src/System.Private.CoreLib/shared/System/ValueTuple.cs b/src/System.Private.CoreLib/shared/System/ValueTuple.cs
index 7423dba41..b486573ff 100644
--- a/src/System.Private.CoreLib/shared/System/ValueTuple.cs
+++ b/src/System.Private.CoreLib/shared/System/ValueTuple.cs
@@ -29,7 +29,9 @@ namespace System
/// - their members (such as Item1, Item2, etc) are fields rather than properties.
/// </summary>
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple
: IEquatable<ValueTuple>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple>, IValueTupleInternal, ITuple
{
@@ -299,7 +301,9 @@ namespace System
/// <summary>Represents a 1-tuple, or singleton, as a value type.</summary>
/// <typeparam name="T1">The type of the tuple's only component.</typeparam>
[Serializable]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1>
: IEquatable<ValueTuple<T1>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1>>, IValueTupleInternal, ITuple
{
@@ -466,7 +470,9 @@ namespace System
/// <typeparam name="T2">The type of the tuple's second component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2>
: IEquatable<ValueTuple<T1, T2>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2>>, IValueTupleInternal, ITuple
{
@@ -677,7 +683,9 @@ namespace System
/// <typeparam name="T3">The type of the tuple's third component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3>
: IEquatable<ValueTuple<T1, T2, T3>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3>>, IValueTupleInternal, ITuple
{
@@ -886,7 +894,9 @@ namespace System
/// <typeparam name="T4">The type of the tuple's fourth component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3, T4>
: IEquatable<ValueTuple<T1, T2, T3, T4>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3, T4>>, IValueTupleInternal, ITuple
{
@@ -1114,7 +1124,9 @@ namespace System
/// <typeparam name="T5">The type of the tuple's fifth component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3, T4, T5>
: IEquatable<ValueTuple<T1, T2, T3, T4, T5>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5>>, IValueTupleInternal, ITuple
{
@@ -1361,7 +1373,9 @@ namespace System
/// <typeparam name="T6">The type of the tuple's sixth component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3, T4, T5, T6>
: IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6>>, IValueTupleInternal, ITuple
{
@@ -1627,7 +1641,9 @@ namespace System
/// <typeparam name="T7">The type of the tuple's seventh component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3, T4, T5, T6, T7>
: IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6, T7>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6, T7>>, IValueTupleInternal, ITuple
{
@@ -1912,7 +1928,9 @@ namespace System
/// <typeparam name="TRest">The type of the tuple's eighth component.</typeparam>
[Serializable]
[StructLayout(LayoutKind.Auto)]
+#if !MONO
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+#endif
public struct ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>
: IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, IValueTupleInternal, ITuple
where TRest : struct