Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2009-07-13 19:26:47 +0400
committerMarek Safar <marek.safar@gmail.com>2009-07-13 19:26:47 +0400
commitd881c2fa146d3e3bf7c89d88938a46a79f5b49bd (patch)
tree13575228de489df59093cd1164e9d13b986a9ce5 /mcs/tests/test-724.cs
parente73cbbc60652a9ee330d152d4892ca29c1e2c543 (diff)
New tests.
svn path=/trunk/mcs/; revision=137782
Diffstat (limited to 'mcs/tests/test-724.cs')
-rw-r--r--mcs/tests/test-724.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/mcs/tests/test-724.cs b/mcs/tests/test-724.cs
new file mode 100644
index 00000000000..d4ca16add96
--- /dev/null
+++ b/mcs/tests/test-724.cs
@@ -0,0 +1,46 @@
+public class Test
+{
+ private static int DoTest (string type, string expected, string actual, int failcode)
+ {
+ if (!actual.Equals (expected)) {
+ System.Console.WriteLine ("Bad {0}: Expected {1}, Was {2}",
+ type, expected, actual);
+ return failcode;
+ }
+ return 0;
+ }
+
+ public static int Main ()
+ {
+ int failure = 0;
+ Concrete val = new Concrete ();
+
+ failure |= DoTest ("A", "A", ((A) val).Spec, 0x01);
+ failure |= DoTest ("B", "B", ((B) val).Spec, 0x02);
+ failure |= DoTest ("C", "B", ((C) val).Spec, 0x04);
+ failure |= DoTest ("Concrete", "Concrete", val.Spec, 0x08);
+
+ return failure;
+ }
+}
+
+interface A
+{
+ string Spec { get; }
+}
+
+interface B : A
+{
+ new string Spec { get; }
+}
+
+interface C : B
+{
+}
+
+class Concrete : C
+{
+ string A.Spec { get { return "A"; } }
+ string B.Spec { get { return "B"; } }
+ public string Spec { get { return "Concrete"; } }
+}