[svn] r6511: nemerle/trunk/ncc: hierarchy/TypeBuilder.n
testsuite/positive/iface.n
nazgul
svnadmin at nemerle.org
Sat Aug 12 12:54:00 CEST 2006
Log:
Allow new modifier on interface members
Author: nazgul
Date: Sat Aug 12 12:53:54 2006
New Revision: 6511
Modified:
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
nemerle/trunk/ncc/testsuite/positive/iface.n
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Sat Aug 12 12:53:54 2006
@@ -1622,10 +1622,10 @@
class_member.Attributes |= NemerleAttributes.Static;
when (IsInterface) {
- when (class_member.Attributes != NemerleAttributes.None)
+ when (class_member.Attributes %| NemerleAttributes.New != NemerleAttributes.New)
Message.Error ("interface members are not allowed"
- " to have any attributes specified");
- class_member.Attributes = NemerleAttributes.Virtual %|
+ " to have any attributes specified, except 'new'");
+ class_member.Attributes = class_member.Attributes %| NemerleAttributes.Virtual %|
NemerleAttributes.Abstract %| NemerleAttributes.Public;
}
Modified: nemerle/trunk/ncc/testsuite/positive/iface.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/iface.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/iface.n Sat Aug 12 12:53:54 2006
@@ -8,3 +8,14 @@
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 {}
+}
+
\ No newline at end of file
More information about the svn
mailing list