Files
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

80 lines
2.1 KiB
C#

// -----------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// -----------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Runtime.Serialization;
namespace Microsoft.Internal
{
internal static partial class Assumes
{
[DebuggerStepThrough]
internal static void NotNull<T>(T value)
where T : class
{
IsTrue(value != null);
}
[DebuggerStepThrough]
internal static void NotNull<T1, T2>(T1 value1, T2 value2)
where T1 : class
where T2 : class
{
NotNull(value1);
NotNull(value2);
}
[DebuggerStepThrough]
internal static void NotNull<T1, T2, T3>(T1 value1, T2 value2, T3 value3)
where T1 : class
where T2 : class
where T3 : class
{
NotNull(value1);
NotNull(value2);
NotNull(value3);
}
[DebuggerStepThrough]
internal static void NotNullOrEmpty(string value)
{
NotNull(value);
IsTrue(value.Length > 0);
}
[DebuggerStepThrough]
internal static void IsTrue(bool condition)
{
if (!condition)
{
throw UncatchableException(null);
}
}
[DebuggerStepThrough]
internal static void IsTrue(bool condition, [Localizable(false)]string message)
{
if (!condition)
{
throw UncatchableException(message);
}
}
[DebuggerStepThrough]
internal static T NotReachable<T>()
{
throw UncatchableException("Code path should never be reached!");
}
[DebuggerStepThrough]
private static Exception UncatchableException([Localizable(false)]string message)
{
return new InternalErrorException(message);
}
}
}