From 949503b7e8ab159c260740fe08d69761a28a4070 Mon Sep 17 00:00:00 2001 From: Tate Thurston Date: Thu, 27 Jan 2022 17:56:04 -0800 Subject: [PATCH] fix repeated msg deserialization (#112) * fix repeated msg deserialization fixes #109 * Update CHANGELOG.md Co-authored-by: Tate --- CHANGELOG.md | 4 + package.json | 4 +- src/autogenerate/index.ts | 6 +- src/test-protos/__snapshots__/test.ts.snap | 684 +++++++-------------- src/test-serialization/message.pb.ts | 6 +- src/test-serialization/test.ts | 13 +- 6 files changed, 252 insertions(+), 465 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ef91065..76787927 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v0.0.43 + +- Fix repeated message deserialization by @tatethurston in https://github.com/tatethurston/TwirpScript/pull/112. + ## v0.0.42 - More compact code generation for empty messages by @tatethurston in https://github.com/tatethurston/TwirpScript/pull/101. diff --git a/package.json b/package.json index 5bf80d4d..09757ab1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "twirpscript", - "version": "0.0.42", + "version": "0.0.43", "description": "A protobuf RPC framework for JavaScript and TypeScript", "license": "MIT", "author": "Tate Thurston ", @@ -31,7 +31,7 @@ "lint:fix": "prettier --write . && prettier-package-json --write '{,example/}package.json'", "lint:package:fix": "prettier-package-json --write ./package.json", "prepack": "yarn build", - "regen": "yarn test -u && yarn examples:check && (cd clientcompat && yarn twirpscript)", + "regen": "(cd src/test-serialization && yarn twirpscript) && yarn test -u && yarn examples:check && (cd clientcompat && yarn twirpscript)", "test": "yarn jest src/*", "test:ci": "yarn test --coverage", "typecheck": "yarn tsc --noEmit" diff --git a/src/autogenerate/index.ts b/src/autogenerate/index.ts index 11b48121..8bb75cf0 100644 --- a/src/autogenerate/index.ts +++ b/src/autogenerate/index.ts @@ -240,9 +240,9 @@ function writeSerializers(types: ProtoTypes[], isTopLevel = true): string { });`; } else if (field.read === "readMessage") { if (field.repeated) { - res += `msg.${field.name}.push( - reader.readMessage(${field.tsType}.initialize(), ${field.tsType}._readMessage)); - `; + res += `const m = ${field.tsType}.initialize();`; + res += `reader.readMessage(m, ${field.tsType}._readMessage);`; + res += `msg.${field.name}.push(m);`; } else { res += ` reader.readMessage(msg.${field.name}, ${field.tsType}._readMessage); diff --git a/src/test-protos/__snapshots__/test.ts.snap b/src/test-protos/__snapshots__/test.ts.snap index 91b8a39d..b8bcb501 100644 --- a/src/test-protos/__snapshots__/test.ts.snap +++ b/src/test-protos/__snapshots__/test.ts.snap @@ -966,30 +966,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -1013,12 +1004,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 61: { @@ -1383,12 +1371,9 @@ export const NestedTestAllTypes = { break; } case 3: { - msg.repeatedChild.push( - reader.readMessage( - NestedTestAllTypes.initialize(), - NestedTestAllTypes._readMessage - ) - ); + const m = NestedTestAllTypes.initialize(); + reader.readMessage(m, NestedTestAllTypes._readMessage); + msg.repeatedChild.push(m); break; } default: { @@ -2433,12 +2418,9 @@ export const TestRequiredForeign = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -2519,12 +2501,9 @@ export const TestRequiredMessage = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -3823,12 +3802,9 @@ export const TestNestedMessageHasBits = { break; } case 2: { - msg.nestedmessageRepeatedForeignmessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.nestedmessageRepeatedForeignmessage.push(m); break; } default: { @@ -3974,12 +3950,9 @@ export const TestCamelCaseFieldNames = { break; } case 10: { - msg.RepeatedMessageField.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.RepeatedMessageField.push(m); break; } case 11: { @@ -6740,12 +6713,9 @@ export const TestParsingMerge = { break; } case 3: { - msg.repeatedAllTypes.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.repeatedAllTypes.push(m); break; } default: { @@ -6821,48 +6791,33 @@ export const TestParsingMerge = { const field = reader.getFieldNumber(); switch (field) { case 1: { - msg.field1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field1.push(m); break; } case 2: { - msg.field2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field2.push(m); break; } case 3: { - msg.field3.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field3.push(m); break; } case 1000: { - msg.ext1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext1.push(m); break; } case 1001: { - msg.ext2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext2.push(m); break; } default: { @@ -10216,30 +10171,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -10259,12 +10205,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 111: { @@ -12040,30 +11983,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -12087,12 +12021,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 61: { @@ -12457,12 +12388,9 @@ export const NestedTestAllTypes = { break; } case 3: { - msg.repeatedChild.push( - reader.readMessage( - NestedTestAllTypes.initialize(), - NestedTestAllTypes._readMessage - ) - ); + const m = NestedTestAllTypes.initialize(); + reader.readMessage(m, NestedTestAllTypes._readMessage); + msg.repeatedChild.push(m); break; } default: { @@ -13507,12 +13435,9 @@ export const TestRequiredForeign = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -13593,12 +13518,9 @@ export const TestRequiredMessage = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -14897,12 +14819,9 @@ export const TestNestedMessageHasBits = { break; } case 2: { - msg.nestedmessageRepeatedForeignmessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.nestedmessageRepeatedForeignmessage.push(m); break; } default: { @@ -15048,12 +14967,9 @@ export const TestCamelCaseFieldNames = { break; } case 10: { - msg.RepeatedMessageField.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.RepeatedMessageField.push(m); break; } case 11: { @@ -17814,12 +17730,9 @@ export const TestParsingMerge = { break; } case 3: { - msg.repeatedAllTypes.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.repeatedAllTypes.push(m); break; } default: { @@ -17895,48 +17808,33 @@ export const TestParsingMerge = { const field = reader.getFieldNumber(); switch (field) { case 1: { - msg.field1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field1.push(m); break; } case 2: { - msg.field2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field2.push(m); break; } case 3: { - msg.field3.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field3.push(m); break; } case 1000: { - msg.ext1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext1.push(m); break; } case 1001: { - msg.ext2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext2.push(m); break; } default: { @@ -21304,30 +21202,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -21347,12 +21236,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 111: { @@ -24065,30 +23951,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -24114,12 +23991,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 61: { @@ -24516,12 +24390,9 @@ export const NestedTestAllTypes = { break; } case 3: { - msg.repeatedChild.push( - reader.readMessage( - NestedTestAllTypes.initialize(), - NestedTestAllTypes._readMessage - ) - ); + const m = NestedTestAllTypes.initialize(); + reader.readMessage(m, NestedTestAllTypes._readMessage); + msg.repeatedChild.push(m); break; } default: { @@ -25649,12 +25520,9 @@ export const TestRequiredForeign = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -25743,12 +25611,9 @@ export const TestRequiredMessage = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -27196,12 +27061,9 @@ export const TestNestedMessageHasBits = { break; } case 2: { - msg.nestedmessageRepeatedForeignmessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.nestedmessageRepeatedForeignmessage.push(m); break; } default: { @@ -27355,12 +27217,9 @@ export const TestCamelCaseFieldNames = { break; } case 10: { - msg.RepeatedMessageField.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.RepeatedMessageField.push(m); break; } case 11: { @@ -30327,12 +30186,9 @@ export const TestParsingMerge = { break; } case 3: { - msg.repeatedAllTypes.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.repeatedAllTypes.push(m); break; } default: { @@ -30438,48 +30294,33 @@ export const TestParsingMerge = { const field = reader.getFieldNumber(); switch (field) { case 1: { - msg.field1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field1.push(m); break; } case 2: { - msg.field2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field2.push(m); break; } case 3: { - msg.field3.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field3.push(m); break; } case 1000: { - msg.ext1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext1.push(m); break; } case 1001: { - msg.ext2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext2.push(m); break; } default: { @@ -34233,30 +34074,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -34278,12 +34110,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 111: { @@ -37057,30 +36886,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -37106,12 +36926,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 61: { @@ -37508,12 +37325,9 @@ export const NestedTestAllTypes = { break; } case 3: { - msg.repeatedChild.push( - reader.readMessage( - NestedTestAllTypes.initialize(), - NestedTestAllTypes._readMessage - ) - ); + const m = NestedTestAllTypes.initialize(); + reader.readMessage(m, NestedTestAllTypes._readMessage); + msg.repeatedChild.push(m); break; } default: { @@ -38641,12 +38455,9 @@ export const TestRequiredForeign = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -38735,12 +38546,9 @@ export const TestRequiredMessage = { break; } case 2: { - msg.repeatedMessage.push( - reader.readMessage( - TestRequired.initialize(), - TestRequired._readMessage - ) - ); + const m = TestRequired.initialize(); + reader.readMessage(m, TestRequired._readMessage); + msg.repeatedMessage.push(m); break; } case 3: { @@ -40188,12 +39996,9 @@ export const TestNestedMessageHasBits = { break; } case 2: { - msg.nestedmessageRepeatedForeignmessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.nestedmessageRepeatedForeignmessage.push(m); break; } default: { @@ -40347,12 +40152,9 @@ export const TestCamelCaseFieldNames = { break; } case 10: { - msg.RepeatedMessageField.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.RepeatedMessageField.push(m); break; } case 11: { @@ -43319,12 +43121,9 @@ export const TestParsingMerge = { break; } case 3: { - msg.repeatedAllTypes.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.repeatedAllTypes.push(m); break; } default: { @@ -43430,48 +43229,33 @@ export const TestParsingMerge = { const field = reader.getFieldNumber(); switch (field) { case 1: { - msg.field1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field1.push(m); break; } case 2: { - msg.field2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field2.push(m); break; } case 3: { - msg.field3.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.field3.push(m); break; } case 1000: { - msg.ext1.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext1.push(m); break; } case 1001: { - msg.ext2.push( - reader.readMessage( - TestAllTypes.initialize(), - TestAllTypes._readMessage - ) - ); + const m = TestAllTypes.initialize(); + reader.readMessage(m, TestAllTypes._readMessage); + msg.ext2.push(m); break; } default: { @@ -47239,30 +47023,21 @@ export const TestAllTypes = { break; } case 48: { - msg.repeatedNestedMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedNestedMessage.push(m); break; } case 49: { - msg.repeatedForeignMessage.push( - reader.readMessage( - ForeignMessage.initialize(), - ForeignMessage._readMessage - ) - ); + const m = ForeignMessage.initialize(); + reader.readMessage(m, ForeignMessage._readMessage); + msg.repeatedForeignMessage.push(m); break; } case 50: { - msg.repeatedImportMessage.push( - reader.readMessage( - ImportMessage.initialize(), - ImportMessage._readMessage - ) - ); + const m = ImportMessage.initialize(); + reader.readMessage(m, ImportMessage._readMessage); + msg.repeatedImportMessage.push(m); break; } case 51: { @@ -47284,12 +47059,9 @@ export const TestAllTypes = { break; } case 57: { - msg.repeatedLazyMessage.push( - reader.readMessage( - TestAllTypes.NestedMessage.initialize(), - TestAllTypes.NestedMessage._readMessage - ) - ); + const m = TestAllTypes.NestedMessage.initialize(); + reader.readMessage(m, TestAllTypes.NestedMessage._readMessage); + msg.repeatedLazyMessage.push(m); break; } case 111: { diff --git a/src/test-serialization/message.pb.ts b/src/test-serialization/message.pb.ts index 5cda939f..222e7c26 100644 --- a/src/test-serialization/message.pb.ts +++ b/src/test-serialization/message.pb.ts @@ -134,9 +134,9 @@ export const Foo = { break; } case 3: { - msg.fieldThree.push( - reader.readMessage(Bar.initialize(), Bar._readMessage) - ); + const m = Bar.initialize(); + reader.readMessage(m, Bar._readMessage); + msg.fieldThree.push(m); break; } case 4: { diff --git a/src/test-serialization/test.ts b/src/test-serialization/test.ts index 84b22433..43fb29d5 100644 --- a/src/test-serialization/test.ts +++ b/src/test-serialization/test.ts @@ -120,7 +120,18 @@ describe("Serialization/Deserialization", () => { "fieldSeven": Array [], "fieldSix": 0, "fieldThree": Array [ - undefined, + Object { + "fieldOne": "foo", + "fieldThree": Array [ + 1, + 2, + 3, + ], + "fieldTwo": Object { + "bar": 4, + "foo": 3, + }, + }, ], "fieldTwo": Object { "foo": 4,