Author: toshok
Date: 2007-12-09 19:14:12 -0500 (Sun, 09 Dec 2007)
New Revision: 91023
Modified:
trunk/mono-tools/gui-compare/CecilMetadata.cs
trunk/mono-tools/gui-compare/CompareContext.cs
trunk/mono-tools/gui-compare/CompareWindow.cs
trunk/mono-tools/gui-compare/Comparison.cs
trunk/mono-tools/gui-compare/MasterMetadata.cs
trunk/mono-tools/gui-compare/Masterinfo.cs
trunk/mono-tools/gui-compare/Metadata.cs
Log:
more stuff, including the counts in the treeview.
Modified: trunk/mono-tools/gui-compare/CecilMetadata.cs
===================================================================
--- trunk/mono-tools/gui-compare/CecilMetadata.cs 2007-12-10 00:13:10 UTC
(rev 91022)
+++ trunk/mono-tools/gui-compare/CecilMetadata.cs 2007-12-10 00:14:12 UTC
(rev 91023)
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Text;
using System.Threading;
using System.Xml;
using Mono.Cecil;
@@ -68,8 +69,29 @@
: base (name)
{
class_list = new List<CompClass>();
+// enum_list = new List<CompEnum>();
+// delegate_list = new List<CompDelegate>();
+ interface_list = new List<CompInterface>();
+ struct_list = new List<CompClass>();
+
foreach (string cls_name in class_mapping.Keys) {
- class_list.Add (new CecilClass
(class_mapping[cls_name]));
+ TypeDefinition type_def =
class_mapping[cls_name];
+ if (type_def.IsNotPublic)
+ continue;
+ if (type_def.IsValueType) {
+ if (type_def.IsEnum) {
+ Console.WriteLine ("enum ->
{0}", type_def.FullName);
+ }
+ else {
+ struct_list.Add (new CecilClass
(class_mapping[cls_name]));
+ }
+ }
+ else if (type_def.IsInterface) {
+ interface_list.Add (new CecilInterface
(class_mapping[cls_name]));
+ }
+ else {
+ class_list.Add (new CecilClass
(class_mapping[cls_name]));
+ }
}
class_list.Sort (delegate (CompClass x, CompClass y) {
return String.Compare (x.Name, y.Name); });
@@ -80,9 +102,31 @@
return class_list;
}
+ public override List<CompInterface> GetInterfaces ()
+ {
+ return interface_list;
+ }
+
+ public override List<CompClass> GetStructs ()
+ {
+ return struct_list;
+ }
+
List<CompClass> class_list;
+ List<CompInterface> interface_list;
+ List<CompClass> struct_list;
}
+ public class CecilInterface : CompInterface {
+ public CecilInterface (TypeReference type_ref)
+ : base (type_ref.FullName)
+ {
+ this.type_ref = type_ref;
+ }
+
+ TypeReference type_ref;
+ }
+
public class CecilClass : CompClass {
public CecilClass (TypeDefinition type_def)
: base (type_def.Name)
@@ -90,11 +134,26 @@
this.type_def = type_def;
}
+ public override List<CompInterface> GetInterfaces ()
+ {
+ List<CompInterface> rv = new List<CompInterface>();
+
+ foreach (TypeReference md in type_def.Interfaces) {
+ rv.Add (new CecilInterface (md));
+ }
+
+ rv.Sort (delegate (CompInterface x, CompInterface y) {
return String.Compare (x.Name, y.Name); });
+
+ return rv;
+ }
+
public override List<CompMethod> GetMethods ()
{
List<CompMethod> rv = new List<CompMethod>();
foreach (MethodDefinition md in type_def.Methods) {
+ if (md.IsSpecialName)
+ continue;
rv.Add (new CecilMethod (md));
}
@@ -125,11 +184,28 @@
public class CecilMethod : CompMethod {
public CecilMethod (MethodDefinition method_def)
- : base (method_def.Name)
+ : base (MasterinfoFormattedName (method_def))
{
this.method_def = method_def;
}
+ static string MasterinfoFormattedName (MethodDefinition
method_def)
+ {
+ StringBuilder sb = new StringBuilder ();
+ sb.Append (method_def.Name);
+ sb.Append ('(');
+ bool comma = false;
+ foreach (ParameterDefinition p in
method_def.Parameters) {
+ if (comma)
+ sb.Append (", ");
+ sb.Append (p.ParameterType.FullName);
+ comma = true;
+ }
+ sb.Append (')');
+
+ return sb.ToString();
+ }
+
MethodDefinition method_def;
}
}
Modified: trunk/mono-tools/gui-compare/CompareContext.cs
===================================================================
--- trunk/mono-tools/gui-compare/CompareContext.cs 2007-12-10 00:13:10 UTC
(rev 91022)
+++ trunk/mono-tools/gui-compare/CompareContext.cs 2007-12-10 00:14:12 UTC
(rev 91023)
@@ -115,7 +115,7 @@
ProgressOnGuiThread (0.0, String.Format
("Comparing namespace {0}", master_namespaces[m].Name));
/* the names match, further
investigation is required */
- Console.WriteLine ("namespace {0} is in
both, doing more comparisons", master_namespaces[m].Name);
+// Console.WriteLine ("namespace {0} is in
both, doing more comparisons", master_namespaces[m].Name);
NamespaceComparison comparison = new
NamespaceComparison (master_namespaces[m].Name);
parent.AddChild (comparison);
CompareTypes (comparison,
master_namespaces[m], assembly_namespaces[a]);
@@ -155,9 +155,9 @@
if (c == 0) {
/* the names match, further
investigation is required */
- Console.WriteLine ("type {0} is in
both, doing more comparisons", master_types[m].Name);
ClassComparison comparison = new
ClassComparison (master_types[m].Name);
parent.AddChild (comparison);
+ CompareInterfaces (comparison,
master_types[m], assembly_types[a]);
CompareMethods (comparison,
master_types[m], assembly_types[a]);
// XXX more comparison stuff here
CompareClassLists (comparison,
@@ -184,8 +184,102 @@
{
CompareClassLists (parent,
master_namespace.GetClasses(),
assembly_namespace.GetClasses());
+ CompareStructs (parent,
+ master_namespace, assembly_namespace);
}
+ void CompareStructs (ComparisonNode parent,
+ CompNamespace master_namespace,
CompNamespace assembly_namespace)
+ {
+ List<CompClass> assembly_structs =
assembly_namespace.GetStructs();
+ List<CompClass> master_structs =
master_namespace.GetStructs();
+
+ int m = 0, a = 0;
+ while (m < master_structs.Count || a <
assembly_structs.Count) {
+ if (m == master_structs.Count) {
+ Console.WriteLine ("{0}",
assembly_namespace.Name);
+ AddExtraStruct (parent,
assembly_structs[a]);
+ a++;
+ continue;
+ }
+ else if (a == assembly_structs.Count) {
+ Console.WriteLine ("{0}",
master_namespace.Name);
+ AddMissingStruct (parent,
master_structs[m]);
+ m++;
+ continue;
+ }
+
+ int c = String.Compare (master_structs[m].Name,
assembly_structs[a].Name);
+
+ if (c == 0) {
+ /* the names match, further
investigation is required */
+ Console.WriteLine ("struct {0} is in
both, doing more comparisons", master_structs[m].Name);
+ StructComparison comparison = new
StructComparison (master_structs[m].Name);
+ parent.AddChild (comparison);
+ m++;
+ a++;
+ }
+ else if (c < 0) {
+ Console.WriteLine ("{0}",
master_namespace.Name);
+ /* master name is before assembly name,
master name is missing from assembly */
+ AddMissingStruct (parent,
master_structs[m]);
+ m++;
+ }
+ else {
+ Console.WriteLine ("{0}",
assembly_namespace.Name);
+ /* master name is after assembly name,
assembly name is extra */
+ AddExtraStruct (parent,
assembly_structs[a]);
+ a++;
+ }
+ }
+ }
+
+ void CompareInterfaces (ComparisonNode parent,
+ CompClass master_class, CompClass
assembly_class)
+ {
+ List<CompInterface> assembly_interfaces =
assembly_class.GetInterfaces();
+ List<CompInterface> master_interfaces =
master_class.GetInterfaces();
+
+ int m = 0, a = 0;
+ while (m < master_interfaces.Count || a <
assembly_interfaces.Count) {
+ if (m == master_interfaces.Count) {
+ Console.WriteLine ("{0}",
assembly_class.Name);
+ AddExtraInterface (parent,
assembly_interfaces[a]);
+ a++;
+ continue;
+ }
+ else if (a == assembly_interfaces.Count) {
+ Console.WriteLine ("{0}",
master_class.Name);
+ AddMissingInterface (parent,
master_interfaces[m]);
+ m++;
+ continue;
+ }
+
+ int c = String.Compare
(master_interfaces[m].Name, assembly_interfaces[a].Name);
+
+ if (c == 0) {
+ /* the names match, further
investigation is required */
+ Console.WriteLine ("interface {0} is in
both, doing more comparisons", master_interfaces[m].Name);
+ InterfaceComparison comparison = new
InterfaceComparison (master_interfaces[m].Name);
+ parent.AddChild (comparison);
+ m++;
+ a++;
+ }
+ else if (c < 0) {
+ Console.WriteLine ("{0}",
master_class.Name);
+ /* master name is before assembly name,
master name is missing from assembly */
+ AddMissingInterface (parent,
master_interfaces[m]);
+ m++;
+ }
+ else {
+ Console.WriteLine ("{0}",
assembly_class.Name);
+ /* master name is after assembly name,
assembly name is extra */
+ AddExtraInterface (parent,
assembly_interfaces[a]);
+ a++;
+ }
+ }
+ }
+
void CompareMethods (ComparisonNode parent,
CompClass master_class, CompClass
assembly_class)
{
@@ -209,7 +303,7 @@
if (c == 0) {
/* the names match, further
investigation is required */
- Console.WriteLine ("method {0} is in
both, doing more comparisons", master_methods[m].Name);
+// Console.WriteLine ("method {0} is in
both, doing more comparisons", master_methods[m].Name);
MethodComparison comparison = new
MethodComparison (master_methods[m].Name);
parent.AddChild (comparison);
//CompareParameters (comparison,
master_methods[m], assembly_namespace [assembly_methods[a]]);
@@ -265,6 +359,36 @@
comparison.status = ComparisonStatus.Missing;
}
+ void AddExtraStruct (ComparisonNode parent, CompClass cls)
+ {
+ StructComparison comparison = new StructComparison
(cls.Name);
+ parent.AddChild (comparison);
+ comparison.status = ComparisonStatus.Extra;
+ }
+
+ void AddMissingStruct (ComparisonNode parent, CompClass cls)
+ {
+ StructComparison comparison = new StructComparison
(cls.Name);
+ parent.AddChild (comparison);
+ comparison.status = ComparisonStatus.Missing;
+ }
+
+ void AddExtraInterface (ComparisonNode parent, CompInterface
cls)
+ {
+ Console.WriteLine ("extra interface {0}", cls.Name);
+ InterfaceComparison comparison = new
InterfaceComparison (cls.Name);
+ parent.AddChild (comparison);
+ comparison.status = ComparisonStatus.Extra;
+ }
+
+ void AddMissingInterface (ComparisonNode parent, CompInterface
cls)
+ {
+ Console.WriteLine ("missing interface {0}", cls.Name);
+ InterfaceComparison comparison = new
InterfaceComparison (cls.Name);
+ parent.AddChild (comparison);
+ comparison.status = ComparisonStatus.Missing;
+ }
+
void AddExtraMethod (ComparisonNode parent, CompMethod extra)
{
ComparisonNode method_node = new MethodComparison
(extra.Name);
Modified: trunk/mono-tools/gui-compare/CompareWindow.cs
===================================================================
--- trunk/mono-tools/gui-compare/CompareWindow.cs 2007-12-10 00:13:10 UTC
(rev 91022)
+++ trunk/mono-tools/gui-compare/CompareWindow.cs 2007-12-10 00:14:12 UTC
(rev 91023)
@@ -53,14 +53,17 @@
vbox = new Gtk.VBox ();
tree = new Gtk.TreeView ();
- treeStore = new Gtk.TreeStore (typeof (string), typeof
(Gdk.Pixbuf), typeof (Gdk.Pixbuf));
+ treeStore = new Gtk.TreeStore (typeof (string), typeof
(Gdk.Pixbuf), typeof (Gdk.Pixbuf),
+ typeof (Gdk.Pixbuf),
typeof (string),
+ typeof (Gdk.Pixbuf),
typeof (string),
+ typeof (Gdk.Pixbuf),
typeof (string));
tree.Model = treeStore;
// Create a column for the node name
Gtk.TreeViewColumn nameColumn = new Gtk.TreeViewColumn
();
nameColumn.Title = "Name";
-
+
Gtk.CellRendererText nameCell = new
Gtk.CellRendererText ();
Gtk.CellRendererPixbuf typeCell = new
Gtk.CellRendererPixbuf ();
Gtk.CellRendererPixbuf statusCell = new
Gtk.CellRendererPixbuf ();
@@ -75,6 +78,34 @@
nameColumn.AddAttribute (typeCell, "pixbuf", 1);
nameColumn.AddAttribute (statusCell, "pixbuf", 2);
+ // Create a column for the status counts
+ Gtk.TreeViewColumn countsColumn = new
Gtk.TreeViewColumn ();
+ countsColumn.Title = "Counts";
+
+ Gtk.CellRendererPixbuf missingPixbufCell = new
Gtk.CellRendererPixbuf ();
+ Gtk.CellRendererText missingTextCell = new
Gtk.CellRendererText ();
+ Gtk.CellRendererPixbuf extraPixbufCell = new
Gtk.CellRendererPixbuf ();
+ Gtk.CellRendererText extraTextCell = new
Gtk.CellRendererText ();
+ Gtk.CellRendererPixbuf errorPixbufCell = new
Gtk.CellRendererPixbuf ();
+ Gtk.CellRendererText errorTextCell = new
Gtk.CellRendererText ();
+
+ countsColumn.PackStart (missingPixbufCell, false);
+ countsColumn.PackStart (missingTextCell, false);
+ countsColumn.PackStart (extraPixbufCell, false);
+ countsColumn.PackStart (extraTextCell, false);
+ countsColumn.PackStart (errorPixbufCell, false);
+ countsColumn.PackStart (errorTextCell, false);
+
+ tree.AppendColumn (countsColumn);
+
+ countsColumn.AddAttribute (missingPixbufCell, "pixbuf",
3);
+ countsColumn.AddAttribute (missingTextCell, "text", 4);
+ countsColumn.AddAttribute (extraPixbufCell, "pixbuf",
5);
+ countsColumn.AddAttribute (extraTextCell, "text", 6);
+ countsColumn.AddAttribute (errorPixbufCell, "pixbuf",
7);
+ countsColumn.AddAttribute (errorTextCell, "text", 8);
+
+
scroll = new Gtk.ScrolledWindow ();
scroll.HscrollbarPolicy = scroll.VscrollbarPolicy =
PolicyType.Automatic;
@@ -133,6 +164,7 @@
status.Pop (0);
status.Push (0, String.Format ("Comparison
completed at {0}", DateTime.Now));
Title = IOPath.GetFileName (assemblyPath);
+ context.Comparison.PropagateCounts ();
PopulateTreeFromComparison (context.Comparison);
progressbar.Fraction = 0.0;
};
@@ -145,6 +177,7 @@
case ComparisonNodeType.Assembly: return assemblyPixbuf;
case ComparisonNodeType.Namespace: return
namespacePixbuf;
case ComparisonNodeType.Attribute: return
attributePixbuf;
+ case ComparisonNodeType.Interface: return
interfacePixbuf;
case ComparisonNodeType.Class: return classPixbuf;
case ComparisonNodeType.Struct: return structPixbuf;
case ComparisonNodeType.Enum: return enumPixbuf;
@@ -169,9 +202,17 @@
void PopulateTreeFromComparison (ComparisonNode root)
{
- Gtk.TreeIter iter = treeStore.AppendValues (root.name,
-
TypePixbufFromComparisonNode (root),
-
StatusPixbufFromComparisonNode (root));
+ Gtk.TreeIter iter =
+ treeStore.AppendValues (root.name,
+
TypePixbufFromComparisonNode (root),
+
StatusPixbufFromComparisonNode (root),
+ root.Missing == 0 ?
null : missingPixbuf,
+ root.Missing == 0 ?
null : String.Format (": {0}", root.Missing),
+ root.Extra == 0 ? null
: extraPixbuf,
+ root.Extra == 0 ? null
: String.Format (": {0}", root.Extra),
+ root.Warning == 0 ?
null : errorPixbuf,
+ root.Warning == 0 ?
null : String.Format (": {0}", root.Warning));
+
Gtk.TreePath path = treeStore.GetPath (iter);
foreach (ComparisonNode n in root.children)
@@ -182,10 +223,18 @@
void PopulateTreeFromComparison (Gtk.TreeIter iter,
ComparisonNode node)
{
- Gtk.TreeIter citer = treeStore.AppendValues (iter,
- node.name,
-
TypePixbufFromComparisonNode (node),
-
StatusPixbufFromComparisonNode (node));
+ Gtk.TreeIter citer =
+ treeStore.AppendValues (iter,
+ node.name,
+
TypePixbufFromComparisonNode (node),
+
StatusPixbufFromComparisonNode (node),
+ node.Missing == 0 ?
null : missingPixbuf,
+ node.Missing == 0 ?
null : String.Format (": {0}", node.Missing),
+ node.Extra == 0 ? null
: extraPixbuf,
+ node.Extra == 0 ? null
: String.Format (": {0}", node.Extra),
+ node.Warning == 0 ?
null : errorPixbuf,
+ node.Warning == 0 ?
null : String.Format (": {0}", node.Warning));
+
foreach (ComparisonNode n in node.children)
PopulateTreeFromComparison (citer, n);
}
Modified: trunk/mono-tools/gui-compare/Comparison.cs
===================================================================
--- trunk/mono-tools/gui-compare/Comparison.cs 2007-12-10 00:13:10 UTC (rev
91022)
+++ trunk/mono-tools/gui-compare/Comparison.cs 2007-12-10 00:14:12 UTC (rev
91023)
@@ -12,6 +12,7 @@
Assembly,
Namespace,
Attribute,
+ Interface,
Class,
Struct,
Enum,
@@ -43,6 +44,19 @@
node.parent = this;
}
+ public void PropagateCounts ()
+ {
+ foreach (ComparisonNode n in children) {
+ n.PropagateCounts ();
+ Extra += n.Extra + (n.status ==
ComparisonStatus.Extra ? 1 : 0);
+ Missing += n.Missing + (n.status ==
ComparisonStatus.Missing ? 1 : 0);
+ Present += n.Present; // XXX
+ Todo += n.Todo + (n.status ==
ComparisonStatus.Todo ? 1 : 0);
+ Warning += n.Warning; // XXX
+ }
+ }
+
+
public ComparisonStatus status;
public ComparisonNodeType type;
@@ -50,18 +64,11 @@
public string name;
+ public int Extra;
+ public int Missing;
public int Present;
- public int PresentTotal;
- public int Missing;
- public int MissingTotal;
public int Todo;
- public int TodoTotal;
-
- public int Extra;
- public int ExtraTotal;
public int Warning;
- public int WarningTotal;
- public int ErrorTotal;
public List<ComparisonNode> children;
}
@@ -88,6 +95,13 @@
}
}
+ public class InterfaceComparison : ComparisonNode {
+ public InterfaceComparison (string name)
+ : base (ComparisonNodeType.Interface, name)
+ {
+ }
+ }
+
public class StructComparison : ComparisonNode {
public StructComparison (string name)
: base (ComparisonNodeType.Struct, name)
Modified: trunk/mono-tools/gui-compare/MasterMetadata.cs
===================================================================
--- trunk/mono-tools/gui-compare/MasterMetadata.cs 2007-12-10 00:13:10 UTC
(rev 91022)
+++ trunk/mono-tools/gui-compare/MasterMetadata.cs 2007-12-10 00:14:12 UTC
(rev 91023)
@@ -46,9 +46,26 @@
return classes;
}
+ public override List<CompInterface> GetInterfaces ()
+ {
+ return new List<CompInterface>();
+ }
+
+ public override List<CompClass> GetStructs ()
+ {
+ return new List<CompClass>();
+ }
+
XMLNamespace ns;
}
+ public class MasterInterface : CompInterface {
+ public MasterInterface (string name)
+ : base (name)
+ {
+ }
+ }
+
public class MasterClass : CompClass {
public MasterClass (XMLClass cls)
: base (cls.name)
@@ -56,9 +73,32 @@
xml_cls = cls;
}
+ public override List<CompInterface> GetInterfaces ()
+ {
+ List<CompInterface> rv = new List<CompInterface>();
+
+ if (xml_cls.interfaces != null) {
+ foreach (object i in
xml_cls.interfaces.keys.Keys) {
+ rv.Add (new MasterInterface
((string)xml_cls.interfaces.keys[i]));
+ }
+ }
+
+
+ return rv;
+ }
+
public override List<CompMethod> GetMethods()
{
- return new List<CompMethod>();
+ List<CompMethod> rv = new List<CompMethod>();
+ if (xml_cls.methods != null) {
+ foreach (object key in
xml_cls.methods.keys.Keys) {
+ rv.Add (new MasterMethod
((string)xml_cls.methods.keys[key]));
+ }
+ }
+
+ rv.Sort (delegate (CompMethod x, CompMethod y) { return
String.Compare (x.Name, y.Name); });
+
+ return rv;
}
public override List<CompMethod> GetConstructors()
@@ -81,4 +121,12 @@
XMLClass xml_cls;
}
+
+ // XXX more stuff is needed here besides the name
+ public class MasterMethod : CompMethod {
+ public MasterMethod (string name)
+ : base (name)
+ {
+ }
+ }
}
Modified: trunk/mono-tools/gui-compare/Masterinfo.cs
===================================================================
--- trunk/mono-tools/gui-compare/Masterinfo.cs 2007-12-10 00:13:10 UTC (rev
91022)
+++ trunk/mono-tools/gui-compare/Masterinfo.cs 2007-12-10 00:14:12 UTC (rev
91023)
@@ -273,7 +273,7 @@
public abstract class XMLNameGroup : XMLData
{
protected XmlNode group;
- protected Hashtable keys;
+ public Hashtable keys;
public override void LoadData (XmlNode node)
{
@@ -636,7 +636,7 @@
string charSet;
string layout;
XMLAttributes attributes;
- XMLInterfaces interfaces;
+ public XMLInterfaces interfaces;
XMLGenericTypeConstraints genericConstraints;
XMLFields fields;
XMLConstructors constructors;
Modified: trunk/mono-tools/gui-compare/Metadata.cs
===================================================================
--- trunk/mono-tools/gui-compare/Metadata.cs 2007-12-10 00:13:10 UTC (rev
91022)
+++ trunk/mono-tools/gui-compare/Metadata.cs 2007-12-10 00:14:12 UTC (rev
91023)
@@ -9,72 +9,76 @@
namespace GuiCompare {
- public abstract class CompAssembly {
- public CompAssembly (string name)
+ public abstract class CompNamed {
+ public CompNamed ()
{
+ }
+
+ public CompNamed (string name)
+ {
this.name = name;
}
public string Name {
+ set { name = value; }
get { return name; }
}
- public abstract List<CompNamespace> GetNamespaces();
-
string name;
}
- public abstract class CompNamespace {
- string name;
+ public abstract class CompAssembly : CompNamed {
+ public CompAssembly (string name)
+ : base (name)
+ {
+ }
+ public abstract List<CompNamespace> GetNamespaces();
+ }
+
+ public abstract class CompNamespace : CompNamed {
public CompNamespace (string name)
+ : base (name)
{
- this.name = name;
}
- public string Name {
- get { return name; }
- }
-
public abstract List<CompClass> GetClasses();
+ public abstract List<CompInterface> GetInterfaces ();
+ public abstract List<CompClass> GetStructs ();
}
- public abstract class CompAttributeContainer
+ public interface ICompAttributeContainer
{
// public List<CompAttribute> GetAttributes ();
}
- public abstract class CompClass : CompAttributeContainer {
- string name;
+ public abstract class CompInterface : CompNamed,
ICompAttributeContainer {
+ public CompInterface (string name)
+ : base (name)
+ {
+ }
+ }
+ public abstract class CompClass : CompNamed, ICompAttributeContainer {
public CompClass (string name)
+ : base (name)
{
- this.name = name;
}
- public string Name {
- get { return name; }
- }
+ public abstract List<CompInterface> GetInterfaces ();
+ public abstract List<CompMethod> GetConstructors();
+ public abstract List<CompMethod> GetMethods();
+// public abstract List<CompProperty> GetProperties();
+// public abstract List<CompField> GetFields();
+// public abstract List<CompEvent> GetEvents();
- public abstract List<CompMethod> GetConstructors();
- public abstract List<CompMethod> GetMethods();
-// public abstract List<CompProperty> GetProperties();
-// public abstract List<CompField> GetFields();
-// public abstract List<CompEvent> GetEvents();
-
public abstract List<CompClass> GetNestedClasses();
}
- public abstract class CompMethod : CompAttributeContainer {
+ public abstract class CompMethod : CompNamed, ICompAttributeContainer {
public CompMethod (string name)
+ : base (name)
{
- this.name = name;
}
-
- public string Name {
- get { return name; }
- }
-
- string name;
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches