// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This file contains a message which references a message that implements the
// proto.Message interface but does not have the structure of a normal generated
// message.

syntax = "proto2";

package goproto.proto.irregular;

import "irregular/irregular.proto";

option go_package = "google.golang.org/protobuf/internal/testprotos/irregular";

message Message {
  optional IrregularMessage optional_message = 1;
  repeated IrregularMessage repeated_message = 2;
  required IrregularMessage required_message = 3;
  map<string,IrregularMessage> map_message = 4;
  oneof union {
    IrregularMessage oneof_message = 5;
    AberrantMessage oneof_aberrant_message = 6;
  }

  optional AberrantMessage optional_aberrant_message = 7;
  repeated AberrantMessage repeated_aberrant_message = 8;
  required AberrantMessage required_aberrant_message = 9;
  map<string,AberrantMessage> map_aberrant_message = 10;
}
