- if ($3 != null) {
- ClassPart part = PartialContainer.CreatePart (
- current_namespace, current_class, name, mod_flags,
- (Attributes) $1, Kind.Class, (Location) $3);
-
- current_container = part.PartialContainer;
- current_class = part;
- } else {
- if ((mod_flags & Modifiers.STATIC) != 0) {
- current_class = new StaticClass (
- current_namespace, current_class, name,
- mod_flags, (Attributes) $1);
- } else {
- current_class = new Class (
- current_namespace, current_class, name,
- mod_flags, (Attributes) $1);
- }
-
- current_container.AddClassOrStruct (current_class);
- current_container = current_class;
- RootContext.Tree.RecordDecl (current_namespace.NS, name, current_class);
- }
+ push_current_class (new Class (
+ current_namespace, current_class, name,
+ mod_flags, (Attributes) $1), false, $3);