 
   /// The .proto file in which this oneof type was defined.
   public var file: FileDescriptor! { return containingType.file }
-  /// If this Descriptor of the message that defines this oneof.
-  public private(set) unowned var containingType: Descriptor!
+  /// The Descriptor of the message that defines this oneof.
+  public var containingType: Descriptor { return _containingType! }
 
   /// The `Google_Protobuf_OneofOptions` set on this oneof.
   public let options: Google_Protobuf_OneofOptions

    return containingType.fields.filter { $0.oneofIndex == myIndex }
  }()

  fileprivate init(proto: Google_Protobuf_OneofDescriptorProto,
                   index: Int,
                   registry: Registry) {

    if let extendee = extendee {
      assert(isExtension)
      extensionScope = containingType
      _containingType = registry.descriptor(named: extendee)!
    } else {
      _containingType = containingType
    }
    extendee = nil

