Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Unified Diff: lib/message_generator.dart

Issue 2103743002: Rename mixin protos and add a check for undefined mixin name (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/message_generator.dart
diff --git a/lib/message_generator.dart b/lib/message_generator.dart
index 40c60280e40684364bbf7f5dab5b6cad43ddb939..4299f11a935afb55296634466eee0218d4d41b4c 100644
--- a/lib/message_generator.dart
+++ b/lib/message_generator.dart
@@ -9,19 +9,19 @@ class MessageGenerator extends ProtobufContainer {
///
/// First searches [declaredMixins], then internal mixins declared by
/// [findMixin].
- static PbMixin _getMixin(DescriptorProto desc,
+ static PbMixin _getMixin(DescriptorProto desc, FileDescriptorProto file,
Map<String, PbMixin> declaredMixins, PbMixin defaultMixin) {
- PbMixin getMixinByName(String name) {
- if (name.isEmpty) return null; // don't use a mixin (override any default)
- return declaredMixins[name] ?? findMixin(name);
- }
-
if (!desc.hasOptions() || !desc.options.hasExtension(Dart_options.mixin)) {
return defaultMixin;
}
String name = desc.options.getExtension(Dart_options.mixin);
- return getMixinByName(name);
+ if (name.isEmpty) return null; // don't use any mixins (override default)
+ var mixin = declaredMixins[name] ?? findMixin(name);
+ if (mixin == null) {
+ throw throw '${desc.name} in ${file.name}: mixin "$name" not found';
frederikmutzel 2016/06/28 08:15:13 double throw
skybrian 2016/06/28 08:40:34 Fixed.
+ }
+ return mixin;
}
final String classname;
@@ -49,7 +49,8 @@ class MessageGenerator extends ProtobufContainer {
: (parent.fqname == '.'
? '.${descriptor.name}'
: '${parent.fqname}.${descriptor.name}'),
- mixin = _getMixin(descriptor, declaredMixins, defaultMixin) {
+ mixin = _getMixin(descriptor, parent.fileGen.descriptor, declaredMixins,
+ defaultMixin) {
for (EnumDescriptorProto e in _descriptor.enumType) {
_enumGenerators.add(new EnumGenerator(e, this));
}
« lib/file_generator.dart ('K') | « lib/linker.dart ('k') | lib/src/dart_options.pb.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698