// Copyright 2018 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.

syntax = "proto2";

package goproto.protoc.proto2;

option go_package = "github.com/golang/protobuf/v2/cmd/protoc-gen-go/testdata/proto2";

// EnumType1 comment.
enum EnumType1 {
  // EnumType1_ONE comment.
  ONE = 1;
  // EnumType1_TWO comment.
  TWO = 2;
}

enum EnumType2 {
  option allow_alias = true;
  duplicate1 = 1;
  duplicate2 = 1;
}

message EnumContainerMessage1 {
  // NestedEnumType1A comment.
  enum NestedEnumType1A {
    // NestedEnumType1A_VALUE comment.
    NESTED_1A_VALUE = 0;
  }

  enum NestedEnumType1B {
    NESTED_1B_VALUE = 0;
  }

  message EnumContainerMessage2 {
    // NestedEnumType2A comment.
    enum NestedEnumType2A {
      // NestedEnumType2A_VALUE comment.
      NESTED_2A_VALUE = 0;
    }

    enum NestedEnumType2B {
      NESTED_2B_VALUE = 0;
    }
  }
}
