public class Tree {
TypeContainer root_types;
- // <summary>
- // Keeps track of all the types definied (classes, structs, ifaces, enums)
- // </summary>
- Hashtable decls;
-
public Tree ()
{
root_types = new RootTypes ();
-
- decls = new Hashtable ();
}
public void RecordDecl (Namespace ns, MemberName name, DeclSpace ds)
{
- // This is recorded for tracking inner partial classes only
- decls [name] = ds;
-
if (ds.Parent == root_types)
ns.AddDeclSpace (name.Basename, ds);
}
public TypeContainer Types {
get { return root_types; }
}
-
- public DeclSpace GetDecl (MemberName name)
- {
- return (DeclSpace) decls [name];
- }
-
- public Hashtable AllDecls {
- get { return decls; }
- }
}
public sealed class RootTypes : TypeContainer
public RootTypes ()
: base (null, null, MemberName.Null, null, Kind.Root)
{
- ec = new EmitContext (null, this, Location.Null, null, null, 0, false);
+ types = new ArrayList ();
}
- public override PendingImplementation GetPendingImplementations ()
+ public override bool IsClsComplianceRequired ()
{
- throw new InvalidOperationException ();
+ return true;
}
- public override bool IsClsComplianceRequired ()
+ public override bool GetClsCompliantAttributeValue ()
{
- return true;
+ return CodeGen.Assembly.IsClsCompliant;
}
public override string GetSignatureForError ()
{
return AddToContainer (ds, ds.Name);
}
+
+ public override TypeContainer AddPartial (TypeContainer nextPart)
+ {
+ return AddPartial (nextPart, nextPart.Name);
+ }
+
}
}