2002-07-24 Martin Baulig <martin@gnome.org>
authorMartin Baulig <martin@novell.com>
Tue, 23 Jul 2002 23:28:50 +0000 (23:28 -0000)
committerMartin Baulig <martin@novell.com>
Tue, 23 Jul 2002 23:28:50 +0000 (23:28 -0000)
commitfcf53a4f773ce088f03fe28a1f0905c56eb86149
treedd7336ed1e639662864cf24bf58540cc7d15eba8
parent63964af025c400e69c8a25d07508711d4be546a9
2002-07-24  Martin Baulig  <martin@gnome.org>

* class.cs (MethodBase): New abstract class.  This is now a base
class for Property, Indexer and Event to avoid some code duplication
in their Define() and DefineMethods() methods.
(MethodBase.DoDefine, MethodBase.DefineAccessor): Provide virtual
generic methods for Define() and DefineMethods().
(FieldBase): Derive from MemberBase, not MemberCore.
(Property): Derive from MemberBase, not MemberCore.
(Property.DefineMethod): Moved all the code from this method to the
new MethodBase.DefineAccessor(), just call it with appropriate
argumetnts.
(Property.Define): Call the new Property.DoDefine(), this does some
sanity checks and we don't need to duplicate the code everywhere.
(Event): Derive from MemberBase, not MemberCore.
(Event.Define): Use the new MethodBase.DefineAccessor() to define the
accessors, this will also make them work with interface events.
(Indexer): Derive from MemberBase, not MemberCore.
(Indexer.DefineMethod): Removed, call MethodBase.DefineAccessor() insstead.
(Indexer.Define): Use the new MethodBase functions.

* interface.cs (InterfaceEvent.InterfaceEvent): Added `Location loc'
argument to the constructor.
(Interface.FindMembers): Added support for interface events.
(Interface.PopluateEvent): Implemented.

svn path=/trunk/mcs/; revision=6097
mcs/mcs/ChangeLog