<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS3005</ErrorName>
  <Examples>
    <string>// CS3005: Identifier `a' differing only in case is not CLS-compliant
// Line: 10
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant (true)]

public enum A {
}

public interface a {
}
</string>
    <string>// CS3005: Identifier `System.Icomparable' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror -warn:1

[assembly:System.CLSCompliant(true)]

namespace System {
    public interface Icomparable {
    }
}
</string>
    <string>// CS3005: Identifier `CLSClass.op_implicit()' differing only in case is not CLS-compliant
// Line: 12
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant(true)]

public class CLSClass {
        static public implicit operator CLSClass(byte value) {
               return new CLSClass();
        }
    
        public void op_implicit () {}
}
</string>
    <string>// CS3005: Identifier `I.BLAH.get' differing only in case is not CLS-compliant
// Line: 16
// Compiler options: -warnaserror

using System.Runtime.CompilerServices;
using System;

[assembly: CLSCompliant (true)]

public interface I {
	[IndexerName ("blah")]
	int this [int a] {
            get;
	}

 	int BLAH { get; }
}
</string>
    <string>// CS3005: Identifier `CLSClass_B.uNIVERSAL' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -reference:CS3005-16-lib.dll -warnaserror


using System;
[assembly: CLSCompliantAttribute (true)]

public class CLSClass_B: CLSClass_A {
        public const int uNIVERSAL = 3;
}
</string>
    <string>// CS3005: Identifier `B.TEST()' differing only in case is not CLS-compliant
// Line: 15
// Compiler options: -warnaserror

using System;

[assembly: CLSCompliantAttribute (true)]

public class A
{
    [CLSCompliant (false)]
    public void Test () {}
        
    public void test () {}
}

public class B: A
{
    public void TEST () {} 
}
</string>
    <string>// CS3005: Identifier `CLSClass.NameAbC' differing only in case is not CLS-compliant
// Line: 12
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant (true)]

public class CLSClass {
        [CLSCompliant (false)]
        public int NameABC;
            
        public int NameAbc;
        public int NameAbC;
}
</string>
    <string>// CS3005: Identifier `CLSClass.Event_A' differing only in case is not CLS-compliant
// Line: 13
// Compiler options: -warnaserror

[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;
}
</string>
    <string>// CS3005: Identifier `i1' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class I1 {
}

public interface i1 {
}
</string>
    <string>// CS3005: Identifier `CLSClass.Index.get' differing only in case is not CLS-compliant
// Line: 14
// Compiler options: -warnaserror

[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; } }
}
</string>
    <string>// CS3005: Identifier `CLSClass.value' differing only in case is not CLS-compliant
// Line: 15
// Compiler options: -warnaserror

[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;
}
</string>
    <string>// CS3005: Identifier `II.foo' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant(true)]

public interface II {
        int Foo();
        int foo { get; }
}
</string>
    <string>// CS3005: Identifier `X.Index' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class X {
        public int index { get { return 0; } }
        public int Index { set {} }
        
}
</string>
    <string>// CS3005: Identifier `CLSEnum.Label' differing only in case is not CLS-compliant
// Line: 10
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public enum CLSEnum {
        label,
        Label
}
</string>
    <string>// CS3005: Identifier `i1' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public interface I1 {
}

public interface i1 {
}
</string>
    <string>// CS3005: Identifier `Foo.main()' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

using System;
[assembly: CLSCompliant(false)]

[CLSCompliant(true)]
public class Foo {
	public static void Main () {}
	public static void main () {}
}</string>
    <string>// CS3005: Identifier `II.compareto()' differing only in case is not CLS-compliant
// Line: 11
// Compiler options: -t:library -warnaserror


[assembly:System.CLSCompliant(true)]

public interface I {
}

public interface II: I, System.IComparable {
        bool compareto();
}
</string>
    <string>// CS3005: Identifier `CLSClass.this[int].set' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class CLSClass {
        protected int SET_item;
        public int this[int index] { set {} }        
}
</string>
    <string>// CS3005: Identifier `CLSClass.constant' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class CLSClass {
        protected int Constant = 1;
        protected const bool constant = false;
}
</string>
    <string>// CS3005: Identifier `ErrorCS3005.foo' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly: CLSCompliant (true)]

public class ErrorCS3005 {
	public int FOO = 0;
	public int foo = 1;

	public static void Main ( ) {
		ErrorCS3005 error = new ErrorCS3005 ();
		Console.WriteLine ("This should make the compiler to complain ERROR CS3005, number: {0}", error.foo);
	}
}

</string>
    <string>// CS3005: Identifier `c1' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class C1 {
}

public class c1 {
}
</string>
    <string>// CS3005: Identifier `ClsClass' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public partial class CLSClass {}

public partial struct ClsClass {}
</string>
    <string>// CS3005: Identifier `clsInterface' differing only in case is not CLS-compliant
// Line: 10
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant (true)]

public interface CLSInterface {
}

public class clsInterface: CLSInterface {
}
</string>
    <string>// CS3005: Identifier `CLSClass.a.get' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror

[assembly:System.CLSCompliant(true)]

public class CLSClass {
        public int get_A () { return 3; }
        public int a { get { return 2; } }
}
</string>
    <string>// CS3005: Identifier `CLSClass.Method(int)' differing only in case is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror

[assembly:System.CLSCompliant (true)]

public class BaseClass {
        public int method;
}

public class CLSClass : BaseClass {
        public static void Method(int arg) {}
}
</string>
    <string>// CS3005: Identifier `CLSClass.NameAbC(int)' differing only in case is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror

using System;
[assembly:CLSCompliant (true)]

public class CLSClass {
        public int NameABC;
        public static void NameAbC(int arg) {}
}
</string>
    <string>// CS3005: Identifier `CLSClass.Method&lt;T&gt;(int)' differing only in case is not CLS-compliant
// Line: 12
// Compiler options: -warnaserror

[assembly:System.CLSCompliant (true)]

public class BaseClass {
        public int method;
}

public class CLSClass : BaseClass {
        public static void Method&lt;T&gt;(int arg) {}
}
</string>
  </Examples>
</ErrorDocumentation>