<?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>CS0108</ErrorName>
  <Examples>
    <string>// cs0108-10.cs: `Derived.EE' hides inherited member `Base.EE'. Use the new keyword if hiding was intended
// Line: 12
// Compiler options: -warnaserror -warn:2

class Base {
	public enum EE {
            Item
        };
}

class Derived : Base {
        public int EE;
}
</string>
    <string>// cs0108-11.cs: `Bar.this[int, int]' hides inherited member `Foo.this[int, int]'. Use the new keyword if hiding was intended
// Line: 15
// Compiler options: -warnaserror -warn:2

public class Foo
{
        public long this [int start, int count] {
                set {
                }
        }
}

public class Bar : Foo
{
        public virtual long this [int i, int length] {
                set {
                }
        }
}
</string>
    <string>// cs0108-12.cs: `Libs.MyLib' hides inherited member `Foo.MyLib'. Use the new keyword if hiding was intended
// Line: 18
// Compiler options: -warnaserror -warn:2

using System;
using System.Runtime.InteropServices;
 
class Test {
	[DllImport (Libs.MyLib)]
	private static extern void foo ();
 
	public static void Main ()
	{
	}
}
 
class Libs : Foo {
	internal const string MyLib = "SomeLibrary";
}
class Foo {
	internal const string MyLib = "Foo";
}
</string>
    <string>// CS0108: `IMutableSequence.this[int]' hides inherited member `ISequence.this[int]'. Use the new keyword if hiding was intended
// Line: 15
// Compiler options: -warnaserror -warn:2

public interface ISequence
{
	object this [int index] 
	{
		get;
	}
}

public interface IMutableSequence : ISequence
{
	object this [int index] 
	{
		get;
		set;
	}
}</string>
    <string>// CS0108: `B.D' hides inherited member `A.D'. Use the new keyword if hiding was intended
// Line: 15
// Compiler options: -warnaserror -warn:2

public class B : A
{
	public delegate void D ();
}

public class A
{
	public int D;
}
</string>
    <string>// cs0108-2.cs: `Derived.Test(bool)' hides inherited member `BaseInterface.Test(bool)'. Use the new keyword if hiding was intended
// Line: 9
// Compiler options: -warnaserror -warn:2 -t:library

interface BaseInterface {
	void Test (bool arg);
}

interface Derived : BaseInterface {
	void Test (bool arg);
}
</string>
    <string>// cs0108-3.cs: `O.InnerAttribute' hides inherited member `Base.InnerAttribute()'. Use the new keyword if hiding was intended
// Line: 12
// Compiler options: -warnaserror -warn:2

using System;

public class Base
{
    public void InnerAttribute () {}
}

class O: Base
{
    [AttributeUsage(AttributeTargets.Class)]
    public sealed class InnerAttribute: Attribute {
    }        
}

class D {
	static void Main () {}
}
</string>
    <string>// cs0108-4.cs: `Derived.Prop' hides inherited member `Base.Prop(int)'. Use the new keyword if hiding was intended
// Line: 10
// Compiler options: -warnaserror -warn:2

class Base {
	public void Prop (int a) {}
}

class Derived : Base {
	public int Prop {
            get {
                return 0;
            }
        }
}
</string>
    <string>// cs0108-5.cs: `Derived.Prop' hides inherited member `Base.Prop'. Use the new keyword if hiding was intended
// Line: 10
// Compiler options: -warnaserror -warn:2

class Base {
	public bool Prop = false;
}

class Derived : Base {
	public int Prop {
            get {
                return 0;
            }
        }
}
</string>
    <string>// cs0108-6.cs: `Derived.Prop' hides inherited member `Base.Prop'. Use the new keyword if hiding was intended
// Line: 14
// Compiler options: -warnaserror -warn:2

class Base {
	public int Prop {
            get {
                return 0;
            }
        }    
}

class Derived : Base {
	public bool Prop = false;
}
</string>
    <string>// cs0108-7.cs: `Derived.Prop(bool)' hides inherited member `Base.Prop'. Use the new keyword if hiding was intended
// Line: 13
// Compiler options: -warnaserror -warn:2

class Base {
	public bool Prop = false;
}

class Derived : Base {
        public void Prop (bool b) {}
}
</string>
    <string>// cs0108-8.cs: `Derived.Method()' hides inherited member `Base.Method()'. Use the new keyword if hiding was intended
// Line: 11
// Compiler options: -warnaserror -warn:2

class Base {
	public bool Method () { return false; }
        public void Method (int a) {}
}

class Derived : Base {
        public void Method () {}
}
</string>
    <string>// cs0108-9.cs: `Outer.Inner' hides inherited member `Base.Inner'. Use the new keyword if hiding was intended
// Line: 13
// Compiler options: -warnaserror -warn:2

public class Base
{
    public int Inner { set { } }
}

class Outer: Base
{
    public void M () {}
    
    public class Inner
    {
    }
}</string>
    <string>// cs0108.cs: `Derived.F()' hides inherited member `Base.F()'. Use the new keyword if hiding was intended
// Line:
// Compiler options: -warnaserror -warn:2

class Base {
	public void F () {}
}

class Derived : Base {
	void F () {}
}
</string>
  </Examples>
</ErrorDocumentation>