Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Contract.cs
Go to the documentation of this file.
5
7
8public static class Contract
9{
11 {
12 add
13 {
14 ContractHelper.InternalContractFailed += value;
15 }
16 remove
17 {
18 ContractHelper.InternalContractFailed -= value;
19 }
20 }
21
22 [Conditional("DEBUG")]
23 [Conditional("CONTRACTS_FULL")]
24 public static void Assume([DoesNotReturnIf(false)] bool condition)
25 {
26 if (!condition)
27 {
28 ReportFailure(ContractFailureKind.Assume, null, null, null);
29 }
30 }
31
32 [Conditional("DEBUG")]
33 [Conditional("CONTRACTS_FULL")]
34 public static void Assume([DoesNotReturnIf(false)] bool condition, string? userMessage)
35 {
36 if (!condition)
37 {
39 }
40 }
41
42 [Conditional("DEBUG")]
43 [Conditional("CONTRACTS_FULL")]
44 public static void Assert([DoesNotReturnIf(false)] bool condition)
45 {
46 if (!condition)
47 {
48 ReportFailure(ContractFailureKind.Assert, null, null, null);
49 }
50 }
51
52 [Conditional("DEBUG")]
53 [Conditional("CONTRACTS_FULL")]
54 public static void Assert([DoesNotReturnIf(false)] bool condition, string? userMessage)
55 {
56 if (!condition)
57 {
59 }
60 }
61
62 [Conditional("CONTRACTS_FULL")]
63 public static void Requires(bool condition)
64 {
65 AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires");
66 }
67
68 [Conditional("CONTRACTS_FULL")]
69 public static void Requires(bool condition, string? userMessage)
70 {
71 AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires");
72 }
73
74 public static void Requires<TException>(bool condition) where TException : Exception
75 {
76 AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires<TException>");
77 }
78
79 public static void Requires<TException>(bool condition, string? userMessage) where TException : Exception
80 {
81 AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires<TException>");
82 }
83
84 [Conditional("CONTRACTS_FULL")]
85 public static void Ensures(bool condition)
86 {
87 AssertMustUseRewriter(ContractFailureKind.Postcondition, "Ensures");
88 }
89
90 [Conditional("CONTRACTS_FULL")]
91 public static void Ensures(bool condition, string? userMessage)
92 {
93 AssertMustUseRewriter(ContractFailureKind.Postcondition, "Ensures");
94 }
95
96 [Conditional("CONTRACTS_FULL")]
97 public static void EnsuresOnThrow<TException>(bool condition) where TException : Exception
98 {
99 AssertMustUseRewriter(ContractFailureKind.PostconditionOnException, "EnsuresOnThrow");
100 }
101
102 [Conditional("CONTRACTS_FULL")]
103 public static void EnsuresOnThrow<TException>(bool condition, string? userMessage) where TException : Exception
104 {
105 AssertMustUseRewriter(ContractFailureKind.PostconditionOnException, "EnsuresOnThrow");
106 }
107
108 public static T Result<T>()
109 {
110 return default(T);
111 }
112
113 public static T ValueAtReturn<T>(out T value)
114 {
115 value = default(T);
116 return value;
117 }
118
119 public static T OldValue<T>(T value)
120 {
121 return default(T);
122 }
123
124 [Conditional("CONTRACTS_FULL")]
125 public static void Invariant(bool condition)
126 {
127 AssertMustUseRewriter(ContractFailureKind.Invariant, "Invariant");
128 }
129
130 [Conditional("CONTRACTS_FULL")]
131 public static void Invariant(bool condition, string? userMessage)
132 {
133 AssertMustUseRewriter(ContractFailureKind.Invariant, "Invariant");
134 }
135
136 public static bool ForAll(int fromInclusive, int toExclusive, Predicate<int> predicate)
137 {
139 {
141 }
142 if (predicate == null)
143 {
144 throw new ArgumentNullException("predicate");
145 }
146 for (int i = fromInclusive; i < toExclusive; i++)
147 {
148 if (!predicate(i))
149 {
150 return false;
151 }
152 }
153 return true;
154 }
155
156 public static bool ForAll<T>(IEnumerable<T> collection, Predicate<T> predicate)
157 {
158 if (collection == null)
159 {
160 throw new ArgumentNullException("collection");
161 }
162 if (predicate == null)
163 {
164 throw new ArgumentNullException("predicate");
165 }
166 foreach (T item in collection)
167 {
168 if (!predicate(item))
169 {
170 return false;
171 }
172 }
173 return true;
174 }
175
176 public static bool Exists(int fromInclusive, int toExclusive, Predicate<int> predicate)
177 {
179 {
181 }
182 if (predicate == null)
183 {
184 throw new ArgumentNullException("predicate");
185 }
186 for (int i = fromInclusive; i < toExclusive; i++)
187 {
188 if (predicate(i))
189 {
190 return true;
191 }
192 }
193 return false;
194 }
195
196 public static bool Exists<T>(IEnumerable<T> collection, Predicate<T> predicate)
197 {
198 if (collection == null)
199 {
200 throw new ArgumentNullException("collection");
201 }
202 if (predicate == null)
203 {
204 throw new ArgumentNullException("predicate");
205 }
206 foreach (T item in collection)
207 {
208 if (predicate(item))
209 {
210 return true;
211 }
212 }
213 return false;
214 }
215
216 [Conditional("CONTRACTS_FULL")]
217 public static void EndContractBlock()
218 {
219 }
220
222 {
223 Assembly assembly = typeof(Contract).Assembly;
225 Assembly assembly2 = null;
226 for (int i = 0; i < stackTrace.FrameCount; i++)
227 {
228 Assembly assembly3 = stackTrace.GetFrame(i).GetMethod()?.DeclaringType?.Assembly;
229 if (assembly3 != null && assembly3 != assembly)
230 {
232 break;
233 }
234 }
235 if ((object)assembly2 == null)
236 {
238 }
239 string name = assembly2.GetName().Name;
240 ContractHelper.TriggerFailure(kind, SR.Format(SR.MustUseCCRewrite, contractKind, name), null, null, null);
241 }
242
256}
static void Assert([DoesNotReturnIf(false)] bool condition)
Definition Contract.cs:44
static void Assume([DoesNotReturnIf(false)] bool condition)
Definition Contract.cs:24
static void Assume([DoesNotReturnIf(false)] bool condition, string? userMessage)
Definition Contract.cs:34
static void Requires(bool condition)
Definition Contract.cs:63
static void Invariant(bool condition, string? userMessage)
Definition Contract.cs:131
static void Assert([DoesNotReturnIf(false)] bool condition, string? userMessage)
Definition Contract.cs:54
static T ValueAtReturn< T >(out T value)
Definition Contract.cs:113
static void Ensures(bool condition)
Definition Contract.cs:85
static void EnsuresOnThrow< TException >(bool condition)
Definition Contract.cs:97
static bool ForAll< T >(IEnumerable< T > collection, Predicate< T > predicate)
Definition Contract.cs:156
static bool Exists(int fromInclusive, int toExclusive, Predicate< int > predicate)
Definition Contract.cs:176
static void Invariant(bool condition)
Definition Contract.cs:125
static bool Exists< T >(IEnumerable< T > collection, Predicate< T > predicate)
Definition Contract.cs:196
static void AssertMustUseRewriter(ContractFailureKind kind, string contractKind)
Definition Contract.cs:221
static void ReportFailure(ContractFailureKind failureKind, string userMessage, string conditionText, Exception innerException)
Definition Contract.cs:244
static void Requires(bool condition, string? userMessage)
Definition Contract.cs:69
static bool ForAll(int fromInclusive, int toExclusive, Predicate< int > predicate)
Definition Contract.cs:136
static ? EventHandler< ContractFailedEventArgs > ContractFailed
Definition Contract.cs:11
static void Requires< TException >(bool condition)
Definition Contract.cs:74
static void Ensures(bool condition, string? userMessage)
Definition Contract.cs:91
static void TriggerFailure(ContractFailureKind kind, string? displayMessage, string? userMessage, string? conditionText, Exception? innerException)
static ? string RaiseContractFailedEvent(ContractFailureKind failureKind, string? userMessage, string? conditionText, Exception? innerException)
static string MustUseCCRewrite
Definition SR.cs:1644
static string Arg_EnumIllegalVal
Definition SR.cs:144
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Argument_ToExclusiveLessThanFromExclusive
Definition SR.cs:886
Definition SR.cs:7