using System.Console; using SCG = System.Collections.Generic; using SC = System.Collections; public class Moo2 : SCG.IComparer[Moo2] { public Test() : int { Compare(null : object, null) } protected Compare(_ : object, _ : object) : int {1} public Compare(_ : Moo2, _ : Moo2) : int {2} } public class Moo3 : SCG.IComparer[Moo3], SC.IComparer { private Compare(_ : object, _ : object) : int implements SC.IComparer.Compare {3} public Compare(_ : Moo3, _ : Moo3) : int {4} } public class Moo4 : SCG.IComparer[Moo4], SC.IComparer { public Compare(_ : object, _ : object) : int {5} } interface I_Comparable_To ['a] { compare (_ : 'a) : int; } interface I_Test_Overload ['a] { set (_ : int) : void; set (_ : float) : void; } interface A { foo () : void; } interface B : A { new foo() : void; } class C : B { public foo () : void { } public foo1 () : void implements A.foo { } } namespace Bug881 { class Base { public virtual Foo[T](x : T) : list [T] { System.Console.WriteLine (typeof (T)); [x] } } interface IFace { Foo[T](x : T) : list [T]; } class Derived : Base, IFace {} } namespace Bug885 { class Base[T] { public Foo(_x : T) : void {} } interface IFace { Foo(_x : int) : void; } class Derived : Base[int], IFace { } } class Bar { } def d = Bug881.Derived () : Bug881.IFace; assert (d.Foo (Bar ()).Length == 1); def moo2 = Moo2(); WriteLine(moo2.Compare(Moo2(), Moo2())); def gComparer = moo2 : SCG.IComparer[Moo2]; WriteLine(gComparer.Compare(Moo2(), Moo2())); WriteLine(moo2.Test()); def moo3 = Moo3(); WriteLine(moo3.Compare(Moo3(), Moo3())); def gComparer = moo3 : SCG.IComparer[Moo3]; WriteLine(gComparer.Compare(Moo3(), Moo3())); def comparer = moo3 : SC.IComparer; WriteLine(comparer.Compare(Moo3(), Moo3())); def moo4 = Moo4(); WriteLine(moo4.Compare(Moo4(), Moo4())); def gComparer = moo4 : SCG.IComparer[Moo4]; WriteLine(gComparer.Compare(Moo4(), Moo4())); def comparer = moo4 : SC.IComparer; WriteLine(comparer.Compare(Moo4(), Moo4())); /* BEGIN-OUTPUT Bar 2 2 1 4 4 3 5 5 5 END-OUTPUT */