// Protocol Buffers - Google's data interchange format
// Copyright 2016 Google Inc.  All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

syntax = "proto2";

package objc.protobuf.tests.chain;

import "objectivec/Tests/unittest.proto";

import "objectivec/Tests/unittest_extension_chain_b.proto";
import "objectivec/Tests/unittest_extension_chain_c.proto";

option objc_class_prefix = "Chain";

// The root should end up needing to merge B (C will be merged into B, so it
// doesn't need to be directly merged).

message DMessage {
  optional BMessage b = 1;
  optional CMessage c = 2;
}

extend objc.protobuf.tests.TestAllExtensions {
  optional int32 chain_d_extension = 10004;
}
