// 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";
import "objectivec/Tests/unittest_extension_chain_d.proto";

option objc_class_prefix = "Chain";

// The Root for this file should end up adding the local extension and merging
// in the extensions from D's Root (unittest and C will come via D's).

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

extend objc.protobuf.tests.TestAllExtensions {
  optional int32 chain_a_extension = 10001;
}
