From dc34935912fb578e1cf1107f3ad0707695d2f98a Mon Sep 17 00:00:00 2001 From: tabarbe Date: Fri, 23 Jul 2010 15:39:06 +0000 Subject: Boogie: AssemblyInfo.cs is no longer required for the build; cce.cs is. --- Source/Provers/Simplify/AssemblyInfo.cs | 4 -- Source/Provers/Simplify/cce.cs | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 4 deletions(-) delete mode 100644 Source/Provers/Simplify/AssemblyInfo.cs create mode 100644 Source/Provers/Simplify/cce.cs (limited to 'Source/Provers') diff --git a/Source/Provers/Simplify/AssemblyInfo.cs b/Source/Provers/Simplify/AssemblyInfo.cs deleted file mode 100644 index ed1d3451..00000000 --- a/Source/Provers/Simplify/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyKeyFile("..\\..\\InterimKey.snk")] diff --git a/Source/Provers/Simplify/cce.cs b/Source/Provers/Simplify/cce.cs new file mode 100644 index 00000000..1799d4ab --- /dev/null +++ b/Source/Provers/Simplify/cce.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.Text; +using Microsoft.Boogie; + + /// + /// A class containing static methods to extend the functionality of Code Contracts + /// + +public static class cce { + [Pure] + public static T NonNull(T t) { + Contract.Assert(t != null); + return t; + } + [Pure] + public static bool NonNullElements(IEnumerable collection) { + return collection != null && Contract.ForAll(collection, c => c != null); + } + [Pure] + public static bool NonNullElements(IDictionary collection) { + return collection != null && NonNullElements(collection.Keys) && NonNullElements(collection.Values); + } + [Pure] + public static bool NonNullElements(VariableSeq collection) { + return collection != null && Contract.ForAll(0, collection.Length, i => collection[i] != null); + } + public class UnreachableException : Exception { + public UnreachableException() { + } + } + [Pure] + public static void BeginExpose(object o) { + } + [Pure] + public static void EndExpose() { + } + public static bool IsPeerConsistent(object o) { + return true; + } + public static bool IsConsistent(object o) { + return true; + } + public static bool IsExposable(object o) { + return true; + } + internal static bool IsExposed(object o) { + return true; + } + public static class Owner { + [Pure] + public static bool Same(object o, object p) { + return true; + } + public static void AssignSame(object o, object p) { + } + public static object ElementProxy(object o) { + return o; + } + public static bool None(object o) { + return true; + } + } + internal static void LoopInvariant(bool p) { + Contract.Assert(p); + } +} + +public class PeerAttribute : System.Attribute { +}public class RepAttribute : System.Attribute { +}public class CapturedAttribute : System.Attribute { +}public class NotDelayedAttribute : System.Attribute { +}public class NoDefaultContractAttribute : System.Attribute { +}public class VerifyAttribute : System.Attribute { + public VerifyAttribute(bool b) { + + } +}public class StrictReadonlyAttribute : System.Attribute { + } +public class AdditiveAttribute : System.Attribute { +} \ No newline at end of file -- cgit v1.2.3