--- /dev/null
+using System;
+[assembly: CLSCompliantAttribute (true)]
+
+public class CLSClass_A {
+ [CLSCompliantAttribute(true)]
+ virtual public bool Universal {
+ get {
+ return false;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// Extra test date for cs3013.cs
+
+using System;
+
+public class CLSClass {
+}
\ No newline at end of file
+2004-02-16 Marek Safar <marek.safar@seznam.cz>
+
+ * cs3001-{7,8}.cs,
+ cs3005-(1-22}.cs,
+ cs3006-{1-6}.cs,
+ cs3012.cs,
+ cs3013.cs New error tests for CLS-compliance.
+
+ * cs186-2.cs,
+ cs0579-2.cs New error tests.
+
+ * makefile: Added CS3005-16-lib.cs and CS3013-module.cs as helpers for errors cs3005-16.cs and cs3013.cs.
+
+
2004-02-10 Marek Safar <marek.safar@seznam.cz>
* cs0111-2.cs: Fixed error message.
- cs0111-5.cs,
+ cs0111-5.cs,
cs0528-2.cs: New error tests.
2004-02-03 Marek Safar <marek.safar@seznam.cz>
* cs0102-{2,3,4,5}.cs,
- cs0111-{3,4}.cs,
- cs0547-2.cs: New error tests.
+ cs0111-{3,4}.cs,
+ cs0547-2.cs: New error tests.
2004-01-21 Marek Safar <marek.safar@seznam.cz>
* cs0102.cs,
- cs0111-2.cs,
- cs246-{2,3,4}.cs,
- cs663.cs: New tests.
+ cs0111-2.cs,
+ cs246-{2,3,4}.cs,
+ cs663.cs: New tests.
2004-01-05 Marek Safar <marek.safar@seznam.cz>
cs3016-1.cs,
cs3016-2.cs,
cs3016-3.cs: New tests for CLS-compliance.
-
- * cs108-2.cs,
- cs116-2.cs,
- cs592-4.cs,
- cs592-5.cs,
- cs592-6.cs: New tests.
-
+
+ * cs108-2.cs,
+ cs116-2.cs,
+ cs592-4.cs,
+ cs592-5.cs,
+ cs592-6.cs: New tests.
+
2004-01-04 Ben Maurer <bmaurer@users.sourceforge.net>
* cs157-{2,3,4}: test cases we fail.
2003-11-01 Marek Safar <marek.safar@seznam.cz>
- * makefile: Added "// Compiler options:" handling.
-
+ * makefile: Added "// Compiler options:" handling.
+
2003-09-22 Martin Baulig <martin@ximian.com>
* errors.txt: Added -219.
$(wildcard *.cs)
#all-local: run-test-local test-multi-local
-all-local:
+all-local: CS3005-16-lib.dll CS3013-module.dll
test-local:
dist-local: dist-default
install-local uninstall-local:
+
+CS3005-16-lib.dll:
+ $(BOOTSTRAP_MCS) /target:library /out:$@ CS3005-16-lib.cs
+
+CS3013-module.dll:
+ $(BOOTSTRAP_MCS) /target:module /out:$@ CS3013-module.cs
--- /dev/null
+// cs0186.cs: Use of null is not valid in this context// Line: 2
+class ClassMain { public static void Main() {
+ foreach (System.Type type in null) {
+ } }
+}
+
--- /dev/null
+// cs0579.cs : Duplicate 'DebuggableAttribute' attribute// Line : 6
+using System.Diagnostics;
+
+[module: DebuggableAttribute (false, false)]
+[module: DebuggableAttribute (false, false)]
+
+class MainClass {
+ static void Main()
+ {
+ }
+}
-// cs3001-4.cs: Identifier 'CLSClass.vAluE' differing only in case is not CLS-compliant
+// cs3001.cs: Argument type 'ulong' is not CLS-compliant
// Line: 8
using System;
[assembly:CLSCompliant(true)]
-[CLSCompliant(false)]
public interface I {
- [CLSCompliant(false)]
- void Foo();
-
- [CLSCompliant(true)]
- long this[uint indexA] { set; }
+ long this[ulong indexA] { set; }
}
--- /dev/null
+// cs3001.cs: Argument type 'int*' is not CLS-compliant
+// Line: 9
+// Compiler options: --unsafe
+
+using System;
+[assembly:CLSCompliant(true)]
+
+unsafe public abstract class CLSClass {
+ public void Method (int* param) {}
+}
-// cs3002-2.cs: Return type of 'I.Error()' is not CLS-compliant
-// Line: 13
+// cs3002.cs: Return type of 'I.Error()' is not CLS-compliant
+// Line: 8
-[assembly:System.CLSCompliant (true)]
+[assembly:System.CLSCompliant(true)]
public interface I
{
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.Method(int)' differing only in case is not CLS-compliant
+// Line: 8
+
+[assembly:System.CLSCompliant (true)]
+
+public class BaseClass {
+ public int method;
+}
+
+public class CLSClass : BaseClass {
+ public static void Method(int arg) {}
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: error CS3005: Identifier 'System.Icomparable' differing only in case is not CLS-compliant
+// Line: 8
+
+[assembly:System.CLSCompliant(true)]
+
+namespace System {
+ public interface Icomparable {
+ }
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'clsInterface' differing only in case is not CLS-compliant
+// Line: 10
+
+using System;
+[assembly:CLSCompliant (true)]
+
+public interface CLSInterface {
+}
+
+public class clsInterface: CLSInterface {
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.NameAbC(int)' differing only in case is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly:CLSCompliant (true)]
+
+public class CLSClass {
+ public int NameABC;
+ public static void NameAbC(int arg) {}
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSEnum.Label' differing only in case is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly:CLSCompliant (true)]
+
+public enum CLSEnum {
+ label,
+ Label
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'i1' differing only in case is not CLS-compliant
+// Line: 9
+
+[assembly:System.CLSCompliant(true)]
+
+public interface I1 {
+}
+
+public interface i1 {
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'a' differing only in case is not CLS-compliant
+// Line: 10
+
+using System;
+[assembly:CLSCompliant (true)]
+
+public enum A {
+}
+
+public interface a {
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass_B.uNIVERSAL' differing only in case is not CLS-compliant
+// Line: 9
+// Compiler options: -reference:cs3005-16-lib.dll
+
+using System;
+[assembly: CLSCompliantAttribute (true)]
+
+public class CLSClass_B: CLSClass_A {
+ public const int uNIVERSAL = 3;
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.op_implicit()' differing only in case is not CLS-compliant
+// Line: 12
+
+using System;
+[assembly:CLSCompliant(true)]
+
+public class CLSClass {
+ static public implicit operator CLSClass(byte value) {
+ return new CLSClass();
+ }
+
+ public void op_implicit () {}
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'B.TEST()' differing only in case is not CLS-compliant
+// Line: 15
+
+using System;
+
+[assembly: CLSCompliantAttribute (true)]
+
+public class A
+{
+ [CLSCompliant (false)]
+ public void Test () {}
+
+ public void test () {}
+}
+
+public class B: A
+{
+ public void TEST () {}
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'II.compareto()' differing only in case is not CLS-compliant
+// Line: 10
+
+[assembly:System.CLSCompliant(true)]
+
+public interface I {
+}
+
+public interface II: I, System.IComparable {
+ bool compareto();
+}
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.Index.get' differing only in case is not CLS-compliant
+// Line: 14
+
+[assembly:System.CLSCompliant(true)]
+
+public class X {
+ public int index { get { return 0; } }
+}
+
+public class Y: X {
+}
+
+public class CLSClass: Y {
+ public long Index { get { return 3; } }
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'I.BLAH.get' differing only in case is not CLS-compliant
+// Line: 15
+
+using System.Runtime.CompilerServices;
+using System;
+
+[assembly: CLSCompliant (true)]
+
+public interface I {
+ [IndexerName ("blah")]
+ int this [int a] {
+ get;
+ }
+
+ int BLAH { get; }
+}
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.NameAbc' differing only in case is not CLS-compliant
+// Line: 12
+
+using System;
+[assembly:CLSCompliant (true)]
+
+public class CLSClass {
+ [CLSCompliant (false)]
+ public int NameABC;
+
+ public int NameAbc;
+ public int NameAbC;
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'X.Index' differing only in case is not CLS-compliant
+// Line: 8
+
+[assembly:System.CLSCompliant(true)]
+
+public class X {
+ public int index { get { return 0; } }
+ public int Index { set {} }
+
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.value' differing only in case is not CLS-compliant
+// Line: 15
+
+[assembly:System.CLSCompliant(true)]
+
+public class X {
+ public bool Value;
+}
+
+public class Y: X {
+ private readonly bool vAalue;
+}
+
+public class CLSClass: Y {
+ protected internal bool value;
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.constant' differing only in case is not CLS-compliant
+// Line: 8
+
+[assembly:System.CLSCompliant(true)]
+
+public class CLSClass {
+ protected int Constant = 1;
+ protected const bool constant = false;
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.Event_A' differing only in case is not CLS-compliant
+// Line: 13
+
+[assembly:System.CLSCompliant(true)]
+
+public delegate void MyDelegate(int i);
+
+public class Base {
+ protected event System.ResolveEventHandler Event_a;
+}
+
+public class CLSClass: Base {
+ public event MyDelegate Event_A;
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'i1' differing only in case is not CLS-compliant
+// Line: 9
+
+[assembly:System.CLSCompliant(true)]
+
+public class I1 {
+}
+
+public interface i1 {
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'CLSClass.this[int].set' differing only in case is not CLS-compliant
+// Line: 8
+
+[assembly:System.CLSCompliant(true)]
+
+public class CLSClass {
+ protected int SET_item;
+ public int this[int index] { set {} }
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'II.foo' differing only in case is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly:CLSCompliant(true)]
+
+public interface II {
+ int Foo();
+ int foo { get; }
+}
\ No newline at end of file
--- /dev/null
+// cs3005.cs: Identifier 'c1' differing only in case is not CLS-compliant
+// Line: 9
+
+[assembly:System.CLSCompliant(true)]
+
+public class C1 {
+}
+
+public class c1 {
+}
\ No newline at end of file
// cs3005: Identifier foo differing only in case is not CLS-Compliant.
-// Line: 13
-
+// Line: 9
using System;
+[assembly: CLSCompliant (true)]
-class ErrorCS3005 {
+public class ErrorCS3005 {
public int FOO = 0;
public int foo = 1;
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSClass.Test(int[,])' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 11
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public class CLSClass {
+ public void Test(int[,,] b) {
+ }
+
+ public void Test(int[,] b) {
+ }
+}
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSClass.Test(out bool)' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 11
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public abstract class CLSClass {
+ public void Test(bool a) {
+ }
+
+ public abstract void Test(out bool b);
+}
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSInterface.Test(ref int)' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public interface CLSInterface {
+ void Test(int a);
+ void Test(ref int b);
+}
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSInterface.Test(int[,])' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public interface CLSInterface {
+ void Test(int[,,] b);
+ void Test(int[,] b);
+}
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSInterface.Test(out bool)' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 9
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public interface CLSInterface {
+ void Test(bool a);
+ void Test(out bool b);
+}
--- /dev/null
+// cs3006-1.cs: Overloaded method 'CLSClass.CLSClass(int[,,])' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 11
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public class CLSClass {
+ public CLSClass(int[,,] b) {
+ }
+
+ public CLSClass(int[,] b) {
+ }
+
+}
--- /dev/null
+// cs3006.cs: Overloaded method 'CLSClass.Test(ref int)' differing only in ref or out, or in array rank, is not CLS-compliant
+// Line: 11
+
+using System;
+[assembly: CLSCompliant(true)]
+
+public class CLSClass {
+ public void Test(int a) {
+ }
+
+ public void Test(ref int b) {
+ }
+}
--- /dev/null
+// cs3009.cs: 'Days': base type 'uint' is not CLS-compliant
+// Line: 7
+
+using System;
+[assembly:CLSCompliant(true)]
+
+public enum Days: uint {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
--- /dev/null
+// cs3009.cs: 'CLSClass': base type 'System.Runtime.Serialization.Formatter' is not CLS-compliant
+// Line: 9
+
+using System;
+using System.Runtime.Serialization;
+
+[assembly:CLSCompliant (true)]
+
+public abstract class CLSClass: Formatter {
+}
--- /dev/null
+// cs3009.cs: 'CLSClass': base type 'BaseClass' is not CLS-compliant
+// Line: 11
+
+using System;
+[assembly:CLSCompliant (true)]
+
+[CLSCompliant (false)]
+public class BaseClass {
+}
+
+public class CLSClass: BaseClass {
+}
--- /dev/null
+// cs3012.cs: You must specify the CLSCompliant attribute on the assembly, not the module, to enable CLS compliance checking
+// Line: 7
+// Compiler options: -warnaserror
+
+using System;
+
+[module: CLSCompliant(true)]
+
+public class ClsMain {
+ public static void Main () {}
+}
\ No newline at end of file
--- /dev/null
+// cs3013.cs: Added module is not CLS-compliant, or is missing CLSCompliant attribute
+// Line: 0
+// Compiler options: -addmodule:CS3013-module.dll
+
+using System;
+
+[assembly: CLSCompliant(true)]