Cs-minor-diff

From Nemerle Homepage

lack of ambiguity error in C#, when several attributes can be choosen:

 
 namespace B { 
   class A : System.Attribute {}
 }
 namespace H {
   using B;
 
   class A : System.Attribute {}
 
   [A] class F {}
 }

C# compilers choose H.A and if its definition is commented out, B.A. Nemerle compiler scream about ambiguous attribute type, which is clearly the case here. We are more restrictive here.


overriden methods are not excluded when choosing overload

 
 class BaseClass
 {
   public virtual AddItem (val : string) :  void { }
 }
	
 class TestClass : BaseClass
 {
   public AddItem (val : object) :  void { }
   public override AddItem (val : string) :  void { }
 }
 ...
   TestClass.AddItem ("a");  // C# will choose TestClass.AddItem (object)
                             // while Nemerle, TestClass.AddItem (string)

This is related to "exclude override" rule, which we found plainly wrong. Nemerle compiler always chooses the best matching member, which is closer to Visual Basic .NET than C#.

remember
You are very welcome to contribute to the documentation here!