Import protobuf with prefix (#119)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e639385..7f2540b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.8.2
+
+* Generated code now imports 'package:protobuf/protobuf.dart' prefixed.
+  This avoids name clashes between user defined message names and the protobuf library.
+
 ## 0.8.1
 
 * Adjust dependencies to actually be compatible with Dart 2.0 stable.
diff --git a/lib/client_generator.dart b/lib/client_generator.dart
index 3f16563..dd96266 100644
--- a/lib/client_generator.dart
+++ b/lib/client_generator.dart
@@ -11,7 +11,7 @@
   ClientApiGenerator(this.service);
 
   // Subclasses can override this.
-  String get _clientType => 'RpcClient';
+  String get _clientType => '$_protobufImportPrefix.RpcClient';
 
   void generate(IndentingWriter out) {
     var className = service._descriptor.name;
@@ -34,7 +34,7 @@
     var outputType = service._getDartClassName(m.outputType);
     out.addBlock(
         'Future<$outputType> $methodName('
-        'ClientContext ctx, $inputType request) {',
+        '$_protobufImportPrefix.ClientContext ctx, $inputType request) {',
         '}', () {
       out.println('var emptyResponse = new $outputType();');
       out.println(
diff --git a/lib/enum_generator.dart b/lib/enum_generator.dart
index 2e0df8e..3dbbd21 100644
--- a/lib/enum_generator.dart
+++ b/lib/enum_generator.dart
@@ -60,7 +60,9 @@
   }
 
   void generate(IndentingWriter out) {
-    out.addBlock('class ${classname} extends ProtobufEnum {', '}\n', () {
+    out.addBlock(
+        'class ${classname} extends $_protobufImportPrefix.ProtobufEnum {',
+        '}\n', () {
       // -----------------------------------------------------------------
       // Define enum types.
       for (EnumValueDescriptorProto val in _canonicalValues) {
@@ -85,12 +87,12 @@
       out.println();
 
       out.println('static final Map<int, dynamic> _byValue ='
-          ' ProtobufEnum.initByValue(values);');
+          ' $_protobufImportPrefix.ProtobufEnum.initByValue(values);');
       out.println('static ${classname} valueOf(int value) =>'
           ' _byValue[value] as ${classname};');
       out.addBlock('static void $checkItem($classname v) {', '}', () {
         out.println('if (v is! $classname)'
-            " checkItemFailed(v, '$classname');");
+            " $_protobufImportPrefix.checkItemFailed(v, '$classname');");
       });
       out.println();
 
diff --git a/lib/extension_generator.dart b/lib/extension_generator.dart
index 3ae54ae..db1692d 100644
--- a/lib/extension_generator.dart
+++ b/lib/extension_generator.dart
@@ -79,8 +79,8 @@
     var dartType = type.getDartType(package);
 
     if (_field.isRepeated) {
-      out.print('static final Extension $name = '
-          'new Extension<$dartType>.repeated(\'$_extendedClassName\','
+      out.print('static final $_protobufImportPrefix.Extension $name = '
+          'new $_protobufImportPrefix.Extension<$dartType>.repeated(\'$_extendedClassName\','
           ' \'$name\', ${_field.number}, ${_field.typeConstant}');
       if (type.isMessage || type.isGroup) {
         out.println(', $dartType.$checkItem, $dartType.create);');
@@ -88,13 +88,14 @@
         out.println(', $dartType.$checkItem, null, '
             '$dartType.valueOf, $dartType.values);');
       } else {
-        out.println(", getCheckFunction(${_field.typeConstant}));");
+        out.println(
+            ", $_protobufImportPrefix.getCheckFunction(${_field.typeConstant}));");
       }
       return;
     }
 
-    out.print('static final Extension $name = '
-        'new Extension<$dartType>(\'$_extendedClassName\', \'$name\', '
+    out.print('static final $_protobufImportPrefix.Extension $name = '
+        'new $_protobufImportPrefix.Extension<$dartType>(\'$_extendedClassName\', \'$name\', '
         '${_field.number}, ${_field.typeConstant}');
 
     String initializer = _field.generateDefaultFunction(package);
diff --git a/lib/file_generator.dart b/lib/file_generator.dart
index 9943589..717a9de 100644
--- a/lib/file_generator.dart
+++ b/lib/file_generator.dart
@@ -6,6 +6,7 @@
 
 final _dartIdentifier = new RegExp(r'^\w+$');
 final _formatter = new DartFormatter();
+final String _protobufImportPrefix = r'$pb';
 
 /// Generates the Dart output files for one .proto input file.
 ///
@@ -214,7 +215,8 @@
         for (ExtensionGenerator x in extensionGenerators) {
           x.generate(out);
         }
-        out.println('static void registerAllExtensions(ExtensionRegistry '
+        out.println(
+            'static void registerAllExtensions($_protobufImportPrefix.ExtensionRegistry '
             'registry) {');
         for (ExtensionGenerator x in extensionGenerators) {
           out.println('  registry.add(${x.name});');
@@ -250,7 +252,8 @@
     }
 
     if (_needsProtobufImport) {
-      out.println("import 'package:protobuf/protobuf.dart';");
+      out.println(
+          "import 'package:protobuf/protobuf.dart' as $_protobufImportPrefix;");
       out.println();
     }
 
@@ -357,7 +360,8 @@
       // with enums that have the same name.
       out.println("// ignore_for_file: UNDEFINED_SHOWN_NAME,UNUSED_SHOWN_NAME\n"
           "import 'dart:core' show int, dynamic, String, List, Map;");
-      out.println("import 'package:protobuf/protobuf.dart';");
+      out.println(
+          "import 'package:protobuf/protobuf.dart' as $_protobufImportPrefix;");
       out.println();
     }
 
diff --git a/lib/message_generator.dart b/lib/message_generator.dart
index 022d03b..0619b80 100644
--- a/lib/message_generator.dart
+++ b/lib/message_generator.dart
@@ -206,9 +206,10 @@
     }
 
     out.addBlock(
-        'class ${classname} extends GeneratedMessage${mixinClause} {', '}', () {
+        'class ${classname} extends $_protobufImportPrefix.GeneratedMessage${mixinClause} {',
+        '}', () {
       out.addBlock(
-          'static final BuilderInfo _i = new BuilderInfo(\'${classname}\')',
+          'static final $_protobufImportPrefix.BuilderInfo _i = new $_protobufImportPrefix.BuilderInfo(\'${classname}\')',
           ';', () {
         for (ProtobufField field in _fieldList) {
           var dartFieldName = field.memberNames.fieldName;
@@ -231,21 +232,22 @@
 
       out.println('${classname}() : super();');
       out.println('${classname}.fromBuffer(List<int> i,'
-          ' [ExtensionRegistry r = ExtensionRegistry.EMPTY])'
+          ' [$_protobufImportPrefix.ExtensionRegistry r = $_protobufImportPrefix.ExtensionRegistry.EMPTY])'
           ' : super.fromBuffer(i, r);');
       out.println('${classname}.fromJson(String i,'
-          ' [ExtensionRegistry r = ExtensionRegistry.EMPTY])'
+          ' [$_protobufImportPrefix.ExtensionRegistry r = $_protobufImportPrefix.ExtensionRegistry.EMPTY])'
           ' : super.fromJson(i, r);');
       out.println('${classname} clone() =>'
           ' new ${classname}()..mergeFromMessage(this);');
 
-      out.println('BuilderInfo get info_ => _i;');
+      out.println('$_protobufImportPrefix.BuilderInfo get info_ => _i;');
 
       // Factory functions which can be used as default value closures.
       out.println('static ${classname} create() =>'
           ' new ${classname}();');
-      out.println('static PbList<${classname}> createRepeated() =>'
-          ' new PbList<${classname}>();');
+      out.println(
+          'static $_protobufImportPrefix.PbList<${classname}> createRepeated() =>'
+          ' new $_protobufImportPrefix.PbList<${classname}>();');
       out.addBlock('static ${classname} getDefault() {', '}', () {
         out.println(
             'if (_defaultInstance == null) _defaultInstance = new _Readonly${classname}();');
@@ -254,14 +256,14 @@
       out.println('static ${classname} _defaultInstance;');
       out.addBlock('static void $checkItem($classname v) {', '}', () {
         out.println('if (v is! $classname)'
-            " checkItemFailed(v, '$classname');");
+            " $_protobufImportPrefix.checkItemFailed(v, '$classname');");
       });
       generateFieldsAccessorsMutators(out);
     });
     out.println();
 
     out.println(
-        'class _Readonly${classname} extends ${classname} with ReadonlyMessageMixin {}');
+        'class _Readonly${classname} extends ${classname} with $_protobufImportPrefix.ReadonlyMessageMixin {}');
     out.println();
   }
 
diff --git a/lib/protobuf_field.dart b/lib/protobuf_field.dart
index 735fad9..e69b078 100644
--- a/lib/protobuf_field.dart
+++ b/lib/protobuf_field.dart
@@ -94,7 +94,9 @@
     } else if (isRepeated) {
       prefix = 'P';
     }
-    return "PbFieldType." + prefix + baseType.typeConstantSuffix;
+    return "$_protobufImportPrefix.PbFieldType." +
+        prefix +
+        baseType.typeConstantSuffix;
   }
 
   /// Returns Dart code adding this field to a BuilderInfo object.
@@ -111,7 +113,7 @@
       } else if (baseType.isEnum) {
         return '..pp<$type>($number, $quotedName, $typeConstant,'
             ' $type.$checkItem, null, $type.valueOf, $type.values)';
-      } else if (typeConstant == 'PbFieldType.PS') {
+      } else if (typeConstant == '$_protobufImportPrefix.PbFieldType.PS') {
         return '..pPS($number, $quotedName)';
       } else {
         return '..p<$type>($number, $quotedName, $typeConstant)';
@@ -129,14 +131,14 @@
     if (makeDefault == null) {
       switch (type) {
         case 'String':
-          if (typeConstant == 'PbFieldType.OS') {
+          if (typeConstant == '$_protobufImportPrefix.PbFieldType.OS') {
             return '..aOS($number, $quotedName)';
-          } else if (typeConstant == 'PbFieldType.QS') {
+          } else if (typeConstant == '$_protobufImportPrefix.PbFieldType.QS') {
             return '..aQS($number, $quotedName)';
           }
           break;
         case 'bool':
-          if (typeConstant == 'PbFieldType.OB') {
+          if (typeConstant == '$_protobufImportPrefix.PbFieldType.OB') {
             return '..aOB($number, $quotedName)';
           }
           break;
@@ -148,7 +150,7 @@
 
     if (makeDefault == 'Int64.ZERO' &&
         type == 'Int64' &&
-        typeConstant == 'PbFieldType.O6') {
+        typeConstant == '$_protobufImportPrefix.PbFieldType.O6') {
       return '..aInt64($number, $quotedName)';
     }
 
@@ -187,7 +189,7 @@
   /// Returns null if this field doesn't have an initializer.
   String generateDefaultFunction(String package) {
     if (isRepeated) {
-      return '() => new PbList()';
+      return '() => new $_protobufImportPrefix.PbList()';
     }
 
     bool samePackage = package == baseType.package;
@@ -231,7 +233,7 @@
         var value = '0';
         if (descriptor.hasDefaultValue()) value = descriptor.defaultValue;
         if (value == '0') return 'Int64.ZERO';
-        return "parseLongInt('$value')";
+        return "$_protobufImportPrefix.parseLongInt('$value')";
       case FieldDescriptorProto_Type.TYPE_STRING:
         return _getDefaultAsStringExpr(null);
       case FieldDescriptorProto_Type.TYPE_BYTES:
diff --git a/lib/src/dart_options.pb.dart b/lib/src/dart_options.pb.dart
index 5d78a27..149a166 100644
--- a/lib/src/dart_options.pb.dart
+++ b/lib/src/dart_options.pb.dart
@@ -6,10 +6,10 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class DartMixin extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('DartMixin')
+class DartMixin extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('DartMixin')
     ..aOS(1, 'name')
     ..aOS(2, 'importFrom')
     ..aOS(3, 'parent')
@@ -17,14 +17,15 @@
 
   DartMixin() : super();
   DartMixin.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
-  DartMixin.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+  DartMixin.fromJson(String i,
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   DartMixin clone() => new DartMixin()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static DartMixin create() => new DartMixin();
-  static PbList<DartMixin> createRepeated() => new PbList<DartMixin>();
+  static $pb.PbList<DartMixin> createRepeated() => new $pb.PbList<DartMixin>();
   static DartMixin getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyDartMixin();
     return _defaultInstance;
@@ -32,7 +33,7 @@
 
   static DartMixin _defaultInstance;
   static void $checkItem(DartMixin v) {
-    if (v is! DartMixin) checkItemFailed(v, 'DartMixin');
+    if (v is! DartMixin) $pb.checkItemFailed(v, 'DartMixin');
   }
 
   String get name => $_getS(0, '');
@@ -60,24 +61,25 @@
   void clearParent() => clearField(3);
 }
 
-class _ReadonlyDartMixin extends DartMixin with ReadonlyMessageMixin {}
+class _ReadonlyDartMixin extends DartMixin with $pb.ReadonlyMessageMixin {}
 
-class Imports extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('Imports')
+class Imports extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('Imports')
     ..pp<DartMixin>(
-        1, 'mixins', PbFieldType.PM, DartMixin.$checkItem, DartMixin.create)
+        1, 'mixins', $pb.PbFieldType.PM, DartMixin.$checkItem, DartMixin.create)
     ..hasRequiredFields = false;
 
   Imports() : super();
   Imports.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
-  Imports.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+  Imports.fromJson(String i,
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   Imports clone() => new Imports()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static Imports create() => new Imports();
-  static PbList<Imports> createRepeated() => new PbList<Imports>();
+  static $pb.PbList<Imports> createRepeated() => new $pb.PbList<Imports>();
   static Imports getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyImports();
     return _defaultInstance;
@@ -85,32 +87,37 @@
 
   static Imports _defaultInstance;
   static void $checkItem(Imports v) {
-    if (v is! Imports) checkItemFailed(v, 'Imports');
+    if (v is! Imports) $pb.checkItemFailed(v, 'Imports');
   }
 
   List<DartMixin> get mixins => $_getList(0);
 }
 
-class _ReadonlyImports extends Imports with ReadonlyMessageMixin {}
+class _ReadonlyImports extends Imports with $pb.ReadonlyMessageMixin {}
 
 class Dart_options {
-  static final Extension imports = new Extension<Imports>('FileOptions',
-      'imports', 28125061, PbFieldType.OM, Imports.getDefault, Imports.create);
-  static final Extension defaultMixin = new Extension<String>(
-      'FileOptions', 'defaultMixin', 96128839, PbFieldType.OS);
-  static final Extension mixin = new Extension<String>(
-      'MessageOptions', 'mixin', 96128839, PbFieldType.OS);
-  static final Extension overrideGetter = new Extension<bool>(
-      'FieldOptions', 'overrideGetter', 28205290, PbFieldType.OB);
-  static final Extension overrideSetter = new Extension<bool>(
-      'FieldOptions', 'overrideSetter', 28937366, PbFieldType.OB);
-  static final Extension overrideHasMethod = new Extension<bool>(
-      'FieldOptions', 'overrideHasMethod', 28937461, PbFieldType.OB);
-  static final Extension overrideClearMethod = new Extension<bool>(
-      'FieldOptions', 'overrideClearMethod', 28907907, PbFieldType.OB);
-  static final Extension dartName = new Extension<String>(
-      'FieldOptions', 'dartName', 28700919, PbFieldType.OS);
-  static void registerAllExtensions(ExtensionRegistry registry) {
+  static final $pb.Extension imports = new $pb.Extension<Imports>(
+      'FileOptions',
+      'imports',
+      28125061,
+      $pb.PbFieldType.OM,
+      Imports.getDefault,
+      Imports.create);
+  static final $pb.Extension defaultMixin = new $pb.Extension<String>(
+      'FileOptions', 'defaultMixin', 96128839, $pb.PbFieldType.OS);
+  static final $pb.Extension mixin = new $pb.Extension<String>(
+      'MessageOptions', 'mixin', 96128839, $pb.PbFieldType.OS);
+  static final $pb.Extension overrideGetter = new $pb.Extension<bool>(
+      'FieldOptions', 'overrideGetter', 28205290, $pb.PbFieldType.OB);
+  static final $pb.Extension overrideSetter = new $pb.Extension<bool>(
+      'FieldOptions', 'overrideSetter', 28937366, $pb.PbFieldType.OB);
+  static final $pb.Extension overrideHasMethod = new $pb.Extension<bool>(
+      'FieldOptions', 'overrideHasMethod', 28937461, $pb.PbFieldType.OB);
+  static final $pb.Extension overrideClearMethod = new $pb.Extension<bool>(
+      'FieldOptions', 'overrideClearMethod', 28907907, $pb.PbFieldType.OB);
+  static final $pb.Extension dartName = new $pb.Extension<String>(
+      'FieldOptions', 'dartName', 28700919, $pb.PbFieldType.OS);
+  static void registerAllExtensions($pb.ExtensionRegistry registry) {
     registry.add(imports);
     registry.add(defaultMixin);
     registry.add(mixin);
diff --git a/lib/src/descriptor.pb.dart b/lib/src/descriptor.pb.dart
index e34c94d..fa76b84 100644
--- a/lib/src/descriptor.pb.dart
+++ b/lib/src/descriptor.pb.dart
@@ -7,29 +7,29 @@
 import 'dart:core' show int, bool, double, String, List, override;
 
 import 'package:fixnum/fixnum.dart';
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
 import 'descriptor.pbenum.dart';
 
 export 'descriptor.pbenum.dart';
 
-class FileDescriptorSet extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('FileDescriptorSet')
-    ..pp<FileDescriptorProto>(1, 'file', PbFieldType.PM,
+class FileDescriptorSet extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('FileDescriptorSet')
+    ..pp<FileDescriptorProto>(1, 'file', $pb.PbFieldType.PM,
         FileDescriptorProto.$checkItem, FileDescriptorProto.create);
 
   FileDescriptorSet() : super();
   FileDescriptorSet.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   FileDescriptorSet.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   FileDescriptorSet clone() => new FileDescriptorSet()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static FileDescriptorSet create() => new FileDescriptorSet();
-  static PbList<FileDescriptorSet> createRepeated() =>
-      new PbList<FileDescriptorSet>();
+  static $pb.PbList<FileDescriptorSet> createRepeated() =>
+      new $pb.PbList<FileDescriptorSet>();
   static FileDescriptorSet getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyFileDescriptorSet();
@@ -38,49 +38,49 @@
 
   static FileDescriptorSet _defaultInstance;
   static void $checkItem(FileDescriptorSet v) {
-    if (v is! FileDescriptorSet) checkItemFailed(v, 'FileDescriptorSet');
+    if (v is! FileDescriptorSet) $pb.checkItemFailed(v, 'FileDescriptorSet');
   }
 
   List<FileDescriptorProto> get file => $_getList(0);
 }
 
 class _ReadonlyFileDescriptorSet extends FileDescriptorSet
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class FileDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('FileDescriptorProto')
+class FileDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('FileDescriptorProto')
     ..aOS(1, 'name')
     ..aOS(2, 'package')
     ..pPS(3, 'dependency')
-    ..pp<DescriptorProto>(4, 'messageType', PbFieldType.PM,
+    ..pp<DescriptorProto>(4, 'messageType', $pb.PbFieldType.PM,
         DescriptorProto.$checkItem, DescriptorProto.create)
-    ..pp<EnumDescriptorProto>(5, 'enumType', PbFieldType.PM,
+    ..pp<EnumDescriptorProto>(5, 'enumType', $pb.PbFieldType.PM,
         EnumDescriptorProto.$checkItem, EnumDescriptorProto.create)
-    ..pp<ServiceDescriptorProto>(6, 'service', PbFieldType.PM,
+    ..pp<ServiceDescriptorProto>(6, 'service', $pb.PbFieldType.PM,
         ServiceDescriptorProto.$checkItem, ServiceDescriptorProto.create)
-    ..pp<FieldDescriptorProto>(7, 'extension', PbFieldType.PM,
+    ..pp<FieldDescriptorProto>(7, 'extension', $pb.PbFieldType.PM,
         FieldDescriptorProto.$checkItem, FieldDescriptorProto.create)
-    ..a<FileOptions>(8, 'options', PbFieldType.OM, FileOptions.getDefault,
+    ..a<FileOptions>(8, 'options', $pb.PbFieldType.OM, FileOptions.getDefault,
         FileOptions.create)
-    ..a<SourceCodeInfo>(9, 'sourceCodeInfo', PbFieldType.OM,
+    ..a<SourceCodeInfo>(9, 'sourceCodeInfo', $pb.PbFieldType.OM,
         SourceCodeInfo.getDefault, SourceCodeInfo.create)
-    ..p<int>(10, 'publicDependency', PbFieldType.P3)
-    ..p<int>(11, 'weakDependency', PbFieldType.P3)
+    ..p<int>(10, 'publicDependency', $pb.PbFieldType.P3)
+    ..p<int>(11, 'weakDependency', $pb.PbFieldType.P3)
     ..aOS(12, 'syntax');
 
   FileDescriptorProto() : super();
   FileDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   FileDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   FileDescriptorProto clone() =>
       new FileDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static FileDescriptorProto create() => new FileDescriptorProto();
-  static PbList<FileDescriptorProto> createRepeated() =>
-      new PbList<FileDescriptorProto>();
+  static $pb.PbList<FileDescriptorProto> createRepeated() =>
+      new $pb.PbList<FileDescriptorProto>();
   static FileDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyFileDescriptorProto();
@@ -89,7 +89,8 @@
 
   static FileDescriptorProto _defaultInstance;
   static void $checkItem(FileDescriptorProto v) {
-    if (v is! FileDescriptorProto) checkItemFailed(v, 'FileDescriptorProto');
+    if (v is! FileDescriptorProto)
+      $pb.checkItemFailed(v, 'FileDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -148,29 +149,29 @@
 }
 
 class _ReadonlyFileDescriptorProto extends FileDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class DescriptorProto_ExtensionRange extends GeneratedMessage {
-  static final BuilderInfo _i =
-      new BuilderInfo('DescriptorProto_ExtensionRange')
-        ..a<int>(1, 'start', PbFieldType.O3)
-        ..a<int>(2, 'end', PbFieldType.O3)
+class DescriptorProto_ExtensionRange extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('DescriptorProto_ExtensionRange')
+        ..a<int>(1, 'start', $pb.PbFieldType.O3)
+        ..a<int>(2, 'end', $pb.PbFieldType.O3)
         ..hasRequiredFields = false;
 
   DescriptorProto_ExtensionRange() : super();
   DescriptorProto_ExtensionRange.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   DescriptorProto_ExtensionRange.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   DescriptorProto_ExtensionRange clone() =>
       new DescriptorProto_ExtensionRange()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static DescriptorProto_ExtensionRange create() =>
       new DescriptorProto_ExtensionRange();
-  static PbList<DescriptorProto_ExtensionRange> createRepeated() =>
-      new PbList<DescriptorProto_ExtensionRange>();
+  static $pb.PbList<DescriptorProto_ExtensionRange> createRepeated() =>
+      new $pb.PbList<DescriptorProto_ExtensionRange>();
   static DescriptorProto_ExtensionRange getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyDescriptorProto_ExtensionRange();
@@ -180,7 +181,7 @@
   static DescriptorProto_ExtensionRange _defaultInstance;
   static void $checkItem(DescriptorProto_ExtensionRange v) {
     if (v is! DescriptorProto_ExtensionRange)
-      checkItemFailed(v, 'DescriptorProto_ExtensionRange');
+      $pb.checkItemFailed(v, 'DescriptorProto_ExtensionRange');
   }
 
   int get start => $_get(0, 0);
@@ -201,28 +202,29 @@
 }
 
 class _ReadonlyDescriptorProto_ExtensionRange
-    extends DescriptorProto_ExtensionRange with ReadonlyMessageMixin {}
+    extends DescriptorProto_ExtensionRange with $pb.ReadonlyMessageMixin {}
 
-class DescriptorProto_ReservedRange extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('DescriptorProto_ReservedRange')
-    ..a<int>(1, 'start', PbFieldType.O3)
-    ..a<int>(2, 'end', PbFieldType.O3)
-    ..hasRequiredFields = false;
+class DescriptorProto_ReservedRange extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('DescriptorProto_ReservedRange')
+        ..a<int>(1, 'start', $pb.PbFieldType.O3)
+        ..a<int>(2, 'end', $pb.PbFieldType.O3)
+        ..hasRequiredFields = false;
 
   DescriptorProto_ReservedRange() : super();
   DescriptorProto_ReservedRange.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   DescriptorProto_ReservedRange.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   DescriptorProto_ReservedRange clone() =>
       new DescriptorProto_ReservedRange()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static DescriptorProto_ReservedRange create() =>
       new DescriptorProto_ReservedRange();
-  static PbList<DescriptorProto_ReservedRange> createRepeated() =>
-      new PbList<DescriptorProto_ReservedRange>();
+  static $pb.PbList<DescriptorProto_ReservedRange> createRepeated() =>
+      new $pb.PbList<DescriptorProto_ReservedRange>();
   static DescriptorProto_ReservedRange getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyDescriptorProto_ReservedRange();
@@ -232,7 +234,7 @@
   static DescriptorProto_ReservedRange _defaultInstance;
   static void $checkItem(DescriptorProto_ReservedRange v) {
     if (v is! DescriptorProto_ReservedRange)
-      checkItemFailed(v, 'DescriptorProto_ReservedRange');
+      $pb.checkItemFailed(v, 'DescriptorProto_ReservedRange');
   }
 
   int get start => $_get(0, 0);
@@ -253,49 +255,49 @@
 }
 
 class _ReadonlyDescriptorProto_ReservedRange
-    extends DescriptorProto_ReservedRange with ReadonlyMessageMixin {}
+    extends DescriptorProto_ReservedRange with $pb.ReadonlyMessageMixin {}
 
-class DescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('DescriptorProto')
+class DescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('DescriptorProto')
     ..aOS(1, 'name')
-    ..pp<FieldDescriptorProto>(2, 'field', PbFieldType.PM,
+    ..pp<FieldDescriptorProto>(2, 'field', $pb.PbFieldType.PM,
         FieldDescriptorProto.$checkItem, FieldDescriptorProto.create)
-    ..pp<DescriptorProto>(3, 'nestedType', PbFieldType.PM,
+    ..pp<DescriptorProto>(3, 'nestedType', $pb.PbFieldType.PM,
         DescriptorProto.$checkItem, DescriptorProto.create)
-    ..pp<EnumDescriptorProto>(4, 'enumType', PbFieldType.PM,
+    ..pp<EnumDescriptorProto>(4, 'enumType', $pb.PbFieldType.PM,
         EnumDescriptorProto.$checkItem, EnumDescriptorProto.create)
     ..pp<DescriptorProto_ExtensionRange>(
         5,
         'extensionRange',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         DescriptorProto_ExtensionRange.$checkItem,
         DescriptorProto_ExtensionRange.create)
-    ..pp<FieldDescriptorProto>(6, 'extension', PbFieldType.PM,
+    ..pp<FieldDescriptorProto>(6, 'extension', $pb.PbFieldType.PM,
         FieldDescriptorProto.$checkItem, FieldDescriptorProto.create)
-    ..a<MessageOptions>(7, 'options', PbFieldType.OM, MessageOptions.getDefault,
-        MessageOptions.create)
-    ..pp<OneofDescriptorProto>(8, 'oneofDecl', PbFieldType.PM,
+    ..a<MessageOptions>(7, 'options', $pb.PbFieldType.OM,
+        MessageOptions.getDefault, MessageOptions.create)
+    ..pp<OneofDescriptorProto>(8, 'oneofDecl', $pb.PbFieldType.PM,
         OneofDescriptorProto.$checkItem, OneofDescriptorProto.create)
     ..pp<DescriptorProto_ReservedRange>(
         9,
         'reservedRange',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         DescriptorProto_ReservedRange.$checkItem,
         DescriptorProto_ReservedRange.create)
     ..pPS(10, 'reservedName');
 
   DescriptorProto() : super();
   DescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   DescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   DescriptorProto clone() => new DescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static DescriptorProto create() => new DescriptorProto();
-  static PbList<DescriptorProto> createRepeated() =>
-      new PbList<DescriptorProto>();
+  static $pb.PbList<DescriptorProto> createRepeated() =>
+      new $pb.PbList<DescriptorProto>();
   static DescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyDescriptorProto();
@@ -304,7 +306,7 @@
 
   static DescriptorProto _defaultInstance;
   static void $checkItem(DescriptorProto v) {
-    if (v is! DescriptorProto) checkItemFailed(v, 'DescriptorProto');
+    if (v is! DescriptorProto) $pb.checkItemFailed(v, 'DescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -341,47 +343,47 @@
 }
 
 class _ReadonlyDescriptorProto extends DescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class FieldDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('FieldDescriptorProto')
+class FieldDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('FieldDescriptorProto')
     ..aOS(1, 'name')
     ..aOS(2, 'extendee')
-    ..a<int>(3, 'number', PbFieldType.O3)
+    ..a<int>(3, 'number', $pb.PbFieldType.O3)
     ..e<FieldDescriptorProto_Label>(
         4,
         'label',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         FieldDescriptorProto_Label.LABEL_OPTIONAL,
         FieldDescriptorProto_Label.valueOf,
         FieldDescriptorProto_Label.values)
     ..e<FieldDescriptorProto_Type>(
         5,
         'type',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         FieldDescriptorProto_Type.TYPE_DOUBLE,
         FieldDescriptorProto_Type.valueOf,
         FieldDescriptorProto_Type.values)
     ..aOS(6, 'typeName')
     ..aOS(7, 'defaultValue')
-    ..a<FieldOptions>(8, 'options', PbFieldType.OM, FieldOptions.getDefault,
+    ..a<FieldOptions>(8, 'options', $pb.PbFieldType.OM, FieldOptions.getDefault,
         FieldOptions.create)
-    ..a<int>(9, 'oneofIndex', PbFieldType.O3)
+    ..a<int>(9, 'oneofIndex', $pb.PbFieldType.O3)
     ..aOS(10, 'jsonName');
 
   FieldDescriptorProto() : super();
   FieldDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   FieldDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   FieldDescriptorProto clone() =>
       new FieldDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static FieldDescriptorProto create() => new FieldDescriptorProto();
-  static PbList<FieldDescriptorProto> createRepeated() =>
-      new PbList<FieldDescriptorProto>();
+  static $pb.PbList<FieldDescriptorProto> createRepeated() =>
+      new $pb.PbList<FieldDescriptorProto>();
   static FieldDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyFieldDescriptorProto();
@@ -390,7 +392,8 @@
 
   static FieldDescriptorProto _defaultInstance;
   static void $checkItem(FieldDescriptorProto v) {
-    if (v is! FieldDescriptorProto) checkItemFailed(v, 'FieldDescriptorProto');
+    if (v is! FieldDescriptorProto)
+      $pb.checkItemFailed(v, 'FieldDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -475,27 +478,27 @@
 }
 
 class _ReadonlyFieldDescriptorProto extends FieldDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class OneofDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('OneofDescriptorProto')
+class OneofDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('OneofDescriptorProto')
     ..aOS(1, 'name')
-    ..a<OneofOptions>(2, 'options', PbFieldType.OM, OneofOptions.getDefault,
+    ..a<OneofOptions>(2, 'options', $pb.PbFieldType.OM, OneofOptions.getDefault,
         OneofOptions.create);
 
   OneofDescriptorProto() : super();
   OneofDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   OneofDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   OneofDescriptorProto clone() =>
       new OneofDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static OneofDescriptorProto create() => new OneofDescriptorProto();
-  static PbList<OneofDescriptorProto> createRepeated() =>
-      new PbList<OneofDescriptorProto>();
+  static $pb.PbList<OneofDescriptorProto> createRepeated() =>
+      new $pb.PbList<OneofDescriptorProto>();
   static OneofDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyOneofDescriptorProto();
@@ -504,7 +507,8 @@
 
   static OneofDescriptorProto _defaultInstance;
   static void $checkItem(OneofDescriptorProto v) {
-    if (v is! OneofDescriptorProto) checkItemFailed(v, 'OneofDescriptorProto');
+    if (v is! OneofDescriptorProto)
+      $pb.checkItemFailed(v, 'OneofDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -525,29 +529,29 @@
 }
 
 class _ReadonlyOneofDescriptorProto extends OneofDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class EnumDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('EnumDescriptorProto')
+class EnumDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('EnumDescriptorProto')
     ..aOS(1, 'name')
-    ..pp<EnumValueDescriptorProto>(2, 'value', PbFieldType.PM,
+    ..pp<EnumValueDescriptorProto>(2, 'value', $pb.PbFieldType.PM,
         EnumValueDescriptorProto.$checkItem, EnumValueDescriptorProto.create)
-    ..a<EnumOptions>(3, 'options', PbFieldType.OM, EnumOptions.getDefault,
+    ..a<EnumOptions>(3, 'options', $pb.PbFieldType.OM, EnumOptions.getDefault,
         EnumOptions.create);
 
   EnumDescriptorProto() : super();
   EnumDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   EnumDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   EnumDescriptorProto clone() =>
       new EnumDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static EnumDescriptorProto create() => new EnumDescriptorProto();
-  static PbList<EnumDescriptorProto> createRepeated() =>
-      new PbList<EnumDescriptorProto>();
+  static $pb.PbList<EnumDescriptorProto> createRepeated() =>
+      new $pb.PbList<EnumDescriptorProto>();
   static EnumDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyEnumDescriptorProto();
@@ -556,7 +560,8 @@
 
   static EnumDescriptorProto _defaultInstance;
   static void $checkItem(EnumDescriptorProto v) {
-    if (v is! EnumDescriptorProto) checkItemFailed(v, 'EnumDescriptorProto');
+    if (v is! EnumDescriptorProto)
+      $pb.checkItemFailed(v, 'EnumDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -579,28 +584,29 @@
 }
 
 class _ReadonlyEnumDescriptorProto extends EnumDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class EnumValueDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('EnumValueDescriptorProto')
-    ..aOS(1, 'name')
-    ..a<int>(2, 'number', PbFieldType.O3)
-    ..a<EnumValueOptions>(3, 'options', PbFieldType.OM,
-        EnumValueOptions.getDefault, EnumValueOptions.create);
+class EnumValueDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('EnumValueDescriptorProto')
+        ..aOS(1, 'name')
+        ..a<int>(2, 'number', $pb.PbFieldType.O3)
+        ..a<EnumValueOptions>(3, 'options', $pb.PbFieldType.OM,
+            EnumValueOptions.getDefault, EnumValueOptions.create);
 
   EnumValueDescriptorProto() : super();
   EnumValueDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   EnumValueDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   EnumValueDescriptorProto clone() =>
       new EnumValueDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static EnumValueDescriptorProto create() => new EnumValueDescriptorProto();
-  static PbList<EnumValueDescriptorProto> createRepeated() =>
-      new PbList<EnumValueDescriptorProto>();
+  static $pb.PbList<EnumValueDescriptorProto> createRepeated() =>
+      new $pb.PbList<EnumValueDescriptorProto>();
   static EnumValueDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyEnumValueDescriptorProto();
@@ -610,7 +616,7 @@
   static EnumValueDescriptorProto _defaultInstance;
   static void $checkItem(EnumValueDescriptorProto v) {
     if (v is! EnumValueDescriptorProto)
-      checkItemFailed(v, 'EnumValueDescriptorProto');
+      $pb.checkItemFailed(v, 'EnumValueDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -639,29 +645,30 @@
 }
 
 class _ReadonlyEnumValueDescriptorProto extends EnumValueDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class ServiceDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('ServiceDescriptorProto')
-    ..aOS(1, 'name')
-    ..pp<MethodDescriptorProto>(2, 'method', PbFieldType.PM,
-        MethodDescriptorProto.$checkItem, MethodDescriptorProto.create)
-    ..a<ServiceOptions>(3, 'options', PbFieldType.OM, ServiceOptions.getDefault,
-        ServiceOptions.create);
+class ServiceDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('ServiceDescriptorProto')
+        ..aOS(1, 'name')
+        ..pp<MethodDescriptorProto>(2, 'method', $pb.PbFieldType.PM,
+            MethodDescriptorProto.$checkItem, MethodDescriptorProto.create)
+        ..a<ServiceOptions>(3, 'options', $pb.PbFieldType.OM,
+            ServiceOptions.getDefault, ServiceOptions.create);
 
   ServiceDescriptorProto() : super();
   ServiceDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   ServiceDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   ServiceDescriptorProto clone() =>
       new ServiceDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static ServiceDescriptorProto create() => new ServiceDescriptorProto();
-  static PbList<ServiceDescriptorProto> createRepeated() =>
-      new PbList<ServiceDescriptorProto>();
+  static $pb.PbList<ServiceDescriptorProto> createRepeated() =>
+      new $pb.PbList<ServiceDescriptorProto>();
   static ServiceDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyServiceDescriptorProto();
@@ -671,7 +678,7 @@
   static ServiceDescriptorProto _defaultInstance;
   static void $checkItem(ServiceDescriptorProto v) {
     if (v is! ServiceDescriptorProto)
-      checkItemFailed(v, 'ServiceDescriptorProto');
+      $pb.checkItemFailed(v, 'ServiceDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -694,31 +701,31 @@
 }
 
 class _ReadonlyServiceDescriptorProto extends ServiceDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class MethodDescriptorProto extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('MethodDescriptorProto')
+class MethodDescriptorProto extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('MethodDescriptorProto')
     ..aOS(1, 'name')
     ..aOS(2, 'inputType')
     ..aOS(3, 'outputType')
-    ..a<MethodOptions>(4, 'options', PbFieldType.OM, MethodOptions.getDefault,
-        MethodOptions.create)
+    ..a<MethodOptions>(4, 'options', $pb.PbFieldType.OM,
+        MethodOptions.getDefault, MethodOptions.create)
     ..aOB(5, 'clientStreaming')
     ..aOB(6, 'serverStreaming');
 
   MethodDescriptorProto() : super();
   MethodDescriptorProto.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   MethodDescriptorProto.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   MethodDescriptorProto clone() =>
       new MethodDescriptorProto()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static MethodDescriptorProto create() => new MethodDescriptorProto();
-  static PbList<MethodDescriptorProto> createRepeated() =>
-      new PbList<MethodDescriptorProto>();
+  static $pb.PbList<MethodDescriptorProto> createRepeated() =>
+      new $pb.PbList<MethodDescriptorProto>();
   static MethodDescriptorProto getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyMethodDescriptorProto();
@@ -728,7 +735,7 @@
   static MethodDescriptorProto _defaultInstance;
   static void $checkItem(MethodDescriptorProto v) {
     if (v is! MethodDescriptorProto)
-      checkItemFailed(v, 'MethodDescriptorProto');
+      $pb.checkItemFailed(v, 'MethodDescriptorProto');
   }
 
   String get name => $_getS(0, '');
@@ -781,16 +788,16 @@
 }
 
 class _ReadonlyMethodDescriptorProto extends MethodDescriptorProto
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class FileOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('FileOptions')
+class FileOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('FileOptions')
     ..aOS(1, 'javaPackage')
     ..aOS(8, 'javaOuterClassname')
     ..e<FileOptions_OptimizeMode>(
         9,
         'optimizeFor',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         FileOptions_OptimizeMode.SPEED,
         FileOptions_OptimizeMode.valueOf,
         FileOptions_OptimizeMode.values)
@@ -808,21 +815,22 @@
     ..aOS(39, 'swiftPrefix')
     ..aOS(40, 'phpClassPrefix')
     ..aOS(41, 'phpNamespace')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   FileOptions() : super();
   FileOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   FileOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   FileOptions clone() => new FileOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static FileOptions create() => new FileOptions();
-  static PbList<FileOptions> createRepeated() => new PbList<FileOptions>();
+  static $pb.PbList<FileOptions> createRepeated() =>
+      new $pb.PbList<FileOptions>();
   static FileOptions getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyFileOptions();
     return _defaultInstance;
@@ -830,7 +838,7 @@
 
   static FileOptions _defaultInstance;
   static void $checkItem(FileOptions v) {
-    if (v is! FileOptions) checkItemFailed(v, 'FileOptions');
+    if (v is! FileOptions) $pb.checkItemFailed(v, 'FileOptions');
   }
 
   String get javaPackage => $_getS(0, '');
@@ -972,30 +980,30 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(17);
 }
 
-class _ReadonlyFileOptions extends FileOptions with ReadonlyMessageMixin {}
+class _ReadonlyFileOptions extends FileOptions with $pb.ReadonlyMessageMixin {}
 
-class MessageOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('MessageOptions')
+class MessageOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('MessageOptions')
     ..aOB(1, 'messageSetWireFormat')
     ..aOB(2, 'noStandardDescriptorAccessor')
     ..aOB(3, 'deprecated')
     ..aOB(7, 'mapEntry')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   MessageOptions() : super();
   MessageOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   MessageOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   MessageOptions clone() => new MessageOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static MessageOptions create() => new MessageOptions();
-  static PbList<MessageOptions> createRepeated() =>
-      new PbList<MessageOptions>();
+  static $pb.PbList<MessageOptions> createRepeated() =>
+      new $pb.PbList<MessageOptions>();
   static MessageOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyMessageOptions();
@@ -1004,7 +1012,7 @@
 
   static MessageOptions _defaultInstance;
   static void $checkItem(MessageOptions v) {
-    if (v is! MessageOptions) checkItemFailed(v, 'MessageOptions');
+    if (v is! MessageOptions) $pb.checkItemFailed(v, 'MessageOptions');
   }
 
   bool get messageSetWireFormat => $_get(0, false);
@@ -1042,15 +1050,15 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(4);
 }
 
-class _ReadonlyMessageOptions extends MessageOptions with ReadonlyMessageMixin {
-}
+class _ReadonlyMessageOptions extends MessageOptions
+    with $pb.ReadonlyMessageMixin {}
 
-class FieldOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('FieldOptions')
+class FieldOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('FieldOptions')
     ..e<FieldOptions_CType>(
         1,
         'ctype',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         FieldOptions_CType.STRING,
         FieldOptions_CType.valueOf,
         FieldOptions_CType.values)
@@ -1060,26 +1068,27 @@
     ..e<FieldOptions_JSType>(
         6,
         'jstype',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         FieldOptions_JSType.JS_NORMAL,
         FieldOptions_JSType.valueOf,
         FieldOptions_JSType.values)
     ..aOB(10, 'weak')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   FieldOptions() : super();
   FieldOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   FieldOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   FieldOptions clone() => new FieldOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static FieldOptions create() => new FieldOptions();
-  static PbList<FieldOptions> createRepeated() => new PbList<FieldOptions>();
+  static $pb.PbList<FieldOptions> createRepeated() =>
+      new $pb.PbList<FieldOptions>();
   static FieldOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyFieldOptions();
@@ -1088,7 +1097,7 @@
 
   static FieldOptions _defaultInstance;
   static void $checkItem(FieldOptions v) {
-    if (v is! FieldOptions) checkItemFailed(v, 'FieldOptions');
+    if (v is! FieldOptions) $pb.checkItemFailed(v, 'FieldOptions');
   }
 
   FieldOptions_CType get ctype => $_getN(0);
@@ -1142,25 +1151,27 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(6);
 }
 
-class _ReadonlyFieldOptions extends FieldOptions with ReadonlyMessageMixin {}
+class _ReadonlyFieldOptions extends FieldOptions with $pb.ReadonlyMessageMixin {
+}
 
-class OneofOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('OneofOptions')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+class OneofOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('OneofOptions')
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   OneofOptions() : super();
   OneofOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   OneofOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   OneofOptions clone() => new OneofOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static OneofOptions create() => new OneofOptions();
-  static PbList<OneofOptions> createRepeated() => new PbList<OneofOptions>();
+  static $pb.PbList<OneofOptions> createRepeated() =>
+      new $pb.PbList<OneofOptions>();
   static OneofOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyOneofOptions();
@@ -1169,33 +1180,35 @@
 
   static OneofOptions _defaultInstance;
   static void $checkItem(OneofOptions v) {
-    if (v is! OneofOptions) checkItemFailed(v, 'OneofOptions');
+    if (v is! OneofOptions) $pb.checkItemFailed(v, 'OneofOptions');
   }
 
   List<UninterpretedOption> get uninterpretedOption => $_getList(0);
 }
 
-class _ReadonlyOneofOptions extends OneofOptions with ReadonlyMessageMixin {}
+class _ReadonlyOneofOptions extends OneofOptions with $pb.ReadonlyMessageMixin {
+}
 
-class EnumOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('EnumOptions')
+class EnumOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('EnumOptions')
     ..aOB(2, 'allowAlias')
     ..aOB(3, 'deprecated')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   EnumOptions() : super();
   EnumOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   EnumOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   EnumOptions clone() => new EnumOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static EnumOptions create() => new EnumOptions();
-  static PbList<EnumOptions> createRepeated() => new PbList<EnumOptions>();
+  static $pb.PbList<EnumOptions> createRepeated() =>
+      new $pb.PbList<EnumOptions>();
   static EnumOptions getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyEnumOptions();
     return _defaultInstance;
@@ -1203,7 +1216,7 @@
 
   static EnumOptions _defaultInstance;
   static void $checkItem(EnumOptions v) {
-    if (v is! EnumOptions) checkItemFailed(v, 'EnumOptions');
+    if (v is! EnumOptions) $pb.checkItemFailed(v, 'EnumOptions');
   }
 
   bool get allowAlias => $_get(0, false);
@@ -1225,27 +1238,27 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(2);
 }
 
-class _ReadonlyEnumOptions extends EnumOptions with ReadonlyMessageMixin {}
+class _ReadonlyEnumOptions extends EnumOptions with $pb.ReadonlyMessageMixin {}
 
-class EnumValueOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('EnumValueOptions')
+class EnumValueOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('EnumValueOptions')
     ..aOB(1, 'deprecated')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   EnumValueOptions() : super();
   EnumValueOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   EnumValueOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   EnumValueOptions clone() => new EnumValueOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static EnumValueOptions create() => new EnumValueOptions();
-  static PbList<EnumValueOptions> createRepeated() =>
-      new PbList<EnumValueOptions>();
+  static $pb.PbList<EnumValueOptions> createRepeated() =>
+      new $pb.PbList<EnumValueOptions>();
   static EnumValueOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyEnumValueOptions();
@@ -1254,7 +1267,7 @@
 
   static EnumValueOptions _defaultInstance;
   static void $checkItem(EnumValueOptions v) {
-    if (v is! EnumValueOptions) checkItemFailed(v, 'EnumValueOptions');
+    if (v is! EnumValueOptions) $pb.checkItemFailed(v, 'EnumValueOptions');
   }
 
   bool get deprecated => $_get(0, false);
@@ -1269,27 +1282,27 @@
 }
 
 class _ReadonlyEnumValueOptions extends EnumValueOptions
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class ServiceOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('ServiceOptions')
+class ServiceOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('ServiceOptions')
     ..aOB(33, 'deprecated')
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   ServiceOptions() : super();
   ServiceOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   ServiceOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   ServiceOptions clone() => new ServiceOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static ServiceOptions create() => new ServiceOptions();
-  static PbList<ServiceOptions> createRepeated() =>
-      new PbList<ServiceOptions>();
+  static $pb.PbList<ServiceOptions> createRepeated() =>
+      new $pb.PbList<ServiceOptions>();
   static ServiceOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyServiceOptions();
@@ -1298,7 +1311,7 @@
 
   static ServiceOptions _defaultInstance;
   static void $checkItem(ServiceOptions v) {
-    if (v is! ServiceOptions) checkItemFailed(v, 'ServiceOptions');
+    if (v is! ServiceOptions) $pb.checkItemFailed(v, 'ServiceOptions');
   }
 
   bool get deprecated => $_get(0, false);
@@ -1312,34 +1325,35 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(1);
 }
 
-class _ReadonlyServiceOptions extends ServiceOptions with ReadonlyMessageMixin {
-}
+class _ReadonlyServiceOptions extends ServiceOptions
+    with $pb.ReadonlyMessageMixin {}
 
-class MethodOptions extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('MethodOptions')
+class MethodOptions extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('MethodOptions')
     ..aOB(33, 'deprecated')
     ..e<MethodOptions_IdempotencyLevel>(
         34,
         'idempotencyLevel',
-        PbFieldType.OE,
+        $pb.PbFieldType.OE,
         MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN,
         MethodOptions_IdempotencyLevel.valueOf,
         MethodOptions_IdempotencyLevel.values)
-    ..pp<UninterpretedOption>(999, 'uninterpretedOption', PbFieldType.PM,
+    ..pp<UninterpretedOption>(999, 'uninterpretedOption', $pb.PbFieldType.PM,
         UninterpretedOption.$checkItem, UninterpretedOption.create)
     ..hasExtensions = true;
 
   MethodOptions() : super();
   MethodOptions.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   MethodOptions.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   MethodOptions clone() => new MethodOptions()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static MethodOptions create() => new MethodOptions();
-  static PbList<MethodOptions> createRepeated() => new PbList<MethodOptions>();
+  static $pb.PbList<MethodOptions> createRepeated() =>
+      new $pb.PbList<MethodOptions>();
   static MethodOptions getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyMethodOptions();
@@ -1348,7 +1362,7 @@
 
   static MethodOptions _defaultInstance;
   static void $checkItem(MethodOptions v) {
-    if (v is! MethodOptions) checkItemFailed(v, 'MethodOptions');
+    if (v is! MethodOptions) $pb.checkItemFailed(v, 'MethodOptions');
   }
 
   bool get deprecated => $_get(0, false);
@@ -1370,27 +1384,29 @@
   List<UninterpretedOption> get uninterpretedOption => $_getList(2);
 }
 
-class _ReadonlyMethodOptions extends MethodOptions with ReadonlyMessageMixin {}
+class _ReadonlyMethodOptions extends MethodOptions
+    with $pb.ReadonlyMessageMixin {}
 
-class UninterpretedOption_NamePart extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('UninterpretedOption_NamePart')
-    ..aQS(1, 'namePart')
-    ..a<bool>(2, 'isExtension', PbFieldType.QB);
+class UninterpretedOption_NamePart extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('UninterpretedOption_NamePart')
+        ..aQS(1, 'namePart')
+        ..a<bool>(2, 'isExtension', $pb.PbFieldType.QB);
 
   UninterpretedOption_NamePart() : super();
   UninterpretedOption_NamePart.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   UninterpretedOption_NamePart.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   UninterpretedOption_NamePart clone() =>
       new UninterpretedOption_NamePart()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static UninterpretedOption_NamePart create() =>
       new UninterpretedOption_NamePart();
-  static PbList<UninterpretedOption_NamePart> createRepeated() =>
-      new PbList<UninterpretedOption_NamePart>();
+  static $pb.PbList<UninterpretedOption_NamePart> createRepeated() =>
+      new $pb.PbList<UninterpretedOption_NamePart>();
   static UninterpretedOption_NamePart getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyUninterpretedOption_NamePart();
@@ -1400,7 +1416,7 @@
   static UninterpretedOption_NamePart _defaultInstance;
   static void $checkItem(UninterpretedOption_NamePart v) {
     if (v is! UninterpretedOption_NamePart)
-      checkItemFailed(v, 'UninterpretedOption_NamePart');
+      $pb.checkItemFailed(v, 'UninterpretedOption_NamePart');
   }
 
   String get namePart => $_getS(0, '');
@@ -1421,36 +1437,36 @@
 }
 
 class _ReadonlyUninterpretedOption_NamePart extends UninterpretedOption_NamePart
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class UninterpretedOption extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('UninterpretedOption')
+class UninterpretedOption extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('UninterpretedOption')
     ..pp<UninterpretedOption_NamePart>(
         2,
         'name',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         UninterpretedOption_NamePart.$checkItem,
         UninterpretedOption_NamePart.create)
     ..aOS(3, 'identifierValue')
-    ..a<Int64>(4, 'positiveIntValue', PbFieldType.OU6, Int64.ZERO)
+    ..a<Int64>(4, 'positiveIntValue', $pb.PbFieldType.OU6, Int64.ZERO)
     ..aInt64(5, 'negativeIntValue')
-    ..a<double>(6, 'doubleValue', PbFieldType.OD)
-    ..a<List<int>>(7, 'stringValue', PbFieldType.OY)
+    ..a<double>(6, 'doubleValue', $pb.PbFieldType.OD)
+    ..a<List<int>>(7, 'stringValue', $pb.PbFieldType.OY)
     ..aOS(8, 'aggregateValue');
 
   UninterpretedOption() : super();
   UninterpretedOption.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   UninterpretedOption.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   UninterpretedOption clone() =>
       new UninterpretedOption()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static UninterpretedOption create() => new UninterpretedOption();
-  static PbList<UninterpretedOption> createRepeated() =>
-      new PbList<UninterpretedOption>();
+  static $pb.PbList<UninterpretedOption> createRepeated() =>
+      new $pb.PbList<UninterpretedOption>();
   static UninterpretedOption getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyUninterpretedOption();
@@ -1459,7 +1475,8 @@
 
   static UninterpretedOption _defaultInstance;
   static void $checkItem(UninterpretedOption v) {
-    if (v is! UninterpretedOption) checkItemFailed(v, 'UninterpretedOption');
+    if (v is! UninterpretedOption)
+      $pb.checkItemFailed(v, 'UninterpretedOption');
   }
 
   List<UninterpretedOption_NamePart> get name => $_getList(0);
@@ -1514,30 +1531,31 @@
 }
 
 class _ReadonlyUninterpretedOption extends UninterpretedOption
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class SourceCodeInfo_Location extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('SourceCodeInfo_Location')
-    ..p<int>(1, 'path', PbFieldType.K3)
-    ..p<int>(2, 'span', PbFieldType.K3)
-    ..aOS(3, 'leadingComments')
-    ..aOS(4, 'trailingComments')
-    ..pPS(6, 'leadingDetachedComments')
-    ..hasRequiredFields = false;
+class SourceCodeInfo_Location extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('SourceCodeInfo_Location')
+        ..p<int>(1, 'path', $pb.PbFieldType.K3)
+        ..p<int>(2, 'span', $pb.PbFieldType.K3)
+        ..aOS(3, 'leadingComments')
+        ..aOS(4, 'trailingComments')
+        ..pPS(6, 'leadingDetachedComments')
+        ..hasRequiredFields = false;
 
   SourceCodeInfo_Location() : super();
   SourceCodeInfo_Location.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   SourceCodeInfo_Location.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   SourceCodeInfo_Location clone() =>
       new SourceCodeInfo_Location()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static SourceCodeInfo_Location create() => new SourceCodeInfo_Location();
-  static PbList<SourceCodeInfo_Location> createRepeated() =>
-      new PbList<SourceCodeInfo_Location>();
+  static $pb.PbList<SourceCodeInfo_Location> createRepeated() =>
+      new $pb.PbList<SourceCodeInfo_Location>();
   static SourceCodeInfo_Location getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlySourceCodeInfo_Location();
@@ -1547,7 +1565,7 @@
   static SourceCodeInfo_Location _defaultInstance;
   static void $checkItem(SourceCodeInfo_Location v) {
     if (v is! SourceCodeInfo_Location)
-      checkItemFailed(v, 'SourceCodeInfo_Location');
+      $pb.checkItemFailed(v, 'SourceCodeInfo_Location');
   }
 
   List<int> get path => $_getList(0);
@@ -1574,26 +1592,26 @@
 }
 
 class _ReadonlySourceCodeInfo_Location extends SourceCodeInfo_Location
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class SourceCodeInfo extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('SourceCodeInfo')
-    ..pp<SourceCodeInfo_Location>(1, 'location', PbFieldType.PM,
+class SourceCodeInfo extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('SourceCodeInfo')
+    ..pp<SourceCodeInfo_Location>(1, 'location', $pb.PbFieldType.PM,
         SourceCodeInfo_Location.$checkItem, SourceCodeInfo_Location.create)
     ..hasRequiredFields = false;
 
   SourceCodeInfo() : super();
   SourceCodeInfo.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   SourceCodeInfo.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   SourceCodeInfo clone() => new SourceCodeInfo()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static SourceCodeInfo create() => new SourceCodeInfo();
-  static PbList<SourceCodeInfo> createRepeated() =>
-      new PbList<SourceCodeInfo>();
+  static $pb.PbList<SourceCodeInfo> createRepeated() =>
+      new $pb.PbList<SourceCodeInfo>();
   static SourceCodeInfo getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlySourceCodeInfo();
@@ -1602,37 +1620,38 @@
 
   static SourceCodeInfo _defaultInstance;
   static void $checkItem(SourceCodeInfo v) {
-    if (v is! SourceCodeInfo) checkItemFailed(v, 'SourceCodeInfo');
+    if (v is! SourceCodeInfo) $pb.checkItemFailed(v, 'SourceCodeInfo');
   }
 
   List<SourceCodeInfo_Location> get location => $_getList(0);
 }
 
-class _ReadonlySourceCodeInfo extends SourceCodeInfo with ReadonlyMessageMixin {
-}
+class _ReadonlySourceCodeInfo extends SourceCodeInfo
+    with $pb.ReadonlyMessageMixin {}
 
-class GeneratedCodeInfo_Annotation extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('GeneratedCodeInfo_Annotation')
-    ..p<int>(1, 'path', PbFieldType.K3)
-    ..aOS(2, 'sourceFile')
-    ..a<int>(3, 'begin', PbFieldType.O3)
-    ..a<int>(4, 'end', PbFieldType.O3)
-    ..hasRequiredFields = false;
+class GeneratedCodeInfo_Annotation extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('GeneratedCodeInfo_Annotation')
+        ..p<int>(1, 'path', $pb.PbFieldType.K3)
+        ..aOS(2, 'sourceFile')
+        ..a<int>(3, 'begin', $pb.PbFieldType.O3)
+        ..a<int>(4, 'end', $pb.PbFieldType.O3)
+        ..hasRequiredFields = false;
 
   GeneratedCodeInfo_Annotation() : super();
   GeneratedCodeInfo_Annotation.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   GeneratedCodeInfo_Annotation.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   GeneratedCodeInfo_Annotation clone() =>
       new GeneratedCodeInfo_Annotation()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static GeneratedCodeInfo_Annotation create() =>
       new GeneratedCodeInfo_Annotation();
-  static PbList<GeneratedCodeInfo_Annotation> createRepeated() =>
-      new PbList<GeneratedCodeInfo_Annotation>();
+  static $pb.PbList<GeneratedCodeInfo_Annotation> createRepeated() =>
+      new $pb.PbList<GeneratedCodeInfo_Annotation>();
   static GeneratedCodeInfo_Annotation getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyGeneratedCodeInfo_Annotation();
@@ -1642,7 +1661,7 @@
   static GeneratedCodeInfo_Annotation _defaultInstance;
   static void $checkItem(GeneratedCodeInfo_Annotation v) {
     if (v is! GeneratedCodeInfo_Annotation)
-      checkItemFailed(v, 'GeneratedCodeInfo_Annotation');
+      $pb.checkItemFailed(v, 'GeneratedCodeInfo_Annotation');
   }
 
   List<int> get path => $_getList(0);
@@ -1673,30 +1692,30 @@
 }
 
 class _ReadonlyGeneratedCodeInfo_Annotation extends GeneratedCodeInfo_Annotation
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class GeneratedCodeInfo extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('GeneratedCodeInfo')
+class GeneratedCodeInfo extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('GeneratedCodeInfo')
     ..pp<GeneratedCodeInfo_Annotation>(
         1,
         'annotation',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         GeneratedCodeInfo_Annotation.$checkItem,
         GeneratedCodeInfo_Annotation.create)
     ..hasRequiredFields = false;
 
   GeneratedCodeInfo() : super();
   GeneratedCodeInfo.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   GeneratedCodeInfo.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   GeneratedCodeInfo clone() => new GeneratedCodeInfo()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static GeneratedCodeInfo create() => new GeneratedCodeInfo();
-  static PbList<GeneratedCodeInfo> createRepeated() =>
-      new PbList<GeneratedCodeInfo>();
+  static $pb.PbList<GeneratedCodeInfo> createRepeated() =>
+      new $pb.PbList<GeneratedCodeInfo>();
   static GeneratedCodeInfo getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyGeneratedCodeInfo();
@@ -1705,11 +1724,11 @@
 
   static GeneratedCodeInfo _defaultInstance;
   static void $checkItem(GeneratedCodeInfo v) {
-    if (v is! GeneratedCodeInfo) checkItemFailed(v, 'GeneratedCodeInfo');
+    if (v is! GeneratedCodeInfo) $pb.checkItemFailed(v, 'GeneratedCodeInfo');
   }
 
   List<GeneratedCodeInfo_Annotation> get annotation => $_getList(0);
 }
 
 class _ReadonlyGeneratedCodeInfo extends GeneratedCodeInfo
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
diff --git a/lib/src/descriptor.pbenum.dart b/lib/src/descriptor.pbenum.dart
index 601fd97..2d51b2b 100644
--- a/lib/src/descriptor.pbenum.dart
+++ b/lib/src/descriptor.pbenum.dart
@@ -5,9 +5,9 @@
 
 // ignore_for_file: UNDEFINED_SHOWN_NAME,UNUSED_SHOWN_NAME
 import 'dart:core' show int, dynamic, String, List, Map;
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class FieldDescriptorProto_Type extends ProtobufEnum {
+class FieldDescriptorProto_Type extends $pb.ProtobufEnum {
   static const FieldDescriptorProto_Type TYPE_DOUBLE =
       const FieldDescriptorProto_Type._(1, 'TYPE_DOUBLE');
   static const FieldDescriptorProto_Type TYPE_FLOAT =
@@ -67,18 +67,19 @@
     TYPE_SINT64,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static FieldDescriptorProto_Type valueOf(int value) =>
       _byValue[value] as FieldDescriptorProto_Type;
   static void $checkItem(FieldDescriptorProto_Type v) {
     if (v is! FieldDescriptorProto_Type)
-      checkItemFailed(v, 'FieldDescriptorProto_Type');
+      $pb.checkItemFailed(v, 'FieldDescriptorProto_Type');
   }
 
   const FieldDescriptorProto_Type._(int v, String n) : super(v, n);
 }
 
-class FieldDescriptorProto_Label extends ProtobufEnum {
+class FieldDescriptorProto_Label extends $pb.ProtobufEnum {
   static const FieldDescriptorProto_Label LABEL_OPTIONAL =
       const FieldDescriptorProto_Label._(1, 'LABEL_OPTIONAL');
   static const FieldDescriptorProto_Label LABEL_REQUIRED =
@@ -93,18 +94,19 @@
     LABEL_REPEATED,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static FieldDescriptorProto_Label valueOf(int value) =>
       _byValue[value] as FieldDescriptorProto_Label;
   static void $checkItem(FieldDescriptorProto_Label v) {
     if (v is! FieldDescriptorProto_Label)
-      checkItemFailed(v, 'FieldDescriptorProto_Label');
+      $pb.checkItemFailed(v, 'FieldDescriptorProto_Label');
   }
 
   const FieldDescriptorProto_Label._(int v, String n) : super(v, n);
 }
 
-class FileOptions_OptimizeMode extends ProtobufEnum {
+class FileOptions_OptimizeMode extends $pb.ProtobufEnum {
   static const FileOptions_OptimizeMode SPEED =
       const FileOptions_OptimizeMode._(1, 'SPEED');
   static const FileOptions_OptimizeMode CODE_SIZE =
@@ -119,18 +121,19 @@
     LITE_RUNTIME,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static FileOptions_OptimizeMode valueOf(int value) =>
       _byValue[value] as FileOptions_OptimizeMode;
   static void $checkItem(FileOptions_OptimizeMode v) {
     if (v is! FileOptions_OptimizeMode)
-      checkItemFailed(v, 'FileOptions_OptimizeMode');
+      $pb.checkItemFailed(v, 'FileOptions_OptimizeMode');
   }
 
   const FileOptions_OptimizeMode._(int v, String n) : super(v, n);
 }
 
-class FieldOptions_CType extends ProtobufEnum {
+class FieldOptions_CType extends $pb.ProtobufEnum {
   static const FieldOptions_CType STRING =
       const FieldOptions_CType._(0, 'STRING');
   static const FieldOptions_CType CORD = const FieldOptions_CType._(1, 'CORD');
@@ -143,17 +146,18 @@
     STRING_PIECE,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static FieldOptions_CType valueOf(int value) =>
       _byValue[value] as FieldOptions_CType;
   static void $checkItem(FieldOptions_CType v) {
-    if (v is! FieldOptions_CType) checkItemFailed(v, 'FieldOptions_CType');
+    if (v is! FieldOptions_CType) $pb.checkItemFailed(v, 'FieldOptions_CType');
   }
 
   const FieldOptions_CType._(int v, String n) : super(v, n);
 }
 
-class FieldOptions_JSType extends ProtobufEnum {
+class FieldOptions_JSType extends $pb.ProtobufEnum {
   static const FieldOptions_JSType JS_NORMAL =
       const FieldOptions_JSType._(0, 'JS_NORMAL');
   static const FieldOptions_JSType JS_STRING =
@@ -167,17 +171,19 @@
     JS_NUMBER,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static FieldOptions_JSType valueOf(int value) =>
       _byValue[value] as FieldOptions_JSType;
   static void $checkItem(FieldOptions_JSType v) {
-    if (v is! FieldOptions_JSType) checkItemFailed(v, 'FieldOptions_JSType');
+    if (v is! FieldOptions_JSType)
+      $pb.checkItemFailed(v, 'FieldOptions_JSType');
   }
 
   const FieldOptions_JSType._(int v, String n) : super(v, n);
 }
 
-class MethodOptions_IdempotencyLevel extends ProtobufEnum {
+class MethodOptions_IdempotencyLevel extends $pb.ProtobufEnum {
   static const MethodOptions_IdempotencyLevel IDEMPOTENCY_UNKNOWN =
       const MethodOptions_IdempotencyLevel._(0, 'IDEMPOTENCY_UNKNOWN');
   static const MethodOptions_IdempotencyLevel NO_SIDE_EFFECTS =
@@ -192,12 +198,13 @@
     IDEMPOTENT,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue =
+      $pb.ProtobufEnum.initByValue(values);
   static MethodOptions_IdempotencyLevel valueOf(int value) =>
       _byValue[value] as MethodOptions_IdempotencyLevel;
   static void $checkItem(MethodOptions_IdempotencyLevel v) {
     if (v is! MethodOptions_IdempotencyLevel)
-      checkItemFailed(v, 'MethodOptions_IdempotencyLevel');
+      $pb.checkItemFailed(v, 'MethodOptions_IdempotencyLevel');
   }
 
   const MethodOptions_IdempotencyLevel._(int v, String n) : super(v, n);
diff --git a/lib/src/plugin.pb.dart b/lib/src/plugin.pb.dart
index dd561ba..aee0090 100644
--- a/lib/src/plugin.pb.dart
+++ b/lib/src/plugin.pb.dart
@@ -6,28 +6,29 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
 import 'descriptor.pb.dart' as $google$protobuf;
 
-class Version extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('Version')
-    ..a<int>(1, 'major', PbFieldType.O3)
-    ..a<int>(2, 'minor', PbFieldType.O3)
-    ..a<int>(3, 'patch', PbFieldType.O3)
+class Version extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('Version')
+    ..a<int>(1, 'major', $pb.PbFieldType.O3)
+    ..a<int>(2, 'minor', $pb.PbFieldType.O3)
+    ..a<int>(3, 'patch', $pb.PbFieldType.O3)
     ..aOS(4, 'suffix')
     ..hasRequiredFields = false;
 
   Version() : super();
   Version.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
-  Version.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+  Version.fromJson(String i,
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   Version clone() => new Version()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static Version create() => new Version();
-  static PbList<Version> createRepeated() => new PbList<Version>();
+  static $pb.PbList<Version> createRepeated() => new $pb.PbList<Version>();
   static Version getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyVersion();
     return _defaultInstance;
@@ -35,7 +36,7 @@
 
   static Version _defaultInstance;
   static void $checkItem(Version v) {
-    if (v is! Version) checkItemFailed(v, 'Version');
+    if (v is! Version) $pb.checkItemFailed(v, 'Version');
   }
 
   int get major => $_get(0, 0);
@@ -71,34 +72,34 @@
   void clearSuffix() => clearField(4);
 }
 
-class _ReadonlyVersion extends Version with ReadonlyMessageMixin {}
+class _ReadonlyVersion extends Version with $pb.ReadonlyMessageMixin {}
 
-class CodeGeneratorRequest extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('CodeGeneratorRequest')
+class CodeGeneratorRequest extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('CodeGeneratorRequest')
     ..pPS(1, 'fileToGenerate')
     ..aOS(2, 'parameter')
-    ..a<Version>(3, 'compilerVersion', PbFieldType.OM, Version.getDefault,
+    ..a<Version>(3, 'compilerVersion', $pb.PbFieldType.OM, Version.getDefault,
         Version.create)
     ..pp<$google$protobuf.FileDescriptorProto>(
         15,
         'protoFile',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         $google$protobuf.FileDescriptorProto.$checkItem,
         $google$protobuf.FileDescriptorProto.create);
 
   CodeGeneratorRequest() : super();
   CodeGeneratorRequest.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   CodeGeneratorRequest.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   CodeGeneratorRequest clone() =>
       new CodeGeneratorRequest()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static CodeGeneratorRequest create() => new CodeGeneratorRequest();
-  static PbList<CodeGeneratorRequest> createRepeated() =>
-      new PbList<CodeGeneratorRequest>();
+  static $pb.PbList<CodeGeneratorRequest> createRepeated() =>
+      new $pb.PbList<CodeGeneratorRequest>();
   static CodeGeneratorRequest getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyCodeGeneratorRequest();
@@ -107,7 +108,8 @@
 
   static CodeGeneratorRequest _defaultInstance;
   static void $checkItem(CodeGeneratorRequest v) {
-    if (v is! CodeGeneratorRequest) checkItemFailed(v, 'CodeGeneratorRequest');
+    if (v is! CodeGeneratorRequest)
+      $pb.checkItemFailed(v, 'CodeGeneratorRequest');
   }
 
   List<String> get fileToGenerate => $_getList(0);
@@ -132,29 +134,30 @@
 }
 
 class _ReadonlyCodeGeneratorRequest extends CodeGeneratorRequest
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class CodeGeneratorResponse_File extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('CodeGeneratorResponse_File')
-    ..aOS(1, 'name')
-    ..aOS(2, 'insertionPoint')
-    ..aOS(15, 'content')
-    ..hasRequiredFields = false;
+class CodeGeneratorResponse_File extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i =
+      new $pb.BuilderInfo('CodeGeneratorResponse_File')
+        ..aOS(1, 'name')
+        ..aOS(2, 'insertionPoint')
+        ..aOS(15, 'content')
+        ..hasRequiredFields = false;
 
   CodeGeneratorResponse_File() : super();
   CodeGeneratorResponse_File.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   CodeGeneratorResponse_File.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   CodeGeneratorResponse_File clone() =>
       new CodeGeneratorResponse_File()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static CodeGeneratorResponse_File create() =>
       new CodeGeneratorResponse_File();
-  static PbList<CodeGeneratorResponse_File> createRepeated() =>
-      new PbList<CodeGeneratorResponse_File>();
+  static $pb.PbList<CodeGeneratorResponse_File> createRepeated() =>
+      new $pb.PbList<CodeGeneratorResponse_File>();
   static CodeGeneratorResponse_File getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyCodeGeneratorResponse_File();
@@ -164,7 +167,7 @@
   static CodeGeneratorResponse_File _defaultInstance;
   static void $checkItem(CodeGeneratorResponse_File v) {
     if (v is! CodeGeneratorResponse_File)
-      checkItemFailed(v, 'CodeGeneratorResponse_File');
+      $pb.checkItemFailed(v, 'CodeGeneratorResponse_File');
   }
 
   String get name => $_getS(0, '');
@@ -193,32 +196,32 @@
 }
 
 class _ReadonlyCodeGeneratorResponse_File extends CodeGeneratorResponse_File
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
 
-class CodeGeneratorResponse extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('CodeGeneratorResponse')
+class CodeGeneratorResponse extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('CodeGeneratorResponse')
     ..aOS(1, 'error')
     ..pp<CodeGeneratorResponse_File>(
         15,
         'file',
-        PbFieldType.PM,
+        $pb.PbFieldType.PM,
         CodeGeneratorResponse_File.$checkItem,
         CodeGeneratorResponse_File.create)
     ..hasRequiredFields = false;
 
   CodeGeneratorResponse() : super();
   CodeGeneratorResponse.fromBuffer(List<int> i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromBuffer(i, r);
   CodeGeneratorResponse.fromJson(String i,
-      [ExtensionRegistry r = ExtensionRegistry.EMPTY])
+      [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
       : super.fromJson(i, r);
   CodeGeneratorResponse clone() =>
       new CodeGeneratorResponse()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static CodeGeneratorResponse create() => new CodeGeneratorResponse();
-  static PbList<CodeGeneratorResponse> createRepeated() =>
-      new PbList<CodeGeneratorResponse>();
+  static $pb.PbList<CodeGeneratorResponse> createRepeated() =>
+      new $pb.PbList<CodeGeneratorResponse>();
   static CodeGeneratorResponse getDefault() {
     if (_defaultInstance == null)
       _defaultInstance = new _ReadonlyCodeGeneratorResponse();
@@ -228,7 +231,7 @@
   static CodeGeneratorResponse _defaultInstance;
   static void $checkItem(CodeGeneratorResponse v) {
     if (v is! CodeGeneratorResponse)
-      checkItemFailed(v, 'CodeGeneratorResponse');
+      $pb.checkItemFailed(v, 'CodeGeneratorResponse');
   }
 
   String get error => $_getS(0, '');
@@ -243,4 +246,4 @@
 }
 
 class _ReadonlyCodeGeneratorResponse extends CodeGeneratorResponse
-    with ReadonlyMessageMixin {}
+    with $pb.ReadonlyMessageMixin {}
diff --git a/pubspec.yaml b/pubspec.yaml
index 8924e85..2e8ed60 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: protoc_plugin
-version: 0.8.1
+version: 0.8.2
 author: Dart Team <misc@dartlang.org>
 description: Protoc compiler plugin to generate Dart code
 homepage: https://github.com/dart-lang/dart-protoc-plugin
diff --git a/test/goldens/client b/test/goldens/client
index 257d50b..52fa215 100644
--- a/test/goldens/client
+++ b/test/goldens/client
@@ -1,12 +1,12 @@
 class TestApi {
-  RpcClient _client;
+  $pb.RpcClient _client;
   TestApi(this._client);
 
-  Future<SomeReply> aMethod(ClientContext ctx, SomeRequest request) {
+  Future<SomeReply> aMethod($pb.ClientContext ctx, SomeRequest request) {
     var emptyResponse = new SomeReply();
     return _client.invoke<SomeReply>(ctx, 'Test', 'AMethod', request, emptyResponse);
   }
-  Future<$foo$bar.AnotherReply> anotherMethod(ClientContext ctx, $foo$bar.EmptyMessage request) {
+  Future<$foo$bar.AnotherReply> anotherMethod($pb.ClientContext ctx, $foo$bar.EmptyMessage request) {
     var emptyResponse = new $foo$bar.AnotherReply();
     return _client.invoke<$foo$bar.AnotherReply>(ctx, 'Test', 'AnotherMethod', request, emptyResponse);
   }
diff --git a/test/goldens/enum b/test/goldens/enum
index 7c4dd6b..3f6638a 100644
--- a/test/goldens/enum
+++ b/test/goldens/enum
@@ -1,4 +1,4 @@
-class PhoneType extends ProtobufEnum {
+class PhoneType extends $pb.ProtobufEnum {
   static const PhoneType MOBILE = const PhoneType._(0, 'MOBILE');
   static const PhoneType HOME = const PhoneType._(1, 'HOME');
   static const PhoneType WORK = const PhoneType._(2, 'WORK');
@@ -11,10 +11,10 @@
     WORK,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue = $pb.ProtobufEnum.initByValue(values);
   static PhoneType valueOf(int value) => _byValue[value] as PhoneType;
   static void $checkItem(PhoneType v) {
-    if (v is! PhoneType) checkItemFailed(v, 'PhoneType');
+    if (v is! PhoneType) $pb.checkItemFailed(v, 'PhoneType');
   }
 
   const PhoneType._(int v, String n) : super(v, n);
diff --git a/test/goldens/grpc_service.pb b/test/goldens/grpc_service.pb
index 2143721..d1621f5 100644
--- a/test/goldens/grpc_service.pb
+++ b/test/goldens/grpc_service.pb
@@ -6,29 +6,29 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class Empty extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('Empty')
+class Empty extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('Empty')
     ..hasRequiredFields = false
   ;
 
   Empty() : super();
-  Empty.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
-  Empty.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
+  Empty.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
+  Empty.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
   Empty clone() => new Empty()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static Empty create() => new Empty();
-  static PbList<Empty> createRepeated() => new PbList<Empty>();
+  static $pb.PbList<Empty> createRepeated() => new $pb.PbList<Empty>();
   static Empty getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyEmpty();
     return _defaultInstance;
   }
   static Empty _defaultInstance;
   static void $checkItem(Empty v) {
-    if (v is! Empty) checkItemFailed(v, 'Empty');
+    if (v is! Empty) $pb.checkItemFailed(v, 'Empty');
   }
 }
 
-class _ReadonlyEmpty extends Empty with ReadonlyMessageMixin {}
+class _ReadonlyEmpty extends Empty with $pb.ReadonlyMessageMixin {}
 
diff --git a/test/goldens/header_in_package.pb b/test/goldens/header_in_package.pb
index dd841e2..a04916a 100644
--- a/test/goldens/header_in_package.pb
+++ b/test/goldens/header_in_package.pb
@@ -6,5 +6,5 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
diff --git a/test/goldens/header_with_fixnum.pb b/test/goldens/header_with_fixnum.pb
index dfaae59..788d114 100644
--- a/test/goldens/header_with_fixnum.pb
+++ b/test/goldens/header_with_fixnum.pb
@@ -7,5 +7,5 @@
 import 'dart:core' show int, bool, double, String, List, override;
 
 import 'package:fixnum/fixnum.dart';
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
diff --git a/test/goldens/imports.pb b/test/goldens/imports.pb
index d86a2a9..13182ef 100644
--- a/test/goldens/imports.pb
+++ b/test/goldens/imports.pb
@@ -6,33 +6,33 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
 import 'package1.pb.dart' as $p1;
 import 'package2.pb.dart' as $p2;
 
-class M extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('M')
-    ..a<M>(1, 'm', PbFieldType.OM, M.getDefault, M.create)
-    ..a<$p1.M>(2, 'm1', PbFieldType.OM, $p1.M.getDefault, $p1.M.create)
-    ..a<$p2.M>(3, 'm2', PbFieldType.OM, $p2.M.getDefault, $p2.M.create)
+class M extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('M')
+    ..a<M>(1, 'm', $pb.PbFieldType.OM, M.getDefault, M.create)
+    ..a<$p1.M>(2, 'm1', $pb.PbFieldType.OM, $p1.M.getDefault, $p1.M.create)
+    ..a<$p2.M>(3, 'm2', $pb.PbFieldType.OM, $p2.M.getDefault, $p2.M.create)
     ..hasRequiredFields = false
   ;
 
   M() : super();
-  M.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
-  M.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
+  M.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
+  M.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
   M clone() => new M()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static M create() => new M();
-  static PbList<M> createRepeated() => new PbList<M>();
+  static $pb.PbList<M> createRepeated() => new $pb.PbList<M>();
   static M getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyM();
     return _defaultInstance;
   }
   static M _defaultInstance;
   static void $checkItem(M v) {
-    if (v is! M) checkItemFailed(v, 'M');
+    if (v is! M) $pb.checkItemFailed(v, 'M');
   }
 
   M get m => $_getN(0);
@@ -51,5 +51,5 @@
   void clearM2() => clearField(3);
 }
 
-class _ReadonlyM extends M with ReadonlyMessageMixin {}
+class _ReadonlyM extends M with $pb.ReadonlyMessageMixin {}
 
diff --git a/test/goldens/messageGenerator b/test/goldens/messageGenerator
index 09d8faf..3ffc864 100644
--- a/test/goldens/messageGenerator
+++ b/test/goldens/messageGenerator
@@ -1,24 +1,24 @@
-class PhoneNumber extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('PhoneNumber')
+class PhoneNumber extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('PhoneNumber')
     ..aQS(1, 'number')
-    ..e<PhoneNumber_PhoneType>(2, 'type', PbFieldType.OE, PhoneNumber_PhoneType.MOBILE, PhoneNumber_PhoneType.valueOf, PhoneNumber_PhoneType.values)
-    ..a<String>(3, 'name', PbFieldType.OS, '\$')
+    ..e<PhoneNumber_PhoneType>(2, 'type', $pb.PbFieldType.OE, PhoneNumber_PhoneType.MOBILE, PhoneNumber_PhoneType.valueOf, PhoneNumber_PhoneType.values)
+    ..a<String>(3, 'name', $pb.PbFieldType.OS, '\$')
   ;
 
   PhoneNumber() : super();
-  PhoneNumber.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
-  PhoneNumber.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
+  PhoneNumber.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
+  PhoneNumber.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
   PhoneNumber clone() => new PhoneNumber()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static PhoneNumber create() => new PhoneNumber();
-  static PbList<PhoneNumber> createRepeated() => new PbList<PhoneNumber>();
+  static $pb.PbList<PhoneNumber> createRepeated() => new $pb.PbList<PhoneNumber>();
   static PhoneNumber getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyPhoneNumber();
     return _defaultInstance;
   }
   static PhoneNumber _defaultInstance;
   static void $checkItem(PhoneNumber v) {
-    if (v is! PhoneNumber) checkItemFailed(v, 'PhoneNumber');
+    if (v is! PhoneNumber) $pb.checkItemFailed(v, 'PhoneNumber');
   }
 
   String get number => $_getS(0, '');
@@ -37,5 +37,5 @@
   void clearName() => clearField(3);
 }
 
-class _ReadonlyPhoneNumber extends PhoneNumber with ReadonlyMessageMixin {}
+class _ReadonlyPhoneNumber extends PhoneNumber with $pb.ReadonlyMessageMixin {}
 
diff --git a/test/goldens/messageGeneratorEnums b/test/goldens/messageGeneratorEnums
index b8c4058..217772d 100644
--- a/test/goldens/messageGeneratorEnums
+++ b/test/goldens/messageGeneratorEnums
@@ -1,4 +1,4 @@
-class PhoneNumber_PhoneType extends ProtobufEnum {
+class PhoneNumber_PhoneType extends $pb.ProtobufEnum {
   static const PhoneNumber_PhoneType MOBILE = const PhoneNumber_PhoneType._(0, 'MOBILE');
   static const PhoneNumber_PhoneType HOME = const PhoneNumber_PhoneType._(1, 'HOME');
   static const PhoneNumber_PhoneType WORK = const PhoneNumber_PhoneType._(2, 'WORK');
@@ -11,10 +11,10 @@
     WORK,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue = $pb.ProtobufEnum.initByValue(values);
   static PhoneNumber_PhoneType valueOf(int value) => _byValue[value] as PhoneNumber_PhoneType;
   static void $checkItem(PhoneNumber_PhoneType v) {
-    if (v is! PhoneNumber_PhoneType) checkItemFailed(v, 'PhoneNumber_PhoneType');
+    if (v is! PhoneNumber_PhoneType) $pb.checkItemFailed(v, 'PhoneNumber_PhoneType');
   }
 
   const PhoneNumber_PhoneType._(int v, String n) : super(v, n);
diff --git a/test/goldens/oneMessage.pb b/test/goldens/oneMessage.pb
index 251d415..a89b6ea 100644
--- a/test/goldens/oneMessage.pb
+++ b/test/goldens/oneMessage.pb
@@ -6,29 +6,29 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class PhoneNumber extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('PhoneNumber')
+class PhoneNumber extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('PhoneNumber')
     ..aQS(1, 'number')
-    ..a<int>(2, 'type', PbFieldType.O3)
-    ..a<String>(3, 'name', PbFieldType.OS, '\$')
+    ..a<int>(2, 'type', $pb.PbFieldType.O3)
+    ..a<String>(3, 'name', $pb.PbFieldType.OS, '\$')
   ;
 
   PhoneNumber() : super();
-  PhoneNumber.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
-  PhoneNumber.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
+  PhoneNumber.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
+  PhoneNumber.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
   PhoneNumber clone() => new PhoneNumber()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static PhoneNumber create() => new PhoneNumber();
-  static PbList<PhoneNumber> createRepeated() => new PbList<PhoneNumber>();
+  static $pb.PbList<PhoneNumber> createRepeated() => new $pb.PbList<PhoneNumber>();
   static PhoneNumber getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyPhoneNumber();
     return _defaultInstance;
   }
   static PhoneNumber _defaultInstance;
   static void $checkItem(PhoneNumber v) {
-    if (v is! PhoneNumber) checkItemFailed(v, 'PhoneNumber');
+    if (v is! PhoneNumber) $pb.checkItemFailed(v, 'PhoneNumber');
   }
 
   String get number => $_getS(0, '');
@@ -47,5 +47,5 @@
   void clearName() => clearField(3);
 }
 
-class _ReadonlyPhoneNumber extends PhoneNumber with ReadonlyMessageMixin {}
+class _ReadonlyPhoneNumber extends PhoneNumber with $pb.ReadonlyMessageMixin {}
 
diff --git a/test/goldens/service.pb b/test/goldens/service.pb
index 6f01f27..6938cf3 100644
--- a/test/goldens/service.pb
+++ b/test/goldens/service.pb
@@ -7,37 +7,37 @@
 // ignore: UNUSED_SHOWN_NAME
 import 'dart:core' show int, bool, double, String, List, override;
 
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class Empty extends GeneratedMessage {
-  static final BuilderInfo _i = new BuilderInfo('Empty')
+class Empty extends $pb.GeneratedMessage {
+  static final $pb.BuilderInfo _i = new $pb.BuilderInfo('Empty')
     ..hasRequiredFields = false
   ;
 
   Empty() : super();
-  Empty.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
-  Empty.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
+  Empty.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
+  Empty.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
   Empty clone() => new Empty()..mergeFromMessage(this);
-  BuilderInfo get info_ => _i;
+  $pb.BuilderInfo get info_ => _i;
   static Empty create() => new Empty();
-  static PbList<Empty> createRepeated() => new PbList<Empty>();
+  static $pb.PbList<Empty> createRepeated() => new $pb.PbList<Empty>();
   static Empty getDefault() {
     if (_defaultInstance == null) _defaultInstance = new _ReadonlyEmpty();
     return _defaultInstance;
   }
   static Empty _defaultInstance;
   static void $checkItem(Empty v) {
-    if (v is! Empty) checkItemFailed(v, 'Empty');
+    if (v is! Empty) $pb.checkItemFailed(v, 'Empty');
   }
 }
 
-class _ReadonlyEmpty extends Empty with ReadonlyMessageMixin {}
+class _ReadonlyEmpty extends Empty with $pb.ReadonlyMessageMixin {}
 
 class TestApi {
-  RpcClient _client;
+  $pb.RpcClient _client;
   TestApi(this._client);
 
-  Future<Empty> ping(ClientContext ctx, Empty request) {
+  Future<Empty> ping($pb.ClientContext ctx, Empty request) {
     var emptyResponse = new Empty();
     return _client.invoke<Empty>(ctx, 'Test', 'Ping', request, emptyResponse);
   }
diff --git a/test/goldens/topLevelEnum.pbenum b/test/goldens/topLevelEnum.pbenum
index 79eddee..b60f0e4 100644
--- a/test/goldens/topLevelEnum.pbenum
+++ b/test/goldens/topLevelEnum.pbenum
@@ -5,9 +5,9 @@
 
 // ignore_for_file: UNDEFINED_SHOWN_NAME,UNUSED_SHOWN_NAME
 import 'dart:core' show int, dynamic, String, List, Map;
-import 'package:protobuf/protobuf.dart';
+import 'package:protobuf/protobuf.dart' as $pb;
 
-class PhoneType extends ProtobufEnum {
+class PhoneType extends $pb.ProtobufEnum {
   static const PhoneType MOBILE = const PhoneType._(0, 'MOBILE');
   static const PhoneType HOME = const PhoneType._(1, 'HOME');
   static const PhoneType WORK = const PhoneType._(2, 'WORK');
@@ -20,10 +20,10 @@
     WORK,
   ];
 
-  static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values);
+  static final Map<int, dynamic> _byValue = $pb.ProtobufEnum.initByValue(values);
   static PhoneType valueOf(int value) => _byValue[value] as PhoneType;
   static void $checkItem(PhoneType v) {
-    if (v is! PhoneType) checkItemFailed(v, 'PhoneType');
+    if (v is! PhoneType) $pb.checkItemFailed(v, 'PhoneType');
   }
 
   const PhoneType._(int v, String n) : super(v, n);