Skip to content

Commit b90a4c4

Browse files
authored
Sort message constructors first. (#807)
1 parent 00fd975 commit b90a4c4

File tree

9 files changed

+47
-48
lines changed

9 files changed

+47
-48
lines changed

protoc_plugin/lib/src/message_generator.dart

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,19 @@ class MessageGenerator extends ProtobufContainer {
316316
NamedLocation(
317317
name: classname, fieldPathSegment: fieldPath, start: 'class '.length)
318318
], () {
319+
out.println('factory $classname() => create();');
320+
out.printlnAnnotated('$classname._() : super();', [
321+
NamedLocation(name: classname, fieldPathSegment: fieldPath, start: 0)
322+
]);
323+
out.println(
324+
'factory $classname.fromBuffer($coreImportPrefix.List<$coreImportPrefix.int> i,'
325+
' [$protobufImportPrefix.ExtensionRegistry r = $protobufImportPrefix.ExtensionRegistry.EMPTY])'
326+
' => create()..mergeFromBuffer(i, r);');
327+
out.println('factory $classname.fromJson($coreImportPrefix.String i,'
328+
' [$protobufImportPrefix.ExtensionRegistry r = $protobufImportPrefix.ExtensionRegistry.EMPTY])'
329+
' => create()..mergeFromJson(i, r);');
330+
331+
out.println();
319332
for (var oneof in _oneofNames) {
320333
out.addBlock(
321334
'static const $coreImportPrefix.Map<$coreImportPrefix.int, ${oneof.oneofEnumName}> ${oneof.byTagMapName} = {',
@@ -364,20 +377,6 @@ class MessageGenerator extends ProtobufContainer {
364377
}
365378

366379
out.println();
367-
368-
out.printlnAnnotated('$classname._() : super();', [
369-
NamedLocation(name: classname, fieldPathSegment: fieldPath, start: 0)
370-
]);
371-
out.println('factory $classname() => create();');
372-
out.println(
373-
'factory $classname.fromBuffer($coreImportPrefix.List<$coreImportPrefix.int> i,'
374-
' [$protobufImportPrefix.ExtensionRegistry r = $protobufImportPrefix.ExtensionRegistry.EMPTY])'
375-
' => create()..mergeFromBuffer(i, r);');
376-
out.println('factory $classname.fromJson($coreImportPrefix.String i,'
377-
' [$protobufImportPrefix.ExtensionRegistry r = $protobufImportPrefix.ExtensionRegistry.EMPTY])'
378-
' => create()..mergeFromJson(i, r);');
379-
380-
out.println('');
381380
out.println('''@$coreImportPrefix.Deprecated(
382381
'Using this can add significant overhead to your binary. '
383382
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/grpc_service.pb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ import 'dart:core' as $core;
1414
import 'package:protobuf/protobuf.dart' as $pb;
1515

1616
class Empty extends $pb.GeneratedMessage {
17-
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Empty', createEmptyInstance: create)
18-
..hasRequiredFields = false
19-
;
20-
21-
Empty._() : super();
2217
factory Empty() => create();
18+
Empty._() : super();
2319
factory Empty.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
2420
factory Empty.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
2521

22+
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Empty', createEmptyInstance: create)
23+
..hasRequiredFields = false
24+
;
25+
2626
@$core.Deprecated(
2727
'Using this can add significant overhead to your binary. '
2828
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/imports.pb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ import 'package1.pb.dart' as $1;
1717
import 'package2.pb.dart' as $2;
1818

1919
class M extends $pb.GeneratedMessage {
20+
factory M() => create();
21+
M._() : super();
22+
factory M.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
23+
factory M.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
24+
2025
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'M', createEmptyInstance: create)
2126
..aOM<M>(1, _omitFieldNames ? '' : 'm', subBuilder: M.create)
2227
..aOM<$1.M>(2, _omitFieldNames ? '' : 'm1', subBuilder: $1.M.create)
2328
..aOM<$2.M>(3, _omitFieldNames ? '' : 'm2', subBuilder: $2.M.create)
2429
..hasRequiredFields = false
2530
;
2631

27-
M._() : super();
28-
factory M() => create();
29-
factory M.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
30-
factory M.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
31-
3232
@$core.Deprecated(
3333
'Using this can add significant overhead to your binary. '
3434
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/int64.pb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ import 'package:fixnum/fixnum.dart' as $fixnum;
1515
import 'package:protobuf/protobuf.dart' as $pb;
1616

1717
class Int64 extends $pb.GeneratedMessage {
18+
factory Int64() => create();
19+
Int64._() : super();
20+
factory Int64.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
21+
factory Int64.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
22+
1823
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Int64', createEmptyInstance: create)
1924
..aInt64(1, _omitFieldNames ? '' : 'value')
2025
..hasRequiredFields = false
2126
;
2227

23-
Int64._() : super();
24-
factory Int64() => create();
25-
factory Int64.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
26-
factory Int64.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
27-
2828
@$core.Deprecated(
2929
'Using this can add significant overhead to your binary. '
3030
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/messageGenerator

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
class PhoneNumber extends $pb.GeneratedMessage {
2+
factory PhoneNumber() => create();
3+
PhoneNumber._() : super();
4+
factory PhoneNumber.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
5+
factory PhoneNumber.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
6+
27
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'PhoneNumber', createEmptyInstance: create)
38
..aQS(1, _omitFieldNames ? '' : 'number')
49
..e<PhoneNumber_PhoneType>(2, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE, defaultOrMaker: PhoneNumber_PhoneType.MOBILE, valueOf: PhoneNumber_PhoneType.valueOf, enumValues: PhoneNumber_PhoneType.values)
510
..a<$core.String>(3, _omitFieldNames ? '' : 'name', $pb.PbFieldType.OS, defaultOrMaker: '\$')
611
..aOS(4, _omitFieldNames ? '' : 'deprecatedField')
712
;
813

9-
PhoneNumber._() : super();
10-
factory PhoneNumber() => create();
11-
factory PhoneNumber.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
12-
factory PhoneNumber.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
13-
1414
@$core.Deprecated(
1515
'Using this can add significant overhead to your binary. '
1616
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/messageGenerator.meta

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ annotation: {
99
path: 4
1010
path: 0
1111
sourceFile:
12-
begin: 589
13-
end: 600
12+
begin: 88
13+
end: 99
1414
}
1515
annotation: {
1616
path: 4

protoc_plugin/test/goldens/oneMessage.pb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ import 'dart:core' as $core;
1414
import 'package:protobuf/protobuf.dart' as $pb;
1515

1616
class PhoneNumber extends $pb.GeneratedMessage {
17+
factory PhoneNumber() => create();
18+
PhoneNumber._() : super();
19+
factory PhoneNumber.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
20+
factory PhoneNumber.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
21+
1722
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'PhoneNumber', createEmptyInstance: create)
1823
..aQS(1, _omitFieldNames ? '' : 'number')
1924
..a<$core.int>(2, _omitFieldNames ? '' : 'type', $pb.PbFieldType.O3)
2025
..a<$core.String>(3, _omitFieldNames ? '' : 'name', $pb.PbFieldType.OS, defaultOrMaker: '\$')
2126
;
2227

23-
PhoneNumber._() : super();
24-
factory PhoneNumber() => create();
25-
factory PhoneNumber.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
26-
factory PhoneNumber.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
27-
2828
@$core.Deprecated(
2929
'Using this can add significant overhead to your binary. '
3030
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

protoc_plugin/test/goldens/oneMessage.pb.meta

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ annotation: {
99
path: 4
1010
path: 0
1111
sourceFile: test
12-
begin: 822
13-
end: 833
12+
begin: 516
13+
end: 527
1414
}
1515
annotation: {
1616
path: 4

protoc_plugin/test/goldens/service.pb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ import 'dart:core' as $core;
1515
import 'package:protobuf/protobuf.dart' as $pb;
1616

1717
class Empty extends $pb.GeneratedMessage {
18-
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Empty', createEmptyInstance: create)
19-
..hasRequiredFields = false
20-
;
21-
22-
Empty._() : super();
2318
factory Empty() => create();
19+
Empty._() : super();
2420
factory Empty.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
2521
factory Empty.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
2622

23+
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Empty', createEmptyInstance: create)
24+
..hasRequiredFields = false
25+
;
26+
2727
@$core.Deprecated(
2828
'Using this can add significant overhead to your binary. '
2929
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '

0 commit comments

Comments
 (0)