2004-03-29 Marek Safar <marek.safar@seznam.cz>
authorMarek Safar <marek.safar@gmail.com>
Mon, 29 Mar 2004 16:46:08 +0000 (16:46 -0000)
committerMarek Safar <marek.safar@gmail.com>
Mon, 29 Mar 2004 16:46:08 +0000 (16:46 -0000)
* cs0029-3.cs,
          cs0173-2.cs,
          cs0619-{2-26}.cs,
          cs0672.cs: 29 new error tests.

svn path=/trunk/mcs/; revision=24715

34 files changed:
mcs/errors/CS0619-17-lib.cs [new file with mode: 0644]
mcs/errors/CS0619-8-lib.cs [new file with mode: 0644]
mcs/errors/ChangeLog
mcs/errors/Makefile
mcs/errors/cs0029-3.cs [new file with mode: 0644]
mcs/errors/cs0173-2.cs [new file with mode: 0644]
mcs/errors/cs0619-10.cs [new file with mode: 0644]
mcs/errors/cs0619-11.cs [new file with mode: 0644]
mcs/errors/cs0619-12.cs [new file with mode: 0644]
mcs/errors/cs0619-13.cs [new file with mode: 0644]
mcs/errors/cs0619-14.cs [new file with mode: 0644]
mcs/errors/cs0619-15.cs [new file with mode: 0644]
mcs/errors/cs0619-16.cs [new file with mode: 0644]
mcs/errors/cs0619-17.cs [new file with mode: 0644]
mcs/errors/cs0619-18.cs [new file with mode: 0644]
mcs/errors/cs0619-19.cs [new file with mode: 0644]
mcs/errors/cs0619-2.cs [new file with mode: 0644]
mcs/errors/cs0619-20.cs [new file with mode: 0644]
mcs/errors/cs0619-21.cs [new file with mode: 0644]
mcs/errors/cs0619-22.cs [new file with mode: 0644]
mcs/errors/cs0619-23.cs [new file with mode: 0644]
mcs/errors/cs0619-24.cs [new file with mode: 0644]
mcs/errors/cs0619-25.cs [new file with mode: 0644]
mcs/errors/cs0619-26.cs [new file with mode: 0644]
mcs/errors/cs0619-3.cs [new file with mode: 0644]
mcs/errors/cs0619-4.cs [new file with mode: 0644]
mcs/errors/cs0619-5.cs [new file with mode: 0644]
mcs/errors/cs0619-6.cs [new file with mode: 0644]
mcs/errors/cs0619-7.cs [new file with mode: 0644]
mcs/errors/cs0619-8.cs [new file with mode: 0644]
mcs/errors/cs0619-9.cs [new file with mode: 0644]
mcs/errors/cs0619.cs
mcs/errors/cs0672.cs [new file with mode: 0644]
mcs/errors/mcs-expect-wrong-error

diff --git a/mcs/errors/CS0619-17-lib.cs b/mcs/errors/CS0619-17-lib.cs
new file mode 100644 (file)
index 0000000..52cb849
--- /dev/null
@@ -0,0 +1,5 @@
+public abstract class ObsoleteA
+{
+        [System.ObsoleteAttribute ("Obsolete struct", true)]
+        protected ObsoleteA () {}
+}
\ No newline at end of file
diff --git a/mcs/errors/CS0619-8-lib.cs b/mcs/errors/CS0619-8-lib.cs
new file mode 100644 (file)
index 0000000..8594e96
--- /dev/null
@@ -0,0 +1,4 @@
+[System.ObsoleteAttribute ("Obsolete struct", true)]
+public struct ObsoleteStruct
+{
+}
\ No newline at end of file
index ab316db665609b21da1f5214ca237105531846b3..88ba89b5af2e767f577ea0ad6d52dc4374133a17 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-29 Marek Safar <marek.safar@seznam.cz>
+       * cs0029-3.cs,
+          cs0173-2.cs,
+          cs0619-{2-26}.cs,
+          cs0672.cs: 29 new error tests.
+
 2004-03-26 Ben Maurer  <bmaurer@users.sourceforge.net>
 
        * do-tests.pl: i think this fixes the problem with
index e3044ef6d816cd8f669f1b028ce7519d0f348ba5..68074a6307278f96b92924b93e1bac4702d7b4e8 100644 (file)
@@ -21,7 +21,7 @@ DISTFILES = \
        $(wildcard *.cs)
 
 #all-local: run-test-local test-multi-local
-all-local: CS3005-16-lib.dll CS3013-module.dll
+all-local: CS0619-8-lib.dll CS0619-17-lib.dll CS3005-16-lib.dll CS3013-module.dll
 
 test-local:
 
@@ -59,6 +59,12 @@ dist-local: dist-default
 
 install-local uninstall-local:
 
+CS0619-8-lib.dll:
+       $(BOOTSTRAP_MCS) /target:library /out:$@ CS0619-8-lib.cs
+
+CS0619-17-lib.dll:
+       $(BOOTSTRAP_MCS) /target:library /out:$@ CS0619-17-lib.cs
+
 CS3005-16-lib.dll: 
        $(BOOTSTRAP_MCS) /target:library /out:$@ CS3005-16-lib.cs
 
diff --git a/mcs/errors/cs0029-3.cs b/mcs/errors/cs0029-3.cs
new file mode 100644 (file)
index 0000000..a91f509
--- /dev/null
@@ -0,0 +1,22 @@
+// cs0029.cs: Cannot implicitly conver type 'Helper*' to 'Obsolete*'
+// Line: 18
+// Compiler options: -unsafe
+
+class Box {
+        public Helper o;
+}
+
+unsafe struct Obsolete {
+}
+
+unsafe struct Helper {}
+
+class MainClass {
+        unsafe public static void Main ()
+        {
+                Box b = new Box ();
+                fixed (Obsolete* p = &b.o)
+                {
+                }
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0173-2.cs b/mcs/errors/cs0173-2.cs
new file mode 100644 (file)
index 0000000..22b9faf
--- /dev/null
@@ -0,0 +1,2 @@
+// cs0173.cs: Type of conditional expression can't be determined because there is no implicit conversion between 'int' and '<null>'\r// Line: 29\r\rpublic class MainClass {\r        public static void Main() {
+                bool result = false;\r                System.Console.WriteLine (result ? 1 : null);\r   }\r}\r
diff --git a/mcs/errors/cs0619-10.cs b/mcs/errors/cs0619-10.cs
new file mode 100644 (file)
index 0000000..87dadc0
--- /dev/null
@@ -0,0 +1,12 @@
+// cs0619.cs: 'ObsoleteClass' is obsolete: 'Do not use it'
+// Line: 10
+
+using System;
+
+[Obsolete("Do not use it.", true)]
+class ObsoleteClass {
+}
+
+class C: ObsoleteClass
+{
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-11.cs b/mcs/errors/cs0619-11.cs
new file mode 100644 (file)
index 0000000..bbab8e6
--- /dev/null
@@ -0,0 +1,17 @@
+// cs0619.cs: 'ObsoleteClass' is obsolete: 'Do not use it'
+// Line: 15
+
+using System;
+
+[Obsolete("Do not use it.", true)]
+interface I
+{
+}
+
+class A
+{
+}
+
+class C: A, I
+{
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-12.cs b/mcs/errors/cs0619-12.cs
new file mode 100644 (file)
index 0000000..0f299bb
--- /dev/null
@@ -0,0 +1,18 @@
+// cs0619.cs: 'I' is obsolete: ''
+// Line: 13
+
+using System;
+
+[Obsolete("", true)]
+interface I
+{
+}
+
+class A
+{
+        int this [I index] {
+                get {
+                        return 15;
+                }
+        }    
+}
diff --git a/mcs/errors/cs0619-13.cs b/mcs/errors/cs0619-13.cs
new file mode 100644 (file)
index 0000000..3f4304b
--- /dev/null
@@ -0,0 +1,13 @@
+// cs0619.cs: 'Obsolete' is obsolete: ''
+// Line: 11
+
+[System.Obsolete("", true)]
+class Obsolete {
+}
+
+class MainClass {
+        public static void Main ()
+        {
+                System.Type t = typeof (Obsolete);
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-14.cs b/mcs/errors/cs0619-14.cs
new file mode 100644 (file)
index 0000000..5bd99e1
--- /dev/null
@@ -0,0 +1,19 @@
+// cs0619.cs: 'AA' is obsolete: ''
+// Line: 17
+
+class A
+{
+}
+
+[System.Obsolete ("", true)]
+class AA: A
+{
+        public void Foo () {}
+}
+
+class B {
+        public B (A a)
+        {
+                (a as AA).Foo ();
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-15.cs b/mcs/errors/cs0619-15.cs
new file mode 100644 (file)
index 0000000..3d8caf3
--- /dev/null
@@ -0,0 +1,10 @@
+// cs0619.cs: 'Test.Test()' is obsolete: 'Causes an error'
+// Line: 9
+
+using System;
+public class Test
+{
+       [Obsolete ("Causes an error", true)]
+       public Test () {}
+       public Test (bool flag) : this () {}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-16.cs b/mcs/errors/cs0619-16.cs
new file mode 100644 (file)
index 0000000..8452b97
--- /dev/null
@@ -0,0 +1,14 @@
+// cs0619.cs: 'Test_A.Test_A()' is obsolete: 'Causes an error'
+// Line: 13
+
+using System;
+public class Test_A
+{
+       [Obsolete ("Causes an error", true)]
+       public Test_A () {}
+}
+
+public class Test_B: Test_A
+{
+       public Test_B (): base () {}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-17.cs b/mcs/errors/cs0619-17.cs
new file mode 100644 (file)
index 0000000..80bccb4
--- /dev/null
@@ -0,0 +1,8 @@
+// cs0619.cs: 'ObsoleteA.ObsoleteA()' is obsolete: 'Obsolete struct'
+// Line: 7
+// Compiler options: -reference:CS0619-17-lib.dll
+
+public class B: ObsoleteA
+{
+       public B (): base () {}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-18.cs b/mcs/errors/cs0619-18.cs
new file mode 100644 (file)
index 0000000..f899701
--- /dev/null
@@ -0,0 +1,12 @@
+// cs0619.cs: 'Obsolete' is obsolete: '!!!'
+// Line: 9
+
+[System.Obsolete("!!!", true)]
+class Obsolete {
+}
+
+class Class {
+        public void Method (Obsolete[] o)
+        {
+        }
+}
diff --git a/mcs/errors/cs0619-19.cs b/mcs/errors/cs0619-19.cs
new file mode 100644 (file)
index 0000000..e0f7542
--- /dev/null
@@ -0,0 +1,11 @@
+// cs0619.cs: 'MainClass' is obsolete: ''
+// Line: 8
+
+[System.Obsolete("", true)]
+class MainClass {
+        public void Method ()
+        {
+                lock (new MainClass ()) {
+                }
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-2.cs b/mcs/errors/cs0619-2.cs
new file mode 100644 (file)
index 0000000..e24ef77
--- /dev/null
@@ -0,0 +1,13 @@
+// cs0619.cs: 'ObsoleteIface ' is obsolete: 'Do not use it'
+// Line: 12
+
+using System;
+
+[Obsolete("Do not use it.", true)]
+interface ObsoleteIface {
+}
+
+
+interface Ex: ObsoleteIface
+{
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-20.cs b/mcs/errors/cs0619-20.cs
new file mode 100644 (file)
index 0000000..d5d381b
--- /dev/null
@@ -0,0 +1,18 @@
+// cs0619.cs: 'ObsoleteException' is obsolete: ''
+// Line: 15
+
+using System;
+
+[System.Obsolete("", true)]
+class ObsoleteException: Exception {
+}
+
+class MainClass {
+        public void Method ()
+        {
+                try {
+                }
+                catch (ObsoleteException) {
+                }
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-21.cs b/mcs/errors/cs0619-21.cs
new file mode 100644 (file)
index 0000000..f47904f
--- /dev/null
@@ -0,0 +1,14 @@
+// cs0619.cs: 'Obsolete' is obsolete: ''
+// Line: 12
+// Compiler options: -unsafe
+
+[System.Obsolete("", true)]
+struct Obsolete {
+}
+
+class MainClass {
+        unsafe public static void Main ()
+        {
+                System.Console.WriteLine (sizeof (Obsolete));
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-22.cs b/mcs/errors/cs0619-22.cs
new file mode 100644 (file)
index 0000000..3fe1b38
--- /dev/null
@@ -0,0 +1,14 @@
+// cs0619.cs: 'AA' is obsolete: ''
+// Line: 12
+
+[System.Obsolete ("", true)]
+class AA
+{
+}
+
+class B {
+        public bool Foo (object b)
+        {
+                return b is AA;
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-23.cs b/mcs/errors/cs0619-23.cs
new file mode 100644 (file)
index 0000000..c09a940
--- /dev/null
@@ -0,0 +1,15 @@
+// cs0619.cs: 'AA' is obsolete: ''
+// Line: 17
+
+[System.Obsolete ("", true)]
+class AA
+{
+        public void Foo () {}
+}
+
+class B {
+        public B (object a)
+        {
+                ((AA)a).Foo ();
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-24.cs b/mcs/errors/cs0619-24.cs
new file mode 100644 (file)
index 0000000..6cdb23e
--- /dev/null
@@ -0,0 +1,23 @@
+// cs0619.cs: 'Obsolete' is obsolete: ''
+// Line: 19
+// Compiler options: -unsafe
+
+class Box {
+        public Helper o;
+}
+
+[System.Obsolete("", true)]
+unsafe struct Obsolete {
+}
+
+unsafe struct Helper {}
+
+class MainClass {
+        unsafe public static void Main ()
+        {
+                Box b = new Box ();
+                fixed (Obsolete* p = &b.o)
+                {
+                }
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-25.cs b/mcs/errors/cs0619-25.cs
new file mode 100644 (file)
index 0000000..b8d7618
--- /dev/null
@@ -0,0 +1,13 @@
+// cs0619.cs: 'AA' is obsolete: ''
+// Line: 9
+
+[System.Obsolete ("", true)]
+class AA
+{
+        public AA ()
+        {
+                foreach (AA aa in new System.Collections.ArrayList ()) {
+                        System.Console.WriteLine (aa);
+                }
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-26.cs b/mcs/errors/cs0619-26.cs
new file mode 100644 (file)
index 0000000..6d6ecbd
--- /dev/null
@@ -0,0 +1,15 @@
+// cs0619.cs: 'AA' is obsolete: ''
+// Line: 9
+
+[System.Obsolete ("", true)]
+class AA
+{
+        public AA ()
+        {
+                for (AA aa = null; aa != null;) {
+                        System.Console.WriteLine (aa);
+                }
+        }
+        
+//        public static void Main () {}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-3.cs b/mcs/errors/cs0619-3.cs
new file mode 100644 (file)
index 0000000..896190b
--- /dev/null
@@ -0,0 +1,14 @@
+// cs0619.cs: 'ObsoleteIface ' is obsolete: 'Do not use it'
+// Line: 13
+
+using System;
+
+[Obsolete("Yeah, is obsolete", true)]
+enum ObsoleteEnum
+{
+}
+
+interface Ex
+{
+       ObsoleteEnum Foo ();
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-4.cs b/mcs/errors/cs0619-4.cs
new file mode 100644 (file)
index 0000000..3443300
--- /dev/null
@@ -0,0 +1,12 @@
+// cs0619.cs: 'Obsolete' is obsolete: '!!!'
+// Line: 9
+
+[System.Obsolete("!!!", true)]
+class Obsolete {
+}
+
+class Class {
+        public void Method (Obsolete o)
+        {
+        }
+}
diff --git a/mcs/errors/cs0619-5.cs b/mcs/errors/cs0619-5.cs
new file mode 100644 (file)
index 0000000..3abdbdc
--- /dev/null
@@ -0,0 +1,12 @@
+// cs0619.cs: 'A' is obsolete: 'Do not use it'
+// Line: 12
+
+using System;
+
+[Obsolete("Do not use it", true)]
+class A {
+}
+
+class B {
+    static A _a = new A ();
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-6.cs b/mcs/errors/cs0619-6.cs
new file mode 100644 (file)
index 0000000..821670b
--- /dev/null
@@ -0,0 +1,11 @@
+// cs0619.cs: 'A._value' is obsolete: 'Do not use it'
+// Line: 9
+
+class A {
+    [System.Obsolete("Do not use it", true)]
+    int _value;
+    
+    public A () {
+        _value = 4;
+    }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-7.cs b/mcs/errors/cs0619-7.cs
new file mode 100644 (file)
index 0000000..f352c64
--- /dev/null
@@ -0,0 +1,14 @@
+// cs0619.cs: 'ObsoleteIface ' is obsolete: 'Do not use it'
+// Line: 13
+
+using System;
+
+[Obsolete("Is obsolete", true)]
+class ObsoleteClass
+{
+}
+
+interface Ex
+{
+       void Foo (ObsoleteClass o1, ObsoleteClass o2);
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-8.cs b/mcs/errors/cs0619-8.cs
new file mode 100644 (file)
index 0000000..e947519
--- /dev/null
@@ -0,0 +1,8 @@
+// cs0619.cs: 'ObsoleteStruct ' is obsolete: 'Obsolete struct'
+// Line: 7
+// Compiler options: -reference:CS0619-8-lib.dll
+
+interface I
+{
+       int Foo (int arg1, ObsoleteStruct arg2);
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-9.cs b/mcs/errors/cs0619-9.cs
new file mode 100644 (file)
index 0000000..215393b
--- /dev/null
@@ -0,0 +1,11 @@
+// cs0619.cs: 'ObsoleteInterface' is obsolete: ''
+// Line: 11
+
+using System;
+
+[Obsolete("", true)]
+interface ObsoleteInterface
+{
+}
+
+delegate ObsoleteInterface @delegate ();
index b5954df0fd6af9100c954e65b793c8b7f81fa0ee..0772e7988bbcacafc6d8f6f1f78f64ffef44517e 100644 (file)
@@ -1,20 +1,14 @@
-// cs0619.cs: 'MethodError()' is obsolete: 'Do not use it'\r
-// Line: 17\r
-\r
-class Obsolete {\r
-        [System.Obsolete]\r
-        public static void MethodWarning() {\r
-        }\r
-    \r
-        [System.Obsolete("Do not use it.", true)]\r
-        public static void MethodError() {\r
-        }\r
-}\r
-\r
-class MainClass {\r
-        public static void Main () {\r
-                Obsolete.MethodWarning();\r
-                Obsolete.MethodError();\r
-        }\r
-}\r
-\r
+// cs0619.cs: 'Obsolete.MethodError()' is obsolete: 'Do not use it'
+// Line: 12
+
+class Obsolete {
+        [System.Obsolete("Do not use it.", true)]
+        public static void MethodError() {
+        }
+}
+
+class MainClass {
+        public static void Main () {
+                Obsolete.MethodError();
+        }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0672.cs b/mcs/errors/cs0672.cs
new file mode 100644 (file)
index 0000000..e07e46d
--- /dev/null
@@ -0,0 +1,16 @@
+// cs0672.cs: Member 'B.Test()' overrides obsolete member 'A.Test(). Add the Obsolete attribute to 'B.Test()
+// Line: 14
+
+using System;
+
+public class A
+{
+        [Obsolete ("Causes an error", true)]
+        public virtual void Test () {}
+}
+
+public class B: A
+{
+        public override void Test () {}
+}
+
index 21c066e97a7409dff5a554cbb0ee06f12ac13c19..2debc21f8c8a44d59afab83f2fe24d31bf57d7b7 100644 (file)
@@ -10,6 +10,7 @@
 cs-11.cs
 cs-12.cs
 cs0029.cs
+cs0029-3.cs
 cs0035.cs
 cs0065.cs
 cs0069.cs
@@ -29,6 +30,7 @@ cs0143.cs
 cs0145.cs
 cs0149.cs
 cs0173.cs
+cs0173-2.cs
 cs0186-2.cs
 cs0192.cs
 cs0197.cs
@@ -100,8 +102,35 @@ cs0610-2.cs
 cs0610.cs
 cs0611-2.cs
 cs0611.cs
+cs0619.cs
+cs0619-10.cs
+cs0619-11.cs
+cs0619-12.cs
+cs0619-13.cs
+cs0619-14.cs
+cs0619-15.cs
+cs0619-16.cs
+cs0619-17.cs
+cs0619-18.cs
+cs0619-19.cs
+cs0619-2.cs
+cs0619-20.cs
+cs0619-21.cs
+cs0619-22.cs
+cs0619-23.cs
+cs0619-24.cs
+cs0619-25.cs
+cs0619-26.cs
+cs0619-3.cs
+cs0619-4.cs
+cs0619-5.cs
+cs0619-6.cs
+cs0619-7.cs
+cs0619-8.cs
+cs0619-9.cs
 cs0654.cs
 cs0663.cs
+cs0672.cs
 cs0673.cs
 cs0676.cs
 cs0676.cs
@@ -225,4 +254,4 @@ cs8209.cs
 cs8210.cs
 cs8213.cs
 cs8214.cs
-cs8217.cs
+cs8217.cs
\ No newline at end of file