Skip to content
This repository was archived by the owner on Jul 15, 2023. It is now read-only.

Commit 84bbcb1

Browse files
Merge pull request #470 from tom-englert/SyncR#
Add missing contracts found when aligning CC with R#
2 parents 9cf9f54 + b87d7a0 commit 84bbcb1

File tree

49 files changed

+175
-22
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+175
-22
lines changed

Microsoft.Research/Contracts/MsCorlib/System.ActivationContext.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,17 @@ private ActivationContext ()
5858

5959
public static System.ActivationContext CreatePartialActivationContext (ApplicationIdentity identity)
6060
{
61+
Contract.Requires(identity != null);
6162
Contract.Ensures (Contract.Result<System.ActivationContext>() != null);
6263

6364
return default(System.ActivationContext);
6465
}
6566

6667
public static System.ActivationContext CreatePartialActivationContext (ApplicationIdentity identity, string[] manifestPaths)
6768
{
69+
Contract.Requires(identity != null);
70+
Contract.Requires(manifestPaths != null);
6871
Contract.Ensures (Contract.Result<System.ActivationContext>() != null);
69-
Contract.Ensures (manifestPaths.Length >= 0);
7072

7173
return default(System.ActivationContext);
7274
}

Microsoft.Research/Contracts/MsCorlib/System.Collections.ArrayList.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public virtual object[] ToArray()
6060
public static ArrayList Synchronized(ArrayList list)
6161
{
6262
Contract.Requires(list != null);
63-
//Contract.Ensures(result.IsSynchronized);
63+
Contract.Ensures(Contract.Result<ArrayList>() != null);
6464

6565
return default(ArrayList);
6666
}
@@ -138,17 +138,16 @@ public virtual void RemoveRange(int index, int count)
138138
public static ArrayList ReadOnly(ArrayList list)
139139
{
140140
Contract.Requires(list != null);
141+
Contract.Ensures(Contract.Result<ArrayList>() != null);
141142
Contract.Ensures(Contract.Result<ArrayList>().IsReadOnly);
142143

143-
Contract.Ensures(Contract.Result<ArrayList>() != null);
144144
return default(ArrayList);
145145
}
146146
public static IList ReadOnly(IList list)
147147
{
148148
Contract.Requires(list != null);
149-
Contract.Ensures(Contract.Result<IList>().IsReadOnly);
150-
151149
Contract.Ensures(Contract.Result<IList>() != null);
150+
Contract.Ensures(Contract.Result<IList>().IsReadOnly);
152151
return default(IList);
153152
}
154153
[Pure]
@@ -222,13 +221,15 @@ public virtual IEnumerator GetEnumerator(int index, int count)
222221
public static ArrayList FixedSize(ArrayList list)
223222
{
224223
Contract.Requires(list != null);
224+
Contract.Ensures(Contract.Result<ArrayList>() != null);
225225
Contract.Ensures(Contract.Result<ArrayList>().IsFixedSize);
226226

227227
return default(ArrayList);
228228
}
229229
public static IList FixedSize(IList list)
230230
{
231231
Contract.Requires(list != null);
232+
Contract.Ensures(Contract.Result<ArrayList>() != null);
232233
Contract.Ensures(Contract.Result<IList>().IsFixedSize);
233234

234235
return default(IList);
@@ -293,6 +294,7 @@ public virtual void AddRange(ICollection c)
293294
public static ArrayList Adapter(IList list)
294295
{
295296
Contract.Requires(list != null);
297+
Contract.Ensures(Contract.Result<ArrayList>() != null);
296298

297299
return default(ArrayList);
298300
}

Microsoft.Research/Contracts/MsCorlib/System.Collections.BitArray.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,23 @@ extern public virtual int Count
5757
public BitArray Xor(BitArray value)
5858
{
5959
Contract.Requires(value != null);
60+
Contract.Ensures(Contract.Result<BitArray>() != null);
6061

6162
return default(BitArray);
6263
}
6364

6465
public BitArray Or(BitArray value)
6566
{
6667
Contract.Requires(value != null);
68+
Contract.Ensures(Contract.Result<BitArray>() != null);
6769

6870
return default(BitArray);
6971
}
7072

7173
public BitArray And(BitArray value)
7274
{
7375
Contract.Requires(value != null);
76+
Contract.Ensures(Contract.Result<BitArray>() != null);
7477

7578
return default(BitArray);
7679
}

Microsoft.Research/Contracts/MsCorlib/System.Collections.SortedList.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public virtual void TrimToSize()
9191
public static SortedList Synchronized(SortedList list)
9292
{
9393
Contract.Requires(list != null);
94+
Contract.Ensures(Contract.Result<SortedList>() != null);
9495

9596
return default(SortedList);
9697
}

Microsoft.Research/Contracts/MsCorlib/System.Enum.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,18 @@ public abstract class Enum
2323
[Pure]
2424
public static string Format(Type enumType, object value, string format)
2525
{
26+
Contract.Requires(enumType != null);
27+
Contract.Requires(value != null);
28+
Contract.Requires(format != null);
2629
Contract.Ensures(Contract.Result<string>() != null);
2730
return default(string);
2831
}
2932
#endif
3033
[Pure]
3134
public static string GetName(Type enumType, object value)
3235
{
36+
Contract.Requires(enumType != null);
37+
Contract.Requires(value != null);
3338
Contract.Ensures(Contract.Result<string>() != null);
3439
return default(string);
3540
}
@@ -38,6 +43,7 @@ public static string GetName(Type enumType, object value)
3843
[Pure]
3944
public static string[] GetNames(Type enumType)
4045
{
46+
Contract.Requires(enumType != null);
4147
Contract.Ensures(Contract.Result<string[]>() != null);
4248
return default(string[]);
4349
}
@@ -92,6 +98,7 @@ public static object Parse(Type enumType, string value, bool ignoreCase)
9298
[Pure]
9399
public static Type GetUnderlyingType(Type enumType)
94100
{
101+
Contract.Requires(enumType != null);
95102
Contract.Ensures(Contract.Result<Type>() != null);
96103
return default(Type);
97104
}
@@ -121,6 +128,7 @@ public static Type GetUnderlyingType(Type enumType)
121128
[Pure]
122129
public static Array GetValues(Type enumType)
123130
{
131+
Contract.Requires(enumType != null);
124132
Contract.Ensures(Contract.Result<Array>() != null);
125133
return default(Array);
126134
}
@@ -151,6 +159,7 @@ public static Array GetValues(Type enumType)
151159
[Pure]
152160
public static object ToObject(Type enumType, byte value)
153161
{
162+
Contract.Requires(enumType != null);
154163
Contract.Ensures(Contract.Result<object>() != null);
155164
return default(object);
156165
}
@@ -179,6 +188,7 @@ public static object ToObject(Type enumType, int value)
179188
//
180189
// System.ArgumentException:
181190
// enumType is not an System.Enum.
191+
Contract.Requires(enumType != null);
182192
Contract.Ensures(Contract.Result<object>() != null);
183193
return default(object);
184194
}
@@ -208,31 +218,37 @@ public static object ToObject(Type enumType, long value)
208218
// enumType is not an System.Enum.-or- value is not type System.SByte, System.Int16,
209219
// System.Int32, System.Int64, System.Byte, System.UInt16, System.UInt32, or
210220
// System.UInt64.
221+
Contract.Requires(enumType != null);
211222
Contract.Ensures(Contract.Result<object>() != null);
212223
return default(object);
213224
}
214225
#endif
215226
[Pure]
216227
public static object ToObject(Type enumType, object value)
217228
{
229+
Contract.Requires(enumType != null);
218230
Contract.Ensures(Contract.Result<object>() != null);
219231
return default(object);
220232
}
221233
#if !SILVERLIGHT
222234
[Pure]
223235
public static object ToObject(Type enumType, sbyte value)
224236
{
237+
Contract.Requires(enumType != null);
238+
Contract.Ensures(Contract.Result<object>() != null);
225239
return default(object);
226240
}
227241
[Pure]
228242
public static object ToObject(Type enumType, short value)
229243
{
244+
Contract.Requires(enumType != null);
230245
Contract.Ensures(Contract.Result<object>() != null);
231246
return default(object);
232247
}
233248
[Pure]
234249
public static object ToObject(Type enumType, uint value)
235250
{
251+
Contract.Requires(enumType != null);
236252
Contract.Ensures(Contract.Result<object>() != null);
237253
return default(object);
238254
}
@@ -242,6 +258,7 @@ public static object ToObject(Type enumType, uint value)
242258
[Pure]
243259
public static object ToObject(Type enumType, ulong value)
244260
{
261+
Contract.Requires(enumType != null);
245262
Contract.Ensures(Contract.Result<object>() != null);
246263
return default(object);
247264
}
@@ -271,6 +288,7 @@ public static object ToObject(Type enumType, ulong value)
271288
[Pure]
272289
public static object ToObject(Type enumType, ushort value)
273290
{
291+
Contract.Requires(enumType != null);
274292
Contract.Ensures(Contract.Result<object>() != null);
275293
return default(object);
276294
}

Microsoft.Research/Contracts/MsCorlib/System.Globalization.CultureInfo.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ extern public bool IsReadOnly
229229
public static CultureInfo ReadOnly(CultureInfo ci)
230230
{
231231
Contract.Requires(ci != null);
232+
Contract.Ensures(Contract.Result<CultureInfo>() != null);
233+
Contract.Ensures(Contract.Result<CultureInfo>().IsReadOnly);
232234

233235
return default(CultureInfo);
234236
}

Microsoft.Research/Contracts/MsCorlib/System.Globalization.DateTimeFormatInfo.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ extern public bool IsReadOnly
313313
public static DateTimeFormatInfo ReadOnly(DateTimeFormatInfo dtfi)
314314
{
315315
Contract.Requires(dtfi != null);
316+
Contract.Ensures(Contract.Result<DateTimeFormatInfo>() != null);
317+
Contract.Ensures(Contract.Result<DateTimeFormatInfo>().IsReadOnly);
316318

317319
return default(DateTimeFormatInfo);
318320
}

Microsoft.Research/Contracts/MsCorlib/System.Reflection.MethodInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ public virtual MethodInfo GetGenericMethodDefinition()
143143
// This method is not supported.
144144
public virtual MethodInfo MakeGenericMethod(params Type[] typeArguments)
145145
{
146+
Contract.Requires(typeArguments != null);
146147
Contract.Ensures(Contract.Result<MethodInfo>() != null);
147148
return default(MethodInfo);
148149
}

Microsoft.Research/Contracts/MsCorlib/System.Runtime.InteropServices.Marshal.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ public static int GetComSlotForMethodInfo(MemberInfo m) {
188188
public static Delegate GetDelegateForFunctionPointer(IntPtr ptr, Type t) {
189189
Contract.Requires(ptr != IntPtr.Zero);
190190
Contract.Requires(t != null);
191+
Contract.Ensures(Contract.Result<Delegate>() != null);
191192
return default(Delegate);
192193
}
193194
public static int GetEndComSlot(Type t) {

Microsoft.Research/Contracts/MsCorlib/System.String.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ public static String Concat<T>(IEnumerable<T> args)
187187
public static String Copy(String str)
188188
{
189189
Contract.Requires(str != null);
190+
Contract.Ensures(Contract.Result<String>() != null);
190191

191192
return default(String);
192193
}

0 commit comments

Comments
 (0)