1 Test cases listed by Category:
2 ==============================
6 test-146.cs test-175.cs test-200.cs test-204.cs
10 test-147.cs test-173.cs
14 verify-1.cs verify-2.cs
16 * Indexers and Properties
18 test-148.cs test-166.cs test-206.cs test-208.cs test-209.cs test-221.cs
20 * Events and Delegates
22 test-149.cs test-164.cs verify-3.cs
30 test-152.cs test-193.cs verify-4.cs
32 * Member Access & Simple Names
34 test-151.cs test-159.cs test-160.cs test-161.cs test-190.cs
36 * Invocation and Casts
38 test-153.cs test-163.c test-207.cs test-210.cs test-211.cs test-223.cs
42 test-154.cs test-162.cs test-185.cs
46 test-155.cs test-156.cs
50 test-157.cs test-158.cs test-177.cs test-230.cs
52 * Arrays and array creation
54 test-165.cs, test-167.cs
64 * Type resolution and name lookup
66 test-198.cs test-201.cs test-202.cs test-203.cs test-214.cs
68 Test cases listed by Number:
69 ============================
74 Tests various permissions sets based on the visiblity flags.
78 Test for Binary.EmitBrancheable() to ensure we're emitting correct
79 unsinged branch targets.
83 Testing `new' modifier.
87 Testing the `IndexerName' attribute in interface indexers.
91 Testing interface events.
95 Test for folding of UIntConstants. See bug #28106.
96 FIXME: We should all all possible test cases to this test.
102 void doit (Object A) {
108 Scope of variables declared inside a switch case.
112 Testing invocation of varargs function.
116 Flow analysis: This test contains all situations which are "allowed".
124 Check whether base types are at least as accessible than the current type.
136 SimpleNameLookup: Cast to `A.Iface' type when there's a parameter called `A'.
140 ResolveMemberLookup: `B look; return look.s.a' must work in static context.
144 ResolveMemberLookup: Field initializer references `DateTime.Now' when there's
145 an instance property/field `DateTime'.
149 Control Flow Analysis wrt. structs.
153 Test to check we select string over object when we have a Null literal as the argument.
157 Virtual functions in delegate creation expressions.
161 Enums in array creation expression.
165 Using property from interface which is inherited multiple times.
169 Check whether we select the correct function, don't report CS0121
170 for integer literals.
174 Checks access to protected properties on base classes, and access to
175 private properties on container classes.
179 Check for user-defined implicit conversions if both arguments of a
180 binary operator are of a user-defined type. Bug #30443.
184 This tests checks that we perform constant folding on byte values. The
185 compiler had a bug where it did not do so.
189 This tests that the compiler is generating "return:" attributes for a
190 method. This was a separate code path, and was not handled in the past.
195 Ensure that we emit attributes only once for operators. Bug #45876
200 Tests various uses of the indexers in the presence of the `new' keyword
201 and various different argument types.
205 This test is part of a bug report in which casting an enumeration value
206 into System.Enum was not wrapped correctly, and the wrong method was
211 Test whenever mcs correctly handles the MethodImplAttributes
216 Tests that bug 37473 is gone. The problem was that we were generating
217 incorrect code for field references on a value type. The code was originally
218 written by Martin, but I turned it off as I did not see what it did fix. The
219 code is now turned on again.
223 This test just verifies that we generate the proper signature for
224 EndInvoke, something that we were not doing before in the presence
229 This test fixes a bug that exposed a problem when calling a struct
230 constructor that is initialized from an instance constructor
234 Flow analysis wrt. infinite loops. Bug #37708.
238 Typecasts were not being constant-folded/reduced, which triggered
239 the bug 37363. (String) null was not a null constant in attributes.
243 This test verifies that we resolve the source expression in a compound
244 expression before we attempt to use it.
248 Test that the foreach statement generated by mcs invokes the Dispose()
249 method even if the enumerator class returned by GetEnumerator () does not
250 implement IDisposable.
254 Test to ensure proper overload resolution of params method under various cases.
258 Accessing private field of outer class from which we derive.
262 Some accessibility tests that exist in Corlib and System, to probe the new
263 functionality in the compiler for accessibility of private nested classes.
267 Fix for bug 41952, basically, we were not using the `unchecked' bit during
268 constant resolution due to the nature of EmitMeta.
272 Fix for bug 39828, allow goto to a label in another switch section.
276 Fix for bug #39108 - ensure that the correct form of a params method is called:
278 "explicit conversion of argument to object
279 (type object cannot be implicitly converted to type
280 object[]) affects resolution of normal/expanded form
281 of method invocation."
286 Fix for bug #45149, constructors that call another constructor in the
287 same class (using ": this()") should not emit instance field initializers.
292 The optimization that we perform in uint & int-constant was triggering a bug
293 because we returned always, when we should have continued the processing if the
294 conditions were not correct.
304 Type resolution and name lookup. Fixes for bugs #36316, #36314.
309 Name resolution wrt. inaccessible types. Fixes bug #36313.
314 Compound assignment (x = (y += 3)). Fixes bug #45854.
334 User defined conditional logical operators; bug #40505.
339 Indexers; bug #46502.
344 Expressions which return delegates.
349 Indexers; bug #46788.
354 Embedded assignments; while fixing a bug and making a mistake, I discovered some
355 problems during class libs compilation. Let's just add a testcase for them here.
360 Cast something to a delegate and then invoke it; bug #46923.
370 Params overload resolution with implicit user conversion
375 Unboxing struct from interface type; bug #47822.
380 Namespace lookups; bug #47853.
385 Namespace lookups; bug #47927.
389 Accessability bug fix #48710 on events
394 >= and <= operators; bug #48679
398 Tests delegate creation inside an array; This exposed a bug in the
399 fact that New is called for DoResolve twice from array initialization.
404 Tests that we can call typeof(void) in an attribtue delcaration, since
405 we removed previously typeof (System.Void) as a valid way of referencing void.
409 Test for a bug in foreach, where it would pick the wrong GetEnumerator in a class.
414 Test for correct scanning for base properties.
418 Compilation test to check overload resolution. We should prefer int->uint over int->ulong.
422 This tests that conversions from Enum and ValueType to structs
423 are treated as unboxing conversions, and the `unbox' opcode
428 This tests the compilation of attributes with array parameters.
433 public class List : IEnumerable {
435 public MyEnumerator GetEnumerator () {
436 return new MyEnumerator(this);
439 IEnumerator IEnumerable.GetEnumerator () {
443 public struct MyEnumerator : IEnumerator {
450 Test for emitting callvirt when we need it.
454 Test whether we do not jump out of the method in a Try/Finally block.
458 Test whether `return' in a Try/Catch block actually returns. Test
459 whether continue uses Leave when the branch is across Try/Catch
464 Checks default add/remove method of static events.
468 When there's an unreachable break in a switch section, it must not emit a jump out of
473 Casts from/to System.Enum.
477 Tests the correct computation of compound operators in the context of a pointer
478 dereference on the left side.
483 Simple constructed type.
488 Type parameter as field.
493 Field of constructed type.
498 Method argument of constructed type.
503 Local variable of constructed type.
508 More complex example.
513 Constructed type deriving from a class type.
523 `where T : ICloneable' and then calling t.Clone ().
528 `where T : I, J' - I is an inferface, J a class.
537 C# 2.0 Iterators: Enumerator and Enumerable with foreach
541 C# 2.0 Iterators: Obtaining the enumerator manually
545 C# 2.0 Iterators: Multi-dimensional arrays as arguments to iterator method
549 C# 2.0 Iterators: Use of a local variable in an enumerator.
553 Method group conversions for C# 2.0
557 Test iterators using foreach where you have to load the address of a struct