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);