Create ProtobufEnum reserved names (#124)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b605451..5e8dc0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10.2
+
+* Added ProtobufEnum reserved names.
+
 ## 0.10.1
 
 * Added Support for [any](https://developers.google.com/protocol-buffers/docs/proto3#any) messages.
diff --git a/lib/meta.dart b/lib/meta.dart
index 8ee607b..0e062ed 100644
--- a/lib/meta.dart
+++ b/lib/meta.dart
@@ -2,12 +2,12 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-/// Provides metadata about GeneratedMessage to dart-protoc-plugin.
-/// (Experimental API; subject to change.)
+/// Provides metadata about GeneratedMessage and ProtobufEnum to
+/// dart-protoc-plugin. (Experimental API; subject to change.)
 library protobuf.meta;
 
 // List of names which cannot be used in a subclass of GeneratedMessage.
-const List<String> GeneratedMessage_reservedNames = const [
+const GeneratedMessage_reservedNames = const <String>[
   'hashCode',
   'noSuchMethod',
   'copyWith',
@@ -68,3 +68,15 @@
   'toBuilder',
   'toDebugString',
 ];
+
+// List of names which cannot be used in a subclass of ProtobufEnum.
+const ProtobufEnum_reservedNames = const <String>[
+  '==',
+  'Object',
+  'ProtobufEnum',
+  'hashCode',
+  'initByValue',
+  'noSuchMethod',
+  'runtimeType',
+  'toString'
+];
diff --git a/pubspec.yaml b/pubspec.yaml
index fb08c89..aa6088a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: protobuf
-version: 0.10.1
+version: 0.10.2
 author: Dart Team <misc@dartlang.org>
 description: Runtime library for protocol buffers support.
 homepage: https://github.com/dart-lang/protobuf
diff --git a/test/reserved_names_test.dart b/test/reserved_names_test.dart
index 565b392..0b7cc8a 100755
--- a/test/reserved_names_test.dart
+++ b/test/reserved_names_test.dart
@@ -8,14 +8,15 @@
 
 import 'package:test/test.dart';
 
-import 'package:protobuf/meta.dart' show GeneratedMessage_reservedNames;
+import 'package:protobuf/meta.dart'
+    show GeneratedMessage_reservedNames, ProtobufEnum_reservedNames;
 import 'package:protobuf/mixins_meta.dart' show findMixin;
 
 import 'mirror_util.dart' show findMemberNames;
 
 // Import the libraries we will access via the mirrors.
 // ignore_for_file: unused_import
-import 'package:protobuf/protobuf.dart' show GeneratedMessage;
+import 'package:protobuf/protobuf.dart' show GeneratedMessage, ProtobufEnum;
 import 'package:protobuf/src/protobuf/mixins/event_mixin.dart'
     show PbEventMixin;
 import 'package:protobuf/src/protobuf/mixins/map_mixin.dart' show PbMapMixin;
@@ -32,6 +33,14 @@
     expect(actual.toList()..sort(), equals(expected.toList()..sort()));
   });
 
+  test('ProtobufEnum reserved names are up to date', () {
+    var actual = new Set<String>.from(ProtobufEnum_reservedNames);
+    var expected =
+        findMemberNames('package:protobuf/protobuf.dart', #ProtobufEnum);
+
+    expect(actual.toList()..sort(), equals(expected.toList()..sort()));
+  });
+
   test("ReadonlyMessageMixin doesn't add any reserved names", () {
     var mixinNames = findMemberNames(
         'package:protobuf/protobuf.dart', #ReadonlyMessageMixin);