// Protocol Buffers - Google's data interchange format
// Copyright 2008 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

// Author: robinson@google.com (Will Robinson)

syntax = "proto2";

package google.protobuf.internal;

message TopLevelMessage {
  optional ExtendedMessage submessage = 1 [lazy = true];
  optional NestedMessage nested_message = 2 [lazy = true];
}

message NestedMessage {
  optional ExtendedMessage submessage = 1 [lazy = true];
}

message ExtendedMessage {
  optional int32 optional_int32 = 1001;
  repeated string repeated_string = 1002;
  extensions 1 to 999;
}

message ForeignMessage {
  optional int32 foreign_message_int = 1;
}

extend ExtendedMessage {
  optional int32 optional_int_extension = 1;
  optional ForeignMessage optional_message_extension = 2;

  repeated int32 repeated_int_extension = 3;
  repeated ForeignMessage repeated_message_extension = 4;
}
