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
19 test-221.cs test-236.cs
21 * Events and Delegates
23 test-149.cs test-164.cs test-237.cs verify-3.cs
31 test-152.cs test-193.cs test-234.cs verify-4.cs
33 * Member Access & Simple Names
35 test-151.cs test-159.cs test-160.cs test-161.cs test-190.cs
37 * Invocation and Casts
39 test-153.cs test-163.c test-207.cs test-210.cs test-211.cs test-223.cs
43 test-154.cs test-162.cs test-185.cs
47 test-155.cs test-156.cs
51 test-157.cs test-158.cs test-177.cs test-230.cs test-238.cs test-239.cs test-240.cs
53 * Arrays and array creation
55 test-165.cs, test-167.cs, test-232.cs
65 * Type resolution and name lookup
67 test-198.cs test-201.cs test-202.cs test-203.cs test-214.cs
69 Test cases listed by Number:
70 ============================
75 Tests various permissions sets based on the visiblity flags.
79 Test for Binary.EmitBrancheable() to ensure we're emitting correct
80 unsinged branch targets.
84 Testing `new' modifier.
88 Testing the `IndexerName' attribute in interface indexers.
92 Testing interface events.
96 Test for folding of UIntConstants. See bug #28106.
97 FIXME: We should all all possible test cases to this test.
103 void doit (Object A) {
109 Scope of variables declared inside a switch case.
113 Testing invocation of varargs function.
117 Flow analysis: This test contains all situations which are "allowed".
125 Check whether base types are at least as accessible than the current type.
137 SimpleNameLookup: Cast to `A.Iface' type when there's a parameter called `A'.
141 ResolveMemberLookup: `B look; return look.s.a' must work in static context.
145 ResolveMemberLookup: Field initializer references `DateTime.Now' when there's
146 an instance property/field `DateTime'.
150 Control Flow Analysis wrt. structs.
154 Test to check we select string over object when we have a Null literal as the argument.
158 Virtual functions in delegate creation expressions.
162 Enums in array creation expression.
166 Using property from interface which is inherited multiple times.
170 Check whether we select the correct function, don't report CS0121
171 for integer literals.
175 Checks access to protected properties on base classes, and access to
176 private properties on container classes.
180 Check for user-defined implicit conversions if both arguments of a
181 binary operator are of a user-defined type. Bug #30443.
185 This tests checks that we perform constant folding on byte values. The
186 compiler had a bug where it did not do so.
190 This tests that the compiler is generating "return:" attributes for a
191 method. This was a separate code path, and was not handled in the past.
196 Ensure that we emit attributes only once for operators. Bug #45876
201 Tests various uses of the indexers in the presence of the `new' keyword
202 and various different argument types.
206 This test is part of a bug report in which casting an enumeration value
207 into System.Enum was not wrapped correctly, and the wrong method was
212 Test whenever mcs correctly handles the MethodImplAttributes
217 Tests that bug 37473 is gone. The problem was that we were generating
218 incorrect code for field references on a value type. The code was originally
219 written by Martin, but I turned it off as I did not see what it did fix. The
220 code is now turned on again.
224 This test just verifies that we generate the proper signature for
225 EndInvoke, something that we were not doing before in the presence
230 This test fixes a bug that exposed a problem when calling a struct
231 constructor that is initialized from an instance constructor
235 Flow analysis wrt. infinite loops. Bug #37708.
239 Typecasts were not being constant-folded/reduced, which triggered
240 the bug 37363. (String) null was not a null constant in attributes.
244 This test verifies that we resolve the source expression in a compound
245 expression before we attempt to use it.
249 Test that the foreach statement generated by mcs invokes the Dispose()
250 method even if the enumerator class returned by GetEnumerator () does not
251 implement IDisposable.
255 Test to ensure proper overload resolution of params method under various cases.
259 Accessing private field of outer class from which we derive.
263 Some accessibility tests that exist in Corlib and System, to probe the new
264 functionality in the compiler for accessibility of private nested classes.
268 Fix for bug 41952, basically, we were not using the `unchecked' bit during
269 constant resolution due to the nature of EmitMeta.
273 Fix for bug 39828, allow goto to a label in another switch section.
277 Fix for bug #39108 - ensure that the correct form of a params method is called:
279 "explicit conversion of argument to object
280 (type object cannot be implicitly converted to type
281 object[]) affects resolution of normal/expanded form
282 of method invocation."
287 Fix for bug #45149, constructors that call another constructor in the
288 same class (using ": this()") should not emit instance field initializers.
293 The optimization that we perform in uint & int-constant was triggering a bug
294 because we returned always, when we should have continued the processing if the
295 conditions were not correct.
305 Type resolution and name lookup. Fixes for bugs #36316, #36314.
310 Name resolution wrt. inaccessible types. Fixes bug #36313.
315 Compound assignment (x = (y += 3)). Fixes bug #45854.
335 User defined conditional logical operators; bug #40505.
340 Indexers; bug #46502.
345 Expressions which return delegates.
350 Indexers; bug #46788.
355 Embedded assignments; while fixing a bug and making a mistake, I discovered some
356 problems during class libs compilation. Let's just add a testcase for them here.
361 Cast something to a delegate and then invoke it; bug #46923.
371 Params overload resolution with implicit user conversion
376 Unboxing struct from interface type; bug #47822.
381 Namespace lookups; bug #47853.
386 Namespace lookups; bug #47927.
390 Accessability bug fix #48710 on events
395 >= and <= operators; bug #48679
399 Tests delegate creation inside an array; This exposed a bug in the
400 fact that New is called for DoResolve twice from array initialization.
405 Tests that we can call typeof(void) in an attribtue delcaration, since
406 we removed previously typeof (System.Void) as a valid way of referencing void.
410 Test for a bug in foreach, where it would pick the wrong GetEnumerator in a class.
415 Test for correct scanning for base properties.
419 Compilation test to check overload resolution. We should prefer int->uint over int->ulong.
423 This tests that conversions from Enum and ValueType to structs
424 are treated as unboxing conversions, and the `unbox' opcode
429 This tests the compilation of attributes with array parameters.
434 public class List : IEnumerable {
436 public MyEnumerator GetEnumerator () {
437 return new MyEnumerator(this);
440 IEnumerator IEnumerable.GetEnumerator () {
444 public struct MyEnumerator : IEnumerator {
451 Test for emitting callvirt when we need it.
455 Tests for {...}-style array creation
459 dup of basic-float.cs from mini, for bug 54303.
463 Switch statement on a [Flags] style enum. bug 55885.
467 Test for bug #56300. DefaultMemberAttribute should not be created if a
468 class has only private interface indexers.
472 Test for bug #56442. Verify that delegate invocation and normal method
473 invocation act the same when the 'params' keyword is used.
477 Test for bug reported in
479 http://lists.ximian.com/archives/public/mono-devel-list/2004-September/007777.html
483 Test whether we do not jump out of the method in a Try/Finally block.
487 Test whether `return' in a Try/Catch block actually returns. Test
488 whether continue uses Leave when the branch is across Try/Catch
493 Checks default add/remove method of static events.
497 When there's an unreachable break in a switch section, it must not emit a jump out of
502 Casts from/to System.Enum.
506 Tests the correct computation of compound operators in the context of a pointer
507 dereference on the left side.
512 Simple constructed type.
517 Type parameter as field.
522 Field of constructed type.
527 Method argument of constructed type.
532 Local variable of constructed type.
537 More complex example.
542 Constructed type deriving from a class type.
552 `where T : ICloneable' and then calling t.Clone ().
557 `where T : I, J' - I is an inferface, J a class.
566 C# 2.0 Iterators: Enumerator and Enumerable with foreach
570 C# 2.0 Iterators: Obtaining the enumerator manually
574 C# 2.0 Iterators: Multi-dimensional arrays as arguments to iterator method
578 C# 2.0 Iterators: Use of a local variable in an enumerator.
582 Method group conversions for C# 2.0
586 Test iterators using foreach where you have to load the address of a struct
590 Partial type with a destructor.
592 pu-ip.cs, pu-pi.cs, pi.cs, pu.cs
593 --------------------------------
594 Test that the order for internal/public in external assemblies does not
595 affect the outcome of a build. Also checks that multiple `entry points'
596 can be declared in a library. (eg, that it is not confused by two Main