public override object Clone() { ProtectWhen when = (ProtectWhen) base.Clone(); when.typeSpecifier = (TypeSpecifier) typeSpecifier.Clone(); when.thenPart = (StatementList) thenPart.Clone(); return when; }