<?xml version="1.0" encoding="us-ascii"?>
<ErrorDocumentation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ErrorName>CS3001</ErrorName>
  <Examples>
    <string>// CS3001: Argument type `ulong' is not CLS-compliant
// Line: 8
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public delegate long MyDelegate (ulong arg);
</string>
    <string>// CS3001: Argument type `sbyte' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public static class CLSClass
{
	public static void Foo (this sbyte value) { }
}
</string>
    <string>// CS3001: Argument type `ulong' is not CLS-compliant
// Line: 10
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public class CLSClass {
        public CLSClass (long a) {}
        public CLSClass (ref ulong a) {}
}
</string>
    <string>// CS3001: Argument type `ulong' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public class CLSClass {
        public long this [ulong index] {
                get {
                        return 2;
                }
        }
}
</string>
    <string>// CS3001: Argument type `IError' is not CLS-compliant
// Line: 13
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant(true)]

[CLSCompliant(false)]
public interface IError{
}

public interface I {
        void Error(out IError arg);
}

public class c {
        public void Error (out IError arg) { arg = null; }
}
</string>
    <string>// CS3001: Argument type `sbyte' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant(true)]

public class CLSClass {
        public delegate int MyDelegate(sbyte i);
}
</string>
    <string>// CS3001: Argument type `sbyte' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant(true)]

public class CLSClass {
        static public implicit operator CLSClass(byte value) {
               return new CLSClass();
        }
    
        static public implicit operator CLSClass(sbyte value) {
               return new CLSClass();
        }
}
</string>
    <string>// CS3001: Argument type `ulong' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant(true)]

public interface I {
        long this[ulong indexA] { set; }
}
</string>
    <string>// CS3001: Argument type `int*' is not CLS-compliant
// Line: 9
// Compiler options: -unsafe -warnaserror -warn:1

using System;
[assembly:CLSCompliant(true)]

unsafe public abstract class CLSClass {
        public void Method (int* param) {}
}
</string>
    <string>// CS3001: Argument type `ulong' is not CLS-compliant
// Line: 14
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (A.f)]

public class A
{
    public const bool f = true;
}

public interface I {
        void Test (ulong arg);
}
</string>
    <string>// CS3001: Argument type `sbyte' is not CLS-compliant
// Line: 9
// Compiler options: -warnaserror -warn:1

using System;
[assembly:CLSCompliant (true)]

public class CLSClass {
        protected internal void Foo (string text, sbyte value) { }
}
</string>
  </Examples>
</ErrorDocumentation>