Mojom frontend: Allow non-reference types in non-zero versions of a struct.
https://codereview.chromium.org/1823563002/ erroneously disallowed non-reference types in non-zero versions of a struct. This patch rectifies this problem, adds a test for it, and adds new sha1s and new generated .mojom.dart files.
- We added the method AllowedInNonZeroStructVersion() to the TypeReference interface and we invoke that instead of the Nullable() method in computeVersionInfo().
- We moved StructFieldMinVersionError from user_defined_types.go to computed_data.go where it belongs.
BUG=#713
R=azani@chromium.org
Review URL: https://codereview.chromium.org/1819223002 .
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
index 6ecc466..3a38a55 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
@@ -1331,7 +1331,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9yaTW/bNhjHLcVObMdOnJe22dZ1GbBi3YBE6QsKY6cOXYYN6yFYi2E9earF2hz04krysN167HHHHfsR9hH2EXbcsfsGuRTYrSPrhw7LkJHU6oUxgQe0bMLU89OfDx+S2qnNSg/qA6jF71ndFGqx3T9QXyNWJ7YL13eg/gnqp1B/QuwysQcPjw4H3x0+/MKxw3gQB4PhZLJ/dzK5jx1E210l9qGq3VfkMzQ8s93hcBx8GY4i8vtnxD5OancPRzHc5zfgD/VziVif85teP109uTYol0tvXvf2Zte7Ard5MU76EcsrUthz6XPfqdrTsk5shRhD+AH5vEVMgffUc6Qc28TG8MysaRRabjC0XWsUBCMXWePAQxa2fTfAQyt+YnnBz4EVhcPZB9qPNfVxHKMojizkPUKOg8IBvUShxd8Gbe+J/fOcKPf+D/car168bNT+fdkwiIn6OjBBZ/VZfbR8okP+//4TONH/VXGkvx1IngU/TsSyQaxF7H5MPHyA5voR/fuUmFkiX1F3Iock3Yn+9xX+vwcM5v7vhejJVM2BlbI4NGvpdPFaayou5Lesutgm1qHxhtzX19jH0Rg5Mh6fL6guLgMD3n9eGudFFzT+vA2XJF0cYX/0PYomgR8hGY+9BdcF7/951IVRkC5oKnKWLvYXXBe8/zrpguV1TSG/5fPCBpfXJZW03GqCHsXSgbzIxXJO+8C2bL3UFPkdr3M+5c6an5eVV/fgmbMlB9OpYjlyiv91TfLqbVi3MEQm9/sSd9/PodHzRsr58S3jQGI+jeK7Lka+Ko+8sej5NPNfs3xa1zjI1r9DWOPK9LKtQRzcUazX0+6LiOPxWB7+MusxaX6h+ZpMfzcrHofHBcUhPk8/D/mpyMEsSAd0KpZxuLXgOqB+66SDHeDN+r9mqONxjcXkAuKx6vsLxLrE/Kn3LXHAjjHJ6BW66ZbIraz5ykiYr1Yh77LDUU01nq5qNF+xPJil4mn33cVx2jSy8cyap7OuZXk6d1uneLdgPi6L9x+kj01iv7O8G7j8CYH7L8jD/4b97RcwgI+X3zyQ6bVAZ20Y/3Au8WNnVk+6s/rZGvSzDv8Pjjc3YRxvnR0/lmvVrGsjfPuW7Hm1AUGVcaOIuGqk5nLzhozLqiZc6jlzMVNzuX5bxqWjCZelnLkspZxnItyXzjNdTbi0c+ZST6mXqSK+rMGcUDWXVs5cGqm5yOPLuiZcmjlzWU7NRR5feppwWcmZy0rK+DJVxJcNTbiYOXNpJqx/mN+P3cCOB7/YrmL/blOT+Js3n1YmPth/rOCztaB82pn4+Lav4LOtCR8jZz6rCXw2gaETTB+56GSAiXwuaBJ/8ubTycZnPsBEPhcXlE83G5/5ABP5XNKAj1HA/tRaynzHtz3pueZOyeeaok5knEzJ/tK7clpP0BHbH47iEPujgR2G9m8yXuxcr+z9PAP8Es/txH1rGc96ATx7CTwvgjY9FEX2CA3Gtu+46DTP94FxFfozSuS1kcBrC+ZKx47tOSyJ/uj7wFcq4mVK9oF7GfeB7wj7wEcpzmv4V0Z2oW/VayUirysl7weL5znPDD3fM/LRr9Lzr4/gcxXxrcj3jHQ5L2L8cYw8Gf9daFM1/3c9L/o/AAD//+S9zaugMgAA";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9yaz2/bNhTHLcVObMdOnMTNvK3rPKDFuh+N+wuFsVOGLkOHFYOxFsV6ctSItTVYkifJQ3frn+BjjjvuuOOO+xN23NG79dhLgd06cn5yWJqUZAI03RB4oGUTFt9HXz4+kmrkpqUG9XWo2e/jusjUbLu/ob6KLY+tCdeHUB9D/Rzqy9guYnv4uHPU/fbo8Re2FUTdyO+eDIcHd4fDB46NSLsr2D4QtfsKf4aGie2OTvr+l0EvxL9/gu2jtHb3nTCCft4Df4ifa9jalN/k+vnm2bWB7eX+m9eTz6bXTYZbXF5S92HLa1zi59KmvhO1J2Ub2wa2GOH7+PMeNgHeuedIOJaxPcL2HbZW33dRKxjZvut4KGi5/o9+KwxOph/Iv7ZGnhNFKIzCFnKfINtGQZdc4sb0TUl7d/5+NBfCuf3ofuH15FUh98+rgoGN1VPbnNad/LTur5/pjv6/FwwX8r8ibuS36xz29Lhgyw62ErYHEfbxIZrphfXvY2ymQp6srl4wdZquWH/bAn/fBZ9n/l4L0E8jsd9xUeV3MffmOCsKxlcul00f/2tOxAv/tqg+6tgqJM5gD752PCfsI5vH6dNzoo+L4DPtLy2Rt10fJB7J8ErTR8fxet+jcOh7IeJxunbO9EH7e570YSjSB0lJkvRxoEkfx6YafdD+6tQHq4tDJg8jvxeo/C2tZOXE6o0tFciHBg6fywGwVK2HnCCPo3VLp9KL5t1J49IQ5I8q8+oa9CVecsR6FSxH5p7LDU15dR3WKTE3k/p9jernKTT6tZBxPpScH1LzaRTdHTjIE+WVNzXFu46pKJ+O/dWcT69qvIvXsyewZuXpoa4h3jUE6+2s+xpZ4xs7Dids3iE5DtPmF5Kn8XR4a8njb8LUKvLvtzkPZfVgKtIDmaJ5fG5r0sPxmho9ED916qEBPGdxxhDH4xzEZBXxWPT9BWxVbN7I/Qa7YEUOztQFuqgq5LTo/FSU5GGkzE+bkEdZQS8nGh9XNM5Pcd4ap9hZ98mT4pFJXbPj81+o/6yryb/jLvLyb6r7c8+hBPO0qudwiv9zF9sY7jcG4YwhII8hXo1h33oMA3cM+9fjDagB+GkJ8vHytP4Nzhl+r0zrP6rAeWta/7UNOt+B57KbHDfWNa1bQ+fObd7zKcPzXWa8SIqfquLFGYdbN3kcNjVxyCf0V4aDmZnDjTs8DhVNHNYE/d2S5LCWcf4InTZ3/qhq4lBOiMMyHPIZ9TASxIctiOHL5lAS9LchyaGQmQM/Pmxr4lBM2LeV4bCemQM/PtQ0cdhI2KeQ4bCRMT6MBPFhRxMHU9DfpiSHYsq6I/bz6cC3ou7P1kCwT7arKV6KeFyW5FFaiIfjPRXw2FsxHlcleZQX4uFZnoBHXRMPI+M6OyuPzRQeu8DM9kdPBuhswLA8LmiKHyIebUkelcV4zAYMy2N/xXgcSvKoLsZjNmBYHu9o4GEk7OPck+SxlTHf8CyXe37XUHx+x+qAx8Wk9lfY0pHksp2ik3hfNIwCx+t1rSCwfuHxic+zVO9zGeAHuz9VE4wbml8+gd/nkvxqKfz2QXsuCkOrh7p9y7MHaJ7fe8B0GfoyJPj8IMlnJ4XPHsxlthVZMzgcfZH3WC8tiY+Zsv9JYmdf9P4BDOBJxvOJQ2b/s5PhfIJ+VaIJ9xa9TsFyvKR4H5Q9v3hmrOb7Mx56xj3f+RA+LyOOqXx/ZlXOR2LeToRcHu8mtFk272Wdj/wXAAD//+HD4J5oMQAA";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
index 245f669..c682f00 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import.mojom.dart
@@ -542,7 +542,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9SY3VLTQBSANwWUn4JVfuRHJQqjVceGy45XMNixHRmHgV6UKygl0jhpU5Iwg3de8ghc+gg+ho/hY3inu/QsSU52YVtLU87MmU2ym+Tst2d/zpknbclAuQYlfs7LUVTidkQLvjNCNQuPi1C2oDyH8geUL6k+o1re2y7sfyrsvbcaLcf1zaPcRtPx66a7W6+2TELe0jYrwnYluCg1fdP9Uq2Zl99dpvpY2H7bsZr+NfXtH76mdc+F9XumHzXtUirQ7wzqN7sfovpzJLhnqPJjUX4X6ej92bRkPLTo98Pylwofx/XQM1ZuE7HMUGW/xl16SnWWqmQ4YnY9gv7bVI+oGqeea9hOrWobx45zbJtG3WmYhlVt2o5VM/wTo+F8dQzPrbUvWqeHNn1u8UH0jEOreWQ1jz3DNz3fM7xqo2Wb+217cuydBvuvDny5PefA53cq6tfcH9e0qN1FuB8n3XGtSLg+pMqGeKewWd74/HGrAM9fgW8KueaC1pgvc4dUAnxV5yf383Ei5p7VxJwmFLnnFf15iuo9qpulnU0GfZVeP5Hy5q3i/jwz4LxV+aZ7zDcDe0B5p3TpqNxeMV/eKs53dsD56mif46Irrr9FxPNAwnMB1grxLkbIC6qLYb6ShpjvCszFfvPFdsyH/FBDfqSFzhPcj3V0nsByE3eCuK9JuE/D2vPB2aUc/DrtmZDjakJ+GvM/7f845CUcloBFiMM71zw5pbaJz3kg/eYxivyD2zXaIRe8zq1LuEzCeaZ9WiRkDvYWdIyM8WFry/2E5l0qZAffD9ZRv3n9CFETVT8jaB5jGQMXPpPED8swxv3m1i8+miKfbxI+ekJ8ZHFer+cZjyti8wwqsB3jCcUbbPyGQ+vQd+DxC+KNzPD1519uf16L+kWv4jlZ3KHDWEa5BgEH5juR0L53U1zO4wxNEmfoknNDqsv9oagYZ8TiZRRgYL7pAeWrynOoxzxxXMHtRDyvAgrMc/KO8eTnX56P6DXPNKxTWxu75fA5D/Hk1TGeUwPKE8cJWUV/ysI7ku9eOdZt59tY3x5QxVnE2PqMGojiqkHIt10Anz+SfFse7XsVLcivdMP1oMN97w3E0DKuOfQC5ryQ0DzoNP/M98WZDvNvs7ecf4vlOzF/aIi5L94R7rL8Mpa5LjlXFNc3breUc5CKE/r50h3h/S8AAP//UO1EZ7gaAAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8yYzW7TQBCA1wmF/qQl9I+0BRpoBQFE3GPEqVWJSESFqjaHlkt/DTFqYmO7UnmDPgZHHoPH6JFH6JEbrOvZ2B7vpmsrMV5ptP5Ze3e+nZ3dmRLxShHqNajxc1aPohq3I4r/nxEqFXjcgNqE+hLqH1A/p/KESmt/u37wob7/Vu+YhuVop9WNruG0NWu3fWRqhLymbVa47Zpw0ew6mvX56ES7+e8ylYfc9tuG3nX6vPc6fEnfPeW+39ec8NBuyh7oXUR6u/d5V/8R/95FdT0a5tcohO+vpvtzZv8Plr+0sHlcDzxz623CL7NU3K6xSo+pzFERTEdkXNOg/ycqO1TUttHRVOv81OjoXc1SO8ZXQ7WtE+/CPD8+009UnU2ZrR7r3VO9+8VWHc12bNU+6phn2oHXe9X9puP1UwaerP8L4PErF7ZjZn9lJTzOGtyPk2Qc9wQcH1AZc3Wvb7Y2Pr7fqsPzF2CLXI5VvzXmOUMllwJP2fXH7Hic8DmXFD6XCUnONUl7naJyl8pmc2fThbxKrx8J+bJWUXudzRhfWZ6FAfMsgk9v7TRvDJGNl8+TtYrynMsYzzLap3r6SvrPBuJ3KOC3AGufvwsR8ozKYpCnoCHmuQJrbdg8cb+lgJ0pyE6UwP7f869QXwv43MaZIM5rgv/MgC95Z+xSEE6b6sYd/2pKdojt6xrVcfWuCfReAt0Der+xtG/ndHT88wGUYes/KrCLkkAPzOsPs6N8Mn+2LuhnEs4h3imPkHnYM9DxL8LN9Sn3UlpvueB6U8LnjBoa1wiRK7L2RtD6xWUM5vNCcM5fhrkeNqe4PO4k5KFI8vgu4FFOiUe/dZbj+O9iTH8Ud32xOCCyvuAFHsd4SvFBBWyB+RsTJvgnxAe/8/3Pr2y8FSVsH4OKt0RxQhnmLszRDxAwz4mU9rnb4mQWFyiCuKAoOMfmEtplQzIuiMSvKCDAPAsZ4SnLLz9gfjgOYONE/HoBAOY3mXF+zH+yfMCg+RXA72xt7LaC5zbEj72O8JvKCD98rq9I2ksFvhH8t2c4w85nubrdp4KzdBH/ihrw4qD/kc+6BB5XgnxWBe1TDcXPZyTheBhzn3oFMa2IYxV9gLkupGTncfO3bB+bjZnfmhtyfiuSP8S8oSHmvJhRzqL8LC7zCbnuSforNm4hVz/VxbXjpYzy/RcAAP//xbchW9gZAAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import2.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import2.mojom.dart
index 8803e43..209e2e2 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import2.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/imported/sample_import2.mojom.dart
@@ -288,7 +288,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8xXzW7TQBBeJ4QGQavQQlsqfsIBKVyyiFPFKSVERGqFIppDe6rSxMSLbG+wXSHxBDwmj8AbwDg7i5yxnQ3Q2hnp0zQ7a3vmm53Z6T5T0kD9CjVd17pONN33HXUTUE3Y9Xv7qJ8B9gDD80Hv4rh3/kZ4MxlE9qTdla4M2FOw7WbaT8U3e9nzQ0f4U3aI39d+tRJ+WoAf1cXfnY3seObGhN9J+QWi4zpMrMW6w7JlE1ADqChVjFsAEn7Kj3v4nAeA8Bm/CgPuyvHI5VMpp67NHenZXIx8V4oxj75wT36WPAzG6o/Z1aUL68KP7ODTaGyH/FL4E2Aq5JEdRiEPR97MtS+UH6/b8UMe8lFJ+HFmLeZT89q02FL5W/76Oe+5i3n92Hs3/30A2E7x19bmFI+bGE/RPJrO+6p8WtfMpz6Pb0+OusegHwMepPnU5hSfW2vKZ5P0p7r1f+cxr57jurwFUF2JsYfIKWlXKd7uAzbWoJ5byEuHxK3tNbaamPik0jKcx69iEjkZvG3j3VM0b0XxYxn4ievtNsCxxdSJ0vzslMRPUfWmz4e65TPuTzRQXnZLqrcW9gfNT6Oi9E+cP85q+fVXS/Co4xhYxdRf6IxmWX1rD3tXWeeLEX+aifwunINTFUD+PaE26PmvTu9fMrdSiTm4M59DusOjD+9Perj+EvA8/3ttun/VvPetm+0rOu9jnEtp3vdL7issw5+sedo0F/xrvndw9iTjEHsBeJL/vT87TXm+rvujYshzA2OPUxcJ6dM8P1rzPA8kvHppntWOoviuGvjW82GI8yHl+6Cke8nEN51rTf+P/w4AAP//kuiZJEgQAAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8yXzW7TQBCA101DgqBVaKENFT/hgBQuMeIUcUoJEZFaoYrkUnGoUsfUi2JvZLtC4gl4BB6DR+FROHKDcTwbuWNvNolqtyONNvaud3e+2ZnZ1FksNWxfY0vfy7ZKWjruB7YN0FKiX87bx/Y56D7o8PSkd3bUO33L3anwQ3vc6oqJ8Nkz6NvL7B/w7/ai74cO9y5YG9eX+2om9mmA/ipdfa5Wsu35Q/adlH8g0q524l3Udli2bIGWQWMrYxu3QYn5qX3cx+8+gw5ATUe4tulfjoXLPds3XfFVmIFvxT+ml+cTbpncC23/y8iyA/Oce2PgEpihHYSBGYzc6cQ+i1d904o+cuf2byTW7RtX/TfnaLCFsiqvvmKee+jHT733s+cD0J0Ur5bsTnHbQnvy5qY7z8vyM66Znzxv744Pu0fQPgF9mOYnu1P8tm8JvwbJN38lz9L1xmcUZ5uRrbMsw9gjZEjST4rTA9DKDcRnHQ9Mh9gp+8tsOdHxo9LUnLdvfBw6GZx2sHbkzWlVHptr8jA0PKL4uQPq2PzCCdM8dgviMa9zJI4YOU+qOPtZyacOxtU6ow5iB+W1V1CcNfFMNJKQQH5jvmmW1XFXTnCT++4YxcRd4IymWflpH3NU3twaZF/0XKX8PIg3rM7/8QB6fptkXhWvyOa7s/tDd3j48cNxD9+/An2hXq9Fxy/r57aRbz6Rfrbw/kj9XC8on6j8XFfcc3X1fV3/7uIdkVxj2EvQp+r15iN1fqVSXdOvGxq/1nDuibBGIRce9evjW+bXEwGTL/RrPGJVvrU1+ZY0fOW9LsB7HeV7UFBd0fGl90/d/+BFdT1Zv/4HAAD//+V0OKDoDwAA";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
index e2d9c76..63ed499 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/math/math_calculator.mojom.dart
@@ -790,7 +790,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+yWzW7iMBDHQ9jVAvvFfkJvlXrhUswR9URVIVWqKvXQCydqgoFUTgxxUqlv2cfh1jrNGIxJCgUKCGWk0YCxk5lfZv6kbERWhFiDqK/LmNOivq+ufM8o+45h723rptm+arbOHOwPqheYWgHFPvPKsD88l9XOqfeRlstE8dKYt2dhso6Gspa0P7TfwgvCpxlF6yXhP4Vr6c7V/QXOu8J7wlHAPUSZhSnqM9anBA2YQ5CNXcpsC/kj5LB7hrhnRR+GQYeKddv1idfDFuGoY7td2+1z5BPucxQm0LYmCVTDU848f8nrL3A0gKup/J5VeN59iuJTPooV7TpjCcic5ZXEsRbzLNTr6vZd+OeQOyXYi+mnHNx621z1vhsbi+tX+06vv5ZQ/z9g8Fr/qUdGgcgqhoO0bXNImsOP4vFf+A+FBx8yl5P94aHrWiNG9+TMLWPLzpG0RXP0gGlAEuaotANeSXpSyc5yiuOQWUFPvoK+nXe7sf9P+QPXkz/AQNSvqEk6P+vOTx7eAw61b8L3hW+TvpGqm/bNJvrmZA9113yDg7mC7hbh2VwH1LeH9FHnUDhw3S1DrbJ+Kb7p/Kw3PwXQpl33jQ7mvX1TT6j/SPiv2b6Zim+qvxvpn8oOeL0EAAD//+86IftYEQAA";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS0/CQBCGohHwhU/qjcQLF1mOxBPGkJgYEw9eSExIaVep6cs+TPy3Hjl69KZbOwvL0hVoQNB0kslA2e3O9/HNV5AzUZSg1qHy12nNc5Vf12DeZ5l1FVh7175tda5b7XNT8Xu1S8VQA0PxbVeG9eG+HLePPYfGB9SrzHh8kqA4msw10fow9kkWSQ47iq6XSe6S5Nodw70B++9DjCRRzzYxcgPNNnULu8i0n2zkuWr0wgm6hq4i3fKx+6Co2ENd3dJ069FDPvZ8D4XHddTBcbVwlxnHN+XnEHjLAI8S83mO2eesRfWtENUqd58+/X6lUX5EvNVjuGfvy8c2yfWQZwMrbgyePPS+aB55XfW5OklXPN66AO8RYP7Ge+bi54D0FYObxqJx5wXzKQv6F/FEBTYvno5J7jA8eY5teXh5PPH8NGP8jc7aNDHt/NCYND8vihFgwfyUl8APq58s04/IXyq5Uf7i+Mkm8JdN8LsLTYt9PhWW7C/znpsDwEzwMu6Szs2sc1OA5/yqzM1v6Sf83bA10A913VQ/SfRz+od8V/qBHymB75agp5vA8HXHeOX5Kf4z35UBG8VLzTedm9nmpggetKq++879H5pVPw0BLyck90b1MzTf1H8T6ai6Qjr6CgAA//8eGVbTWBEAAA==";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/examples/echo.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/examples/echo.mojom.dart
index c13cba8..4153ab1 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/examples/echo.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/examples/echo.mojom.dart
@@ -406,7 +406,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xUT2v6QBCN/n6l/ywU24LUHoRevNT1KDkJRRCEUrCHeiohDJqSuJoY6Ufpscce+5E8+i3a2TpL43QDC62eOvAcd82+zLx5bsVZxTHlV8p8v5VZFxB7tL5AnCIi+ShdF568aBJC4rodfyRNz3PeJuVLRBVxN7jtPPQ6A1cRNjRfQ9Pl8rRz6rPlrdA5df5f5nyNve++sMoTyl32fhXvGM/0/SWzp/KbYw5ed83Q525m/wRxiOhDPA98uPEisJpHCfEfodfniDI9b5Dlm86qvgNED3GNEGkSi1D6XiiGUg5DECMZgQi8cSgDX8ymQjGLJPaFZheA7J8fDfVbZFU3r0OvS6Rbno51pueC8rK4rn/XMBM1s6ZhL+tbHmXSR9Xdn8XBeGjWcR9R3ICO3DcL52d9tnL61L756vMqhmkKyczcr47f7pfPu51zXy0du7DVx2H+4nGE2EHMvTCFnPmfbUgPJ/Of2JYfqnQnrfkhmchxAn9+sPRDfQt++AgAAP//upqHH/AHAAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/5JggAABKL0CSqOLWyDxGYGYA8qXAWIRIM7Nz8q3skqtSMwtyEkttrJyTc7Ix6Ye3VwDKK0MxNJAHBIZ4Brv7RppBTJQD2aeHsw4nOY44HAfseZKQPWB9DMj6VdAs8+DEUInQGkPNPtB4D8QzICyFyCJgegNDNgBursVsPiTHUlcGIi5gTg4tagsMznVLzE3laj44AFiFiCG8aWAWAiqHkuwYIQzyH1cQGwJxIZArJ+Rn5uqX1Sakp+bmZdapA8yR7+4KFkfZpZ+KtAsMKEHksslMt2g2wvj80DDCVe4aaCF3wUo/YAJNbw9sMQBKI4MsIghp1N0IAQND5C7g0uKMvPSsYcbJxAzUSHc0NMFzH83GMnzlwUOf8HSBcJfukWphaWpxSXY/QcDlPoPPT4dcJQ/NxiIA8SGBwNa+kEHvEDMCsRliTmlqTjiV5RK/mdASuO4yk8GpPKKnulCGlr2oKSL4oL8vOLU0XSBI11oDGC6AAQAAP//tx4CJeAHAAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/rect.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/rect.mojom.dart
index 07bab67..8f30c4b 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/rect.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/rect.mojom.dart
@@ -139,7 +139,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9yUu0/DMBDGk5ZHy0tMwAZjp1xGxNSlEhJLhVgqBpS6JjFyYohdAX89nJOrFLmO0ilDP+nT1deL7/Jz5Jug1iXFmKKb38SRE926+8Y6bNTdoq/RL4v57O1ptnjI1YeKDNcmeubMVPuEnufunD7Vnw09Btv6Q8XOPDZn4zTw6wx9gK6GQV2hL9DOmFvve0xm6Fc0rHUJUrFEQqpUKjlkKucgkkIqwcB8gd0RdMnqH5/rpcS8KAwv3xPGNSxFsRJFqsF21VBi28iW5lW/Cc254RITj+mgjvMhrT3nYXUY7KYurq4mLfkxHdlPy/cyIvfFry8u4Y5cflu4jPeUy6CDyzn1/BYrk3m4nOwpl2EHF3sXHaEzLtLMcw+d9szlPwAA///k5kpDOAYAAA==";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/5JggAABKG0ApdHFYTQHGo2uzgKJz4ikTh6IxYE4JDLANd7bNdIqNz8rX68ktbhELyg1uQRsDiMWfQpo9nyAuZMVQnswYIL/QGCA5h6QGIh2YMAOeICYBYjBjgECMSDmA2I0Z2L4lx2KA4HYE4j1M/JzU/WLSlPyczPzUov0Qfr1i4uSIYyC0qSczGT9zLyS1KK0xOTUYv2kzLyUzLz0Yn2QHcX6RUBL9EBKc6Hma0DdBQsHBUYozQSlmSG0A5bwBwFWBuIAoXBEBxo4xDmh8VeBI31wQDGtwovUcGAhMxwYiQyHShzhwDnIwoGDzHBgIhAOvFA7yzNTSjKwhAPXIAsHHjLDgZlAOIDKEjYgzkjNTM/AUo5w0zgc0MtVCbQ8AOMDAgAA///b2cZYEAYAAA==";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/serialization_test_structs.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/serialization_test_structs.mojom.dart
index b33beae..4dcdca6 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/serialization_test_structs.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/serialization_test_structs.mojom.dart
@@ -588,7 +588,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+yYzW7TQBDHY0OVUIoaBBLhQyIUDhxQluZLEadeKlVCgkpwoKewcdxk0cZuvY4EPAlHHoNH4MiRx+DIDXbxrORsPNSoKF5HHWk02dXIGf/n5921G5XE6hCfQjTndawZ0cybOknck16VPoD5NxDfQ/wE8QvE7xB/QtyRfkf666PD/eHz/aNns/Bd2Ip9EbdexdHci3dz5rVz5nVy5nVz5vVy5vWTvCfSH/0t7+XxiznndMR9oXWsgu5K8mmqD2r81V0cDzYWxz+qRv7m4vjztcVxHRrcNPrehH5rO6gs2y9pmqtBag7LV7YN96ebfVv+vi4dwWCJwyr4B+mn0slcRISHHuVkEoYT7pNpOPMJowEPmUfiU6KuTETkJT9O5iMu51kQ+9Ex9XxBRiwYs2AiiPp3QYQfMcrZRxqzMBiquaH4U5FoqQvMjH7o52XP0CFdbx47S1/THiPzV6AuhuhXAy9av2J4a6O8tRG9rpaIt8uqfme1vCl9Lql1aswz9dsCJm3QL23F8NdB+esg/G2XiL+NAvirQ01JzcPdrPPNpkXrXcWor4Hsi3nPScVw3EU57iIc3ygRx24BHG/B+j2mMc3S7ybobRPH6j71c19bS857KOc9hPNbF5zn4vyEsihLvwawbhPnbmp/W0/O+yjnfYTzuyXi3CnwXCxrztTvXknOxYN/5O/A4O8too/mLfMjiLSHwNgZn0uWdL1vCZdN6L+u7xB0/OaW6/2tacn5WdfjrPj9wznn+8cD0NiW/cz5z/vVqtZb95zr7Y6lHP8OAAD//43JejSoFwAA";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+yYzW7TQBDH67RVTClKEEiEDwlTOOSAYpovRZx6qVQJCZDgQE/GSdxmkWNXXkeqOPEYHDnyCBx5jB55jN5gF8+i9cbTmgR/RHSk0WRWo3j83593126sRVaH+AyiOi6irkS1bqJFcY95lfkAxt9BPIX4GeI3iGcQzyHuML/H/O3h633rxf7h86n/wW+FDg1bb8JgNgp3U9a1U9Z1UtZ1U9b1Utb1o7qnzJ9cVPfq6OXMde2h61ChYxV055JPpHng+fdKPG9uxvOzajz/uhXPT2/E8x+1KDeUeddhvptwvYO1efvJTHA1kMawem41uD8x2XfZ75vMEQzmOKyCHzO3mJsTf+qYwWzsT4nnBCb/H5MGo+jHyWzokpFJvNAJjuyRQ80h8cbEO6YmvxY1qRMQ2yUf7ZD4nsXHLPr7+rTF/2D6RyfxXOwp9yv3lcYu01G1JjJ+DfoiiE46eFE6NaReNakvjLNBppy1Uc7aiH7XS8jZhhAzR864Dut8HRq7iTptA4t56iTbstx9ypS7DspdB+GuVkLuNgvgrg49Rd1au0nnlq0cdTIS+pPnT93X0p5zluX3S6b8dlF+uwi/t0rIb6UAfrdhvR7boZ2k023QtQh++f2I51pX+Pq/+O6hfPcQvu9c8R3j+8QmQZJODWC8CL4r0r5Vdr6zPff2Ub77CN/3S8i3VuC5l3WbqNODFT33GqDj+UY6vQ4U7t4jegnOEj9qMHsMbF3y+WNO54c582jAvIs+Bso+tCrvZUbO5+O6xN4i7xH6gjppS75HPAIt896ntH+8D/3tullfUO/KkuvmTsFcXrRurkvr5a8AAAD//6YwlwxAFwAA";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_enums.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_enums.mojom.dart
index f237eca..50939fd 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_enums.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_enums.mojom.dart
@@ -91,7 +91,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/9SSUUvDMBDHm27CRB+GiooOHfiyp8bH4ZMKFcGHiZbBnkZX44y0jTbtux/Vb6KX9iptl6GFii7w7+XC5e76u+wb2eqiPUVbPc9tp2KrcecFnxTiTkCHIGdya09v7MlZIJ6FFTMZWw587DAJvvIRTb1qnQ7J7LWxuD5g5f8xLJwti8/zqlp5Mwew3wItaXOhnxZoDcRBLogmMqK+8FyfzoWY+4w+iYBR7oa+4B6NX6nKTGXkZZuXZObDOQ9jFj26HpN0xsMHHs4lVdWz75RBfWmpC9iGMQC1QX3035DLu4nzaJfnOkDbJ+X+h6TMoymum9ifY987yj8G7Wm5WmlIlau6a/4B15++1y7O3jDqcSYNc17HnGP0e6AdPeex7v22cVb/nTOpydlsmPMG9nE1GqX+EWhXzzkN0XHeXgHOZk3OrV/ifHlx9x3nNETHubcCnHNunwEAAP//gLtUY4gHAAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/5JggAABKG0ApdHFYTQHGo2uzgGJz4ikThmIpYE4JDLANd7bNdIqNz8rX68ktbhELwRIuOaV5sLNY8RiH7o9H6C0BwMm+A8EMH9YIInhUg8zF2QXzDFSQLYQEONwJoZ7mIGYFYjDgdgfiPUz8nNT9YtKU/JzM/NSi/RB5ugXFyVDGAWlSTmZyfqZeSWpRWmJyanF+kmZeSmZeenF+iC7IGR8KtC2Yj2QhlwGDaCZLECsALUvgxFCb2CC0D+YUeNPAxZ+jKjuVGBE9Te1wo8H6r4Q1+AQEF8eiMWxhp8eWAl6+IH0MtEw/IhNfwLQuGRgIC08GakcnpxQM8OgfBkgFsEenmHY0iMLNE4GS3gykhieTFQOT26oO9z8/cF8OSAWwx6eYCXYwlN4EIUnE4nhyUyj8HRyDCIUnmAl2MJTZhCFJyx8AAEAAP//NXnBphAHAAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_included_unions.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_included_unions.mojom.dart
index 4697bd5..bf5bda8 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_included_unions.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_included_unions.mojom.dart
@@ -104,7 +104,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/8SRMU/DMBCFXZCgDEgsiGwwdsp1ZmKpBGLpAEOmyHFMMDg+iO3fD2fZSMHBMHLS11effLmXl4rFOku6TZr3v3SdaX7vZnZeze5tiCviodnv2vtdcz3iC9ZOWlffGaF9L/tHo9BUaS7MH/yyp1pFvWXL+qDaZn5CL+ie/VznxCnxzQydL4kLomB34euYOCIs8UqAtxNoFFzDgDhoCc84SlDcaFQC3DuEJ4OdRPzz5jtNfWWcnJ64kBY6ZXplBgthe/xtVfLQ+mDC1mF0LObOUvZzn4fZ+/+VY16bQv8k7eeF77ZOGf1XPp8BAAD//x7xS8HwAgAA";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/5JggAABKG0ApdHFYTQHGo2uzgGJz4ikTgOIFYA4JDLANd7bNdIqNz8rX68ktbhEzzMvOac0JTUlNC8zP08Cqg+knwmPPRyMENqDARP8BwIDNPeAxEB0AAN2IArEvECM4hggXx6IxYEYh3Mx3MUOxGxAnAjEkUCsn5Gfm6pfVJqSn5uZl1qkDzJHv7goGcIoKE3KyUzWz8wrSS1KS0xOLdZPysxLycxLL9YH2QUh4zOhNsaXgqws1gNpzcUTzgzQsEZ2FzOafwmFGzrQwCHOCbU/EVc8QcOEXuEBCAAA//98lSXf0AIAAA==";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
index 98bbcf2..f3208bf 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_structs.mojom.dart
@@ -6234,7 +6234,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "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";
+ var serializedRuntimeTypeInfo = "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";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
index deb830c..782c7fd 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/test_unions.mojom.dart
@@ -3441,7 +3441,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "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";
+ var serializedRuntimeTypeInfo = "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";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
index 6cb130a..cea781a 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/validation_test_interfaces.mojom.dart
@@ -4498,7 +4498,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "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";
+ var serializedRuntimeTypeInfo = "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";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
index a872df6..951b229 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
@@ -1200,7 +1200,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+ya3U4jNxTHZxIoX0WkfCUtLaRUbREtmahVpSjcgEQqqtIqu6wQXGWHiSGzSmbCfCC44xF4FB5hL/dyL3kM3mDXJsebicfO5JOZCCwdmRgT2z8f/8+xRUpqlATU91Cz7UXPZxnbJHz+C9sWtpr5zsznHWQ7+fwlsmzdNHTjPJ/fd2uq8RrZpmtpaE911FPVRpzvYcfbh3ob25/Y3pwUC6V/Cyd5MlCGjJNpDpMRjSL+/g9Qp7HFPb/fgboCdRbbRuD4e6iuWk4NGU4G9/0lsH+hVq+a1wj1v74czJ+ua4PZp+JY8zPpdzvF55GWW7l7yydcsgwf0kbqY4lf5rFNY2uSabT/im0N/KUNRt/8ZrCNY3PJ32JTXNtSqqamVpVz0zyvIqVi1pCiq0bV1DXFuVDICIptaY0f6u5pFbfrhoOsM1VDtnKqG2U8qK2QWdhKcxol0lDSqjrZTvLHNeAV88znRm76h5d7TpbaliC+uQ75zgKPw92DwiGcwZ+DuWZof5bv17C+sPh2e8465S4PmPsMnKO9wtHj59+w/dQBd9qf5T47YtzTjJ6m5f78uyjgnADtpkpJfPsHEeemnPr4knoiRL6++AK86rFWPc0x856WOitBvNkial8A30aAsqSXuf76DbapEHnyeBGkCXmwvGRGX9hC9JKEVkOtIR6n+ZA5JZj58riR+JEaMLdYgJ/RvKDM5AUsvwXQxjDPLatHkqddlN/0q6fvYT8emHxsh+F+x+SxVE8f2uipN99Oc/LiCU871YNDZF3qGvof3LznfJ9o9xJZj+D3f2DbFOm7OP31+U0S9iUsv+mVT0rgZynQGapJMYgnG9BO+2W/gnvLXKP+uNyqX7TfJPjVXby38039LCiO7JbLnqjsX18q5LyH9f9JuT8eOQGPFWDi4bFloQsXT4nLhZYw44ZXJ0RxY9DxVgqItzQfpPkJz5+SEYwXKUE+2+07wVP56/fYFn3+atdNw0aj6q/dlEH56xzEU9vV8KJsrv5thshNFBfux7q7N3caF5Ygn3vlIuu6zX3tu2cSF2g+1MLDExmids7Y96+sHM79VXTepmF+cG3l+lUyYvfWXnSJvQdcCe6tN33cA+Ke76H3nP9046ixwlb/tZBj6egSlc7wypFVqlu64Qj4K8/gXK9iW+acaxpBo36ub+XRyvtWIF8J26/kIeV9vH0g+/VWHo5uXA1ZNxbh7YyRC4m3r9sR2VfCi85rQuLfq4/pwsdb38E65U91Zdi6/S284e46jqpV/n7chSLdBM4+rEYsH0v0qds7Ar4/Ahsfl5bb+kteNui8bBXOepTystgQ3sXlgHfxTnWR8Po9Iu8cPF18qvO6Djkl77w2Xyte3isG9V6xBn2i8l5RBL+qQKCN9xhv+813YgHxNgncDnTboVndP2U/3/Vn8u6xBkwYHl+ibNTOq2j/h8UnDWP4+TRUbRT1LBbCvZH+n46OzxovDqzD/6JF7X5B87PPAQAA//9D9UXsmCkAAA==";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT4/bRBS3vYFNt1Rd+m8NhV2zCIgKjVcgpCi97EobtIiCAosqKg6R15kSo7UdbGe1vfXIkY/BsR+Dj8CxR44c9wYzzZt6Mp6xHcexs1JHeprGmXrm/ea93/vNbHRl2jah/xt6/nmf+axia8LnL7Hdx+b6v/rdboTCqNs9Q0Ho+J7j/dLtHk1cy/sBhf4ksNGhFVknVogE7+HnO4L+AbYvsP34uN8bfNN73CUTtck87XiatmwW+fv/gt7AtsZ8vw/9CPo9bK3M+Q/R2AoiF3lRG4/9OHN8zx2f+k8RWty/Dqyf+tXi9sloxJ/JuKMrYjw21Vnc2fYfbnscPuQZ6X9SxO0Gtg1sMTLT559g24F4SYExsb6r2N7AZmP7GZs58l1kBpOh7zoeCkzyPjMM7Ok/xpOTU8c2HS9CwRPLRqF54nhDPEVokjlDM550QB4M7FOHbB75z+4rfDRm/rEaxwOLc0tVUlsWnp2ceF4D/48PHvaOIec+ysaxTcfzeL4F/lWF57x5lBdntWScr0KeHPYevfz8KbYPc+BMx/M4X1txnA2eHwHQi0YxXPsSXDeBiynzkdh9X4ZrTI9JnsK2XiGefH3YA3z62iwfdrh1bij5Wha+fJM9vwmxiwC6gTMUxuPb2K5UiJ8IH5VNXK41C+KjcnzBN8J3JKQ9y0UiXG5UjMsmtz4RToTvm6o8n4rgpGXEEa3bQ65u83jdBG6rMg9F/hsZemNePpTpUgV4wODmpd8/h316wemofW4/nnP6k/Lmvym8ya7HEOjZdeY55YFjFJw5NvoOwr2wTiccfZv4I/n+c2z3ZDwul62JeNqC/asqnorioUviTwd+oVykQby04Dkdt/fmtP/9OsTLnVneouMuoP9zrVie07jKqhcHwyFTbZP+6RXrFz6+KQ7nWjH/OxL/7wIGjP/3A/TbBC9KiANtVdYHNu9l9UFRl6MzWhk6juoMUbxsrUBd0CW6c97zeVo9UCU8wMatXnLcvoftViJuw7HvheiyxO08ray4vQ51MpzY2K1QyHP3asRJFleyuvCiMd/5N29duA267vsJCp6mnMPeXZG68MdauflF9c6M/0xlqDu/+HspQ63nHCrLsw1YHxw/hXGzVfP5M601JfdKvI4/l5w/ny2g49eY99DzzLeO92jq42x8BigKHHSGBk+w7ygYjAPHiyR4m3XGZwa/6Zxm1jPqabNRbr5vY7sjyHdaUVct35+pl0sP3gW9UnWdUJekB0W4k/3pq8vhk/Ml88ktuBvjaEQR7eODmvaR4EPXsc6dSxflGV5fHQFg/zRm78vy7hvlm2XXgXfgLvcgiix79NXL3evTzRPs33bNeo06NCqo1/YleH4AWCRwmDnNv9Zti+q2beCAOnWblnIfvujfDWR45eVHgs9nNd17iPgx7XyZprMoIIZWbp7ughYV5Wl8e/H6/qLo/cUOjFn1+4t9iK+xFv9NpUh9XVQXaRn1dQvwfOiEEVV/Xw+TuO+uyD3IhVLuuWgHMOD8f1VV687TZg6eY5sMt07J97MGzJHEbcpyl4HftBrOkfR3Nw7OMVEd2IXfjtV9/tjIEXcs//0fAAD//2MgYMVgKQAA";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
index 1388572..2e46cb5 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/regression_tests/regression_tests.mojom.dart
@@ -3292,7 +3292,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "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";
+ var serializedRuntimeTypeInfo = "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";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
index 64e8a3a..08a0486 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_factory.mojom.dart
@@ -1764,7 +1764,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaz1P7RBRP0n7ni/oVC84XKj+kgGDVkVQuMpw6owiMM+qIBzhhWrYYbJuSpA7e/BM88idw5MjRI38SN90lb0v6stvUCe2mtDuzszS0ydvPfj773r68vBa0HIw3MOLrO6HPOu1T8HmR9g9p96xGq052d3+wGuTsx8oFqfrC7+P7lmBch3v9cvLT3un3eye7wQ238P1k97mDsUh7lvYCsvsYxhaMK7TPC573nVX1HffPvu2R3ednctkmnv9oR174f6/lND1yAPayeWQQzuzzfaEb9+PPuz/fA4AFhEun6cFwoEXbv7SVEE7sGhvLmrh9QPtr2jlOc/Tv6c76d+CLrA+z713aG7QT2s2255p1p2rVzXPHOa8T8zenQUzbatYdu2r6l2bDuXBMz60Gf7TalTq9bjd94tasKvHMit08s5vnnulTnD0zMOC0FhiwxX7UEPCkCOMS7a9CEBmAdzbEy1eh798A8crTwfgwE4x/57vvy9fhAcbbbDd+ceugoXUoxqzDt86R367VIvNchTkNG2/Mwwct2fxLkvnPAwYw/y9d0BvGgTcVvDNCdlyBDsuC/ZTxbErX+mr94qchvsv4I8ON8WdWIX80ZE8e2c3317j9V4R3dgB46zF4v4HntuwWEfkvhvdXCvDOhezXh6jfPDz7Sb+BP5zotz/95iAWkuG2Bn+nTb/cbh7/xMVHZVn8qUi/PrnyRfpdAw2r0i/mC45DdjLd83yuOISvJ+h4G+Oy/sLjELSPbfNAJC37GD5/Dcsfagn9IePNpmI9GaJzlZ6MRzsSPD6ifaabR8EGKDnvpplPukI+yfZnxqevU7g/Y5yMAfHqG5dYPsHZiyhOn6Rkv55KqDNZ/mIVMIng0TlBjp7eVMSf70G+xKlcSHm0qpBHhiD/pEGuktmOldBvvk+m338gvso8s355fAzn2cNGy3F9cnbIccG4b7xw/RbhWTI8RjH+SqN+N+FMkxb9lkLnrAXabVj4rQgDgu99AZru6DnmB5i/uYT8PZDg/hnsiz34O7JxX1p5vD9GPI7zT9ln9k/LtL9l9lm/E5FFeD0+feH+aQMwEeIRijEnuk6m66Li+FJT7J8GxV+2X37cg7/cOU34m5y/e2PM379gPa5RfUIZ4X6N6lI4f+965KPDfCgI4qjXgvPgEXH/sKuPCYG+6lpk58gFeG8qOT5GeLCoqC4ibn75Hu9vjFAqFL8nO870fg+haYOthzgi/uMaYvuXxqQeAuafunqItOeNmyB8EW9mUvxej4tRH5Ce9iV6Wh4TPe2nVE8y/zbo95xPeKSrXmNU95dl4Jrq/SXp+eL/1o/y+ixUP8ovR3B6A78bNk6RemLA5VfYd28zcr5p2lON6bD49g7w/EqSP3wfNDJsHEelDm8arqmuwxPhZQjy0knxMtD5D7dZfj5xXHLKQPPEvGK6XlEYD+gwvw6vBH5JH2J+IJMwPzALeRiVeI5Sfqtf/4PrD3mch8oOI+vxVpH/wefroj5a/mZu4m96+pv5lPib/wIAAP//74JzfAg2AAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT3PbRBRfyS41UIITpo1oG+q0tBgYItMLmZwyAyHpMAMdwoEOh+A4G6JQWUJSmHDjmGOP/Qh8hHwMPkaPHLnBbvTWkZ52LVm1/jjjndlZ/5X2/fb32/fe6hkkbG0Y/4IRf74eea+x3oL3d1h/j3W/b7vP6cbGt32bHny3f0wHgfT3+Lo9GB/AtX549nRr75utZxvhBdfw9VTXOYexy3qT9Q6a948wujDeY31Zcr+v+4PA8f7IPB/Vdb6nv51QP7iYhyH93nedoU93YL7cjgbCmb9/0YnjbnwSf/8zANhBuIj2D4w7JNn+Y62HcOKf8XGTyNu7rF9nXeB0i71eGK3/CL7E+vD5vcX6T6zvsm4eOTY1vZMDx7aG1DNt59gxfW8QvnBP9p9bA9MaBtQ77A+ob+5bwwNr+ItvBgxV3wxvt3cY3m6N/8mW8qIL413Wr8FrjpsO+DYjPLwW+f0ZEK2zEI5/L4bjkRG/rsD9FYwvm3G80nAnCPduCu5fObvByeFhws5VsKlofDHPhN2njXz29hT2LoPNYO9nHugJ2y1aGbzSI/c90sJxU7I/ch79S7K1rHgRxGcVP1Q4cX4slcgPgu5voHmK/TFt/5Th2xyDbysnvloKvjfgvq7lUtk+w/H9vAR825H5amP8KwG+GoSUqlsD5nSp29DPzXUrb21YOxVO9+F11boV8xRxS1pcs6mIG6vSbUBPA5lu74N2y9ItUcTRKt2q4oxeI27/tOIMsc6g38cYrwcVxxltvdD96rEINKrarzAvJvV/Re1Taf6P8+JRyTrSU3Skofwj+r3Ii4ycfFpX4PQ+64txPoUboiJvrROvtAp5pdqfOa++qNn+rEnyS8EvjJ9OiuHXlx7tBxSfRiTx+7Ci/Vrg4ObUl+r8YRUwSNg/yhDrr7Mq4sy34bzD2T9W8mS1RJ7okvMhAmeJfK6Y2VnP415Xt+cQVzWmrFsRL0Ne+8R2HS+gB08Egng9Hlas27Mp67YL91LZPwtxVx11+whymKp024vkUbdZt2Bh1xIrHP7uU9DySMcpf8gb34nE6EVOHu8o1uNj2CfH8Hhm4r268nl7zudU/9Scsn9aYf0mt6P/K5XNHK/TR1fMPz0EDKT2R2LLuZ4n03O35LiSzIh/KorHfP/8YAyPhXOa83hyHm/NeZzgsQtx1pkWX49NtB4vUX2J4PH5mHPo6Hw6knjquiRv3KXe79bg4mAgU32KKt+8Dc9LFWlmgh93SqpvSLPHGPP8Ro+sJ34u9rQx/nlDXt1lrWvYpcHFmuH5371izxtEXQPYW3ldQ93PhYcgZBkvFmfoXFjwqaUX89xO6GhboaOVinX0ihSjo+2a6KiVgR/4PLDM55uXOFVbjzGr+80KcK6u+40qvzDeyIbTpPWfoj4L1X+KjxP43YD/FY0frv/tinof0NWfDTXvCLmsES2Ld2/COp4qzgvfgbUvGrdJ6wyaBdfrqOoMFuCzsuvsZPjoUYOmVM+ko3wPtyXIM2zHo3scJF/OG67TeyX6ew3sEbxpSfyLliPfb+fEsfGa+f4SnKOUiV9d8v3o/qnyK+uN6foVXF8o4jtUVphYp5sl+RWcLxvabPmRW3M/EsNjuSI/klb3KX7/fwAAAP//2S6kXZg1AAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
index be8c092..79b5f91 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_interfaces.mojom.dart
@@ -2332,7 +2332,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xb3W4aRxTeBZzSpFZJbLd280dSpeXGXuxKLeqVfYGK1VpCchslV9EaprAV7JKdpXLv8hh9hD5GH6GP0UfIXTtjzpjdwwwsAXaHn5FGx7uzwPDxne/MOTPeNwatALYMFt8XNo8sfu5vsCXWc6wX4boC9hXYHthHrO+y/vPrevXNj9XX31O72+uQo6rb7/Lxr1l/Khk/dwPSIv5Zo0Eo9fybz9mXPFf3vd+dJvFV73N5Y/i7+b/aDWLUYN4FNG9+nWX9z0z0uvdp9LpQluNimANTM0bbf6yV0efxe9yeGvL2CcxT4LTD+j3WEXwj8+Cv2wL826xbfepbHa9hd6yW57U6xGp7XWI5ttvxnIYVvLW63m+eRf3G4I9e/6rD7jsCMGpdOW7TcVvUCggNqDWYwJvhA0f8dd0CQJBHPCuBLZrG2DYtbjXF+2zD93959tMvVWYPWL8fxe1IjMnw46/PpIDfJD8povmKVojJu1OEX12B3+esc8pj/3vC7n02xBEPj+DIr++mgKNsHuI6E3LVfbi+1cU7iK/IrwuZ6fhqILzLCrwfAE4/kAAwlfPyICVejvDOnA2HigKHLwCLIQ6HPnnbZ1NT6G0oziSJRx7xY9G4PATtj+BCe55LiVa4YH8qmVHdqaB53jHitbg4GijeqOJp0w5slX8dpICbDB8ev+rmdPicInyu0XMmWpfhhuN3UaKf2ZCGCt26cNyXxKeO50ZxDv7oERXO36SoY4YiPuD11qR4jONEzZTjHff3ETpwPePvY074fcT9ywnx5uGaxJtLzePNsuuqiF8bXR3vt9kZdZXjfLgCuqrKc+adXxfgNxH1A5H3oLKCtE6iQ15TCtVXtkIQZYBLuVAevhV6/h94+N/tgf1rB+o6B+Pzn1p2sflPtdH2LgOfASHX3/trEo+GOOgZj7CeyXT2ZtxMNg59DJ9rG2r+7KaEV7glnTdG+KRh3rjMfHquAZ9Uev0uJ89DZtVrUYce8opK8Xmw4no96l80Iti65g8Vc7n8jPNoTwM/SwovMyZeV2PwerpGcU7kE1E/HAa6jR/Ozw8PN344lR9+p+H6QOD0CvK5zJz98THoNffHC0Kp3SJ1p0dqttvsEAlOO5qsE/Iz6pOqzvACMJHiEVoxLNN6PKehPu1ooE+mJO4tildfsf5kDK9EBNzwanZenWvAK6zj78Feg45nP5BfpQn1Uc4vXpvFuOxqotvvjcXUJffhu4rvL6R6mfxpS0N/2oW/V26fYkH5jTi/FuJhqIq3XPquKx8freB5BKGLJQgMuTnHB75X9hHw8twNRnDdW/H4IPYL4fvfruSXyR+N0N6hLv64l3J8SHJdMeDNQM43vJmdN4912G8Q81rQuWz8/wzoXDYeHsGpqMn5hWIo/mbR+QUxng3hWoGBd3fH73vF4Z/MPyf5LefX9i3+FyRoe82yhIfPV3zfS9T3IjhoWMfKT9gf7cXYHzXnxJNjCS7P1pAnxxryZNrzlUnHvXugg457LI17z+CeDucr09iHGeJzosTnRYr1OzPh/VCxHsB+p1s9WPf9UJF/e/3gWMWrbzXgVVJ1FjM+XicqvM5WsM6C/XjcfmpmTuuJEwm+X67heuJE43Xn/wEAAP//0DmlLng/AAA=";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xbTXPjNBj2R7qUXTp0ty2k7Fd2mYVeWqdlBjqc0kOGdqAzmSl0uhd20kQ0Zho72A5Tbhz5GfwMjhw5cuQncNwjN1ZqpEZ+Izl2Y1tKt5rRqLYcS3r8vM8rvVKrxigt07JOS3iflYughM/9ScsNnCs41+j1Li1PaDmg5SOcV3H+9mWr+err5ssvw3Z/cI62mt6wT+o/xfmpoP7Ai9AZCvY6HRSGfnDZTlXwXCvwf3a7KJC95+iyIG8Lfmh3kLFP+70M+k2ubZwvrPh17/349T+OGJfXtNw3JtP/ONVBe+QeKRuGOL1H+8lwWsH5Hs4Avol+kN8t4Pw9zsc4Oz2/j5xg2PX7rocCp+//6Dth0Bn9MRienrsdx2XwhM6p63Vd7yx0IhRGoTNq7tX4gS3yu/6oPZPjSZ3jxWV/TCMxZcVpX/KeJTre471vvmvich3n+3GctlidCC/ye6sEvKbZQQ307yqZ6fBqALxaErw+xJlQGtrXE3zvgzFusHoCN3J9twTcRO2ya4uDqEqv2XOtO3E+1oCdVq1sfDQAvnUJvg8oLl+hiGIo5t16SbyDvHqdUa/guHcl4/6Ijn087s0A/TTEnROPn6Wix7/ItWsK/BpMMrz+sPPF6yHV9Bhe4cD3QqQUL2hHVTOuL7ugX3eMdCktbgbwIzK/2G1HbZldrZeAkwgP4ocaEr/HeGcBPBoAjwux/F/Np2CCvK4JdNLm2mX6dOh6xygIXd+L4xr9MkAyXD8rUa8Mie7DedE0vwr5LPKzpqAdi+aqIfYju6b4O6X9rkwfLmb8ruaU78ruH03xRw8V+6O89ZX5oyPN/NG86yvzW7rqq61IX+0Z9ZXguvkW6asN9FW2/sl7Xb1MvyWLG7D1EAgnCOMjKtY7G1wcZYHD06IYVrj19wL3/N/04b+WRuVvK6Py9/XkdVHDLnZd1Oz0/KMowFCIdfi+Yj/E1oV5+6HxuPXwQ1DXRHpL6v8r2f+8S9ttG3J+rJaET5IfkOlbWbxifjjGKw3Wj/PMq+ca80qm172KeP0xq16zePOYX6EQtweK9bphF21XYUywdVk3bJjzZV+EJ2sK7CsrPovXxMdMic9pAj5PNdOfpPl5UfbH1htx+xs7tlv7u779bd7aX6L9faGx/UH/z/Br2eK48qx2+JjqNbHDQxSG7TPUcgdov+11z5EAvxVF8wCGQ+2a82tZnOAFxUA4fm5GoPM8u6KhDq0o0CFzhvVbUfz6BOcnCfxiHu+WX9n5daAxv6CO/8viz7Y4fp2WZxtT4p2EZyRmC/FaVaTbbNwtK991a5WOjY2XSbXOdrSgoR2t0r/nbT9i1jjdSc5xOnYejeMjF6XTW9915eWjG8xLmX+oUcdQydk/kL2vdyg/D7xoAu81xf7ByNk/sP0+Ot6rmbzOdmhwe3+62OFaSf7hunpeFH/4+cWIPyM5v+VPdv481pg/MLCU9/lr+H8J4Pw1rJ7Ar6boPEKN88M2OI/A6m0Oxwat6N1N3sdKw0ORXU6zV8KzpSu8D1HU87t1AR+fGzfrPDaL38XGrUHcKut5bBlfTlLse5o58WVbgNczxXyp28XzZVsDvmQ9L1m2n7tH9c71toV+7hm9p+K8pIp9ljEeO1I8XpQYnzNz2uf8NWd7Y/4e2pvquK/u+5xs3e0Po20Zvz5XwK+s8ZOi7I/DZ0eGz94Ni58k7ZPC+WXSPqmV03xhR4D7x2/B/HJnDueXbwIAAP//qcr3EiA/AAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
index c9ccc5b..c5a0e66 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
@@ -2195,7 +2195,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "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";
+ var serializedRuntimeTypeInfo = "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";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
index 1b0165f..bc9955a 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
@@ -694,7 +694,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXzW4TMRDebfgpLSB+ihR+DoVTOFD3WEVCyoFIlZAQCC49RdbWpEbeOF1vKrjxCBx5BI48Ao/VG3jYMTgTW6zKEhaUkSbOetcznm++8ex2k0qu4fgJRzq/512nVtfx+rbV61ZLYcp+f5gd6ZeiOJGZiDxP7e7ieB9tvTp4Phw9HR70weDOor2YnUHEX127XVwH6zve+m3i721ajR9w3Cf+Qb5a+UjwhDkYPydhofveDsR50Zu/aXXTKkbxjOeiVj7cOnqniz4oPBRn2N+G1dwqrGQzUzClM67YWOuxEuxI54JJPlFaZqw8Zrl+o5kpsurPIS9KxqdT8GMY/I7slWFyUoriNc+EYcJ6H5nK/Q4symvERffpcNrCfCaI75p3v+Ot+3Ie83W5GnvETuLy3ZnP234gl5Dr3cCcz3cqNxDX75GVhZyMw3FdwhiWjT/lo8PjrDjsRXC4g1j8xOFRIY5ndp9hPJwsGw9ar4PYOZkmtaQufk56kfkrVoHKJ1zNRIQ/t/4SXj5tlsWnu3jmzfHJTPXEiBWfGuJTrwV8oue1w+n9ufnnmuKV60dPhOLvxCE9thdw2mjJub3+m3U2iODh3rMW8Jg/vltTb13Mx4/32/Tfqjvg070W1F0IrwT33iRe6S/wumr1AuAhlZImjNfD/7j+HuC7U6j+vHa36ncN1N3jFva7UxLH2hn5FcMFPouglb6YyTLEo82W9LfT5M98n20hBhC/39LaUk+ujr4FAAD//01tvwDQEQAA";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS2/TQBB2HB6hBcSjSOZxCJzCgW6PUSSkHIhUCQmB4FJxiKxkIUZ+hF27Ejd+Rn8CR34CP6dHjtxgB8/CerILlpXWrZSRptNdZ2f3+3YeduCVcgPtF7R0fmiMO0p7OL6r9KbSnMt8NJrMFtlrLg6jGXf8nvrdQ/sQfb05eDmZPp8cjMDh7qo/l5+xY7+6fgNcB+u7xvo+2W/RKe1ntPtkf5CfSo4InzAH9qtnF3ruvgXnZWP+ttJtpYjiRZjwWveh19EnAe5B6aE8w/m2lL6FvZWyRZZwJop5lkQpFyzJPmRMiln5zzwUOQuXS/AqGfydqpFkUZpz8S6cccm42msqy812YVFSCwc9l+ZlB+/PQz5943nXWPftYmmPrpZ2QPx81/fard7TvuXu4G73LHNmfFO5hTz+RpaLKH1vx3UFMZw03zTeNP7Ab4Z76MB9D7H/xf1E8I+FOqkdv5aTxk/zb+yoez+8elKXLy0Dx/w1pRCqh2FccEd83DklfnRO/auue0YdPc24uo+1rRJXcpmlkm/iqmFcDc5wXNF6rflbXKj6W1d86X70jMfhJz6nZXuFv62W6rbmYdhthn/swK/fo1bwV8t3a3kWIN9/4qNzvvIN4uVBC/lm48fDs9qk15Cfzn/4ua70ktIkiuNI2vl53EK9NuuPb4xdedf315t3j/CdyZZ3Rnvb9LcG+fb0HPW3Y4LPb9jfXHzBZxC0zldFlNviabulfnZM7Lq+v3YQM+A1W1hbedSrER+m/AoAAP//M1uCWbgRAAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
index ec023ff..e051127 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/pingpong_service.mojom.dart
@@ -1231,7 +1231,7 @@
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xZy24TPRT2pLf87d8bEOiNtkBB3VBXgkXVVSSoQAKhAGXRVRkNJgxMZtK59BlYZsmSJY/AY/AofQOwO8fgeGwmKEnH0dTSwXgmdY4/n/N9x84SStsC9N+gl5/vCWOLWhXGN6nVqMUkivf3G67fbAR+8zUJT12HKD4vz7sL/V2Y6/CocXD87OBon024k51PN09beF5RzL9FbU07/yPPJX78L35sC98zJvnDxj/G0/Gm5C9vS1baP0XZ9pM27nddeMb6BlK369Tm2HtpRav02VXYH8VyMziuU5umdkLNpYaTKMRe4NgebgZB0yP4Q9Ai2LV9L3AdHJ/gVvAxwFHopP95Z4cxtttt9n0RZv8e01GEXT8m4XvbIRFuUy/a1IvjKEVzh/1hS7OvfPw/xBHSxOE26sa768NCy8MbSXhva/Bm/rAtZnCq/N6A+CgKx0zcWf3hsKvB4RpgwXC4H5KThHqqwoO3ovCQ46Wu4DUkvM9rveKHJB6S2xXIt3PHT20vIeo82ID8NiWePkM8fZV4rC7h8UXSFR5P3zV4yPu0qeCFKeE547YZasDML+wW6UmXblCbF/iSv1mDmNbQfmZfqgXzZd46ZX9FnpwUqKECusU4bQLyYlKI27Mx2OcpyJu5tO/U0v7tspqHqwPiYV3+LFL773z/Y0HVsuueNoyPq33y8Z4Gj2XA5DceIimPKC+zeFywhsPLOn2fg/h3IKhU8bRqQDwhya/NnHqw1zo4r56yhlVPuep6arZs9ZR7WU/1VU+5f6+nZguup3Q62YFzY2XAcVWDNbO4OrTDJonfvHquwGWxJDrJ66YuPISEMy3f5HuNuqXPO6sAvZyB+jEJPWW+LULNXSRfie2i+MrKwW0W6hsnSPxYg9udEuTjOtQscj5G1LOIjK7+IXSxecjPOcEnpM3DBwbpHuepM9C9sSGdh/7ElXCYV+BTM0z/FvrMt7oGl1uATQYXw8+Lsg52LLPOjfNwPwW+K+Nry+Bzo+5erNffRUZFV9k+PCxBnt+mtqLJc66to3y+NE1fWVw9NlBfeRsfsL6uwJn7CYkVt+Xq3/MqJcq7LC7dAnt5HzsYXWXjewbEVWVIupp3HzsxpPvYl4mrvH9cLdl9LMPB5PtYnq+/AgAA//96gJxL0CMAAA==";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xZzU4UTxDvmeVj//BfPhR0BQRUNHuRIdED4bSJEk00ZlWMctpslhZG2ZlxPohHjzwCj+Aj8Bg+BkeP3rSbqYamp9sZNvO1hk6Kpmehp6q66verrq2jcEzB/B1m8fk6t9aIVGF9m8gsER97/sZGy7R2W7a1+xa7B2YXS/5e3HcN5vuw19Z2a7P9YnN7g264Gt1PtY/DPdcl+68QWVDu/2TfxJZ/GT0a3Hsqgj50fTQUrpcFfc+GFk7PUXT8JoPp3eSe0bmF5OMGkQn6uWDRPHl2Hc5HYm7Ej4tExoi0ibwnYuzZPWy4wY7dMy3sGj37k214bjf8Zafj+kbHcejunkF/tsnKM0zLx+7HThd7hkPe6ZB3tr3Qd6v0H3uR97L1/+eukcZbA13064nCH3F+RYJfG4p9qD70KKnbZP5agjjI2l9iHDG7q3p/9q4p7J0Bm6m9D138JSA6yuxmI2u7xfNvSvAIcZ/HjaR+QgJ+iOMa5Mmpyged/QDLcWkJ8jJvP9UFqJlCcjxyINkOBTxqCv45EviBxdGxwj+iPssS3B7lnlOMGicCCPuq08OJ+OUmkUkO99gnCxDLCviOnFM1J9yLs0fUi8e7Ee48deAZik3DkA8jXLz+qIBdo+F8XIPnM+H8rS7H058p4akqb6aJ/Hd6zj7HQlG7xwrCVWb/Xp+4uq6w+xbYfmY3D64lx1caX78ywlcV705APHchSGTxMZ9jfCDh/csxdVfSejMpbsfVPVpWdY8pr3tq/2rdY17VPYnqHvPvdU+tZHWPiuc+wD1NT5nnZsEHNJ62Ou4u9t+9eSnx03TBPLdWSZfnWH1zwW4uoYrKJ7Ev0NDUeaUVwHfjUM8F7r40n6ah1s0jn/hxWdyp9ukfLcY/NahDunZg+Qr/3CsYb3Rurcq3asp15SLUIGK+eUR3D5efv1DOecbuFfZnpMyzRyXmLYZLx8BbFZTNPeU8nrhLs8RfswXxF/PDYZ/81VTYfwd8ELG/JPc1kce+auW6t01CXwe0lsbLSgnubaq+UdL+/6DwIvX34xLzIovPKT3dPL5LZE6Rx4wbB+F+VzZ+pPH0dAD4kY2hlPlxDu7Az7Av6Soj6fdaRfKjk1FeRe2/SJBX/czL8SJdP8gxTvSMeDGtfuZwRv3M14Ep7evNF9zPPEHZ9DOpvWXoZ1YV3wvWFfr/CQAA//9KRkekmCIAAA==";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
diff --git a/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1 b/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
index 11c258f..5bc7186 100644
--- a/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
+++ b/mojo/public/tools/bindings/mojom_tool/bin/linux64/mojom.sha1
@@ -1 +1 @@
-f95ff5456598fa3a4c788b8379e24070afee7180
\ No newline at end of file
+b543e123fc4b0eff0e6b353c5403ec4dd58a4407
\ No newline at end of file
diff --git a/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1 b/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
index 07cf6f7..f8f67ea 100644
--- a/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
+++ b/mojo/public/tools/bindings/mojom_tool/bin/mac64/mojom.sha1
@@ -1 +1 @@
-18edfea66e665b7783a6bc4e2a9b3ffe57b8f2e5
\ No newline at end of file
+63db0676e6002170cb875ddc287e1f75a5e4fdbd
\ No newline at end of file
diff --git a/mojom/mojom_parser/mojom/computed_data.go b/mojom/mojom_parser/mojom/computed_data.go
index 1064a6e..e0a3438 100644
--- a/mojom/mojom_parser/mojom/computed_data.go
+++ b/mojom/mojom_parser/mojom/computed_data.go
@@ -6,7 +6,9 @@
import (
"container/list"
+ "errors"
"fmt"
+ "mojom/mojom_parser/lexer"
"mojom/mojom_parser/utils"
)
@@ -125,6 +127,69 @@
return false
}
+var ErrMinVersionIllformed = errors.New("MinVersion attribute value illformed")
+var ErrMinVersionOutOfOrder = errors.New("MinVersion attribute value out of order")
+var ErrMinVersionNotNullable = errors.New("Non-Zero MinVersion attribute value on non-nullable field")
+
+type StructFieldMinVersionError struct {
+ // The field whose MinVersion is being set.
+ field *StructField
+
+ // The MinValue of the previous field. Only used for ErrMinVersionOutOfOrder
+ previousValue uint32
+
+ // The LiteralValue of the attribute assignment.
+ // NOTE: We use the following convention: literalValue.token == nil indicates that
+ // there was no MinVersion attribute on the given field. This can only happen with
+ // ErrMinVersionOutOfOrder
+ literalValue LiteralValue
+
+ // The type of error (ErrMinVersionIllfromed, ErrMinVersionOutOfOrder, ErrMinVersionNotNullable)
+ err error
+}
+
+// StructFieldMinVersionError implements error.
+func (e *StructFieldMinVersionError) Error() string {
+ var message string
+ var token lexer.Token
+ switch e.err {
+ case ErrMinVersionIllformed:
+ message = fmt.Sprintf("Invalid MinVersion attribute for field %s: %s. "+
+ "The value must be a non-negative 32-bit integer value.",
+ e.field.SimpleName(), e.literalValue)
+ token = *e.literalValue.token
+ case ErrMinVersionOutOfOrder:
+ if e.literalValue.token == nil {
+ message = fmt.Sprintf("Invalid missing MinVersion for field %s. "+
+ "The MinVersion must be non-decreasing as a function of the ordinal. "+
+ "This field must have a MinVersion attribute with a value at least %d.",
+ e.field.SimpleName(), e.previousValue)
+ token = e.field.NameToken()
+ } else {
+ message = fmt.Sprintf("Invalid MinVersion attribute for field %s: %s. "+
+ "The MinVersion must be non-decreasing as a function of the ordinal. "+
+ "This field's MinVersion must be at least %d.",
+ e.field.SimpleName(), e.literalValue.token.Text, e.previousValue)
+ token = *e.literalValue.token
+ }
+ case ErrMinVersionNotNullable:
+ message = fmt.Sprintf("Invalid type for field %s: %s. "+
+ "Non-nullable reference fields are only allowed in version 0 of of a struct. "+
+ "This field's MinVersion is %s.",
+ e.field.SimpleName(), e.field.FieldType.TypeName(), e.literalValue.token.Text)
+ switch fieldType := e.field.FieldType.(type) {
+ case *UserTypeRef:
+ token = fieldType.token
+ default:
+ // It would be nice for the green carets in the snippit in the error message to point at
+ // the type name, but other than for user type refs we don't store that token so
+ // instead we use the field's name.
+ token = e.field.NameToken()
+ }
+ }
+ return UserErrorMessage(e.field.OwningFile(), token, message)
+}
+
// computeVersionInfo is invoked by ComputeFinalData() after the
// computeFieldOffsets(). It examines the |MinVersion|
// attributes of all of the fields of the struct, validates the values, and
@@ -165,7 +230,7 @@
}
}
}
- if value != 0 && !field.FieldType.Nullable() {
+ if value != 0 && !field.FieldType.AllowedInNonZeroStructVersion() {
return &StructFieldMinVersionError{
field: field,
literalValue: literalValue,
diff --git a/mojom/mojom_parser/mojom/types.go b/mojom/mojom_parser/mojom/types.go
index c8af282..4917148 100644
--- a/mojom/mojom_parser/mojom/types.go
+++ b/mojom/mojom_parser/mojom/types.go
@@ -124,8 +124,13 @@
// types of the key type and the value type.
ReferencedUserDefinedTypes() UserDefinedTypeSet
- // Returns true just in case the type referene is nullable.
- Nullable() bool
+ // Returns true just in case this type reference is allowed as the type of
+ // a struct field in a non-zero version of a struct. We disallow
+ // pointer and handle types that are not nullable. This means we allow all primitive
+ // types and enums, and nullable strings, arrays, maps, handles, interfaces
+ // structs and unions. This method should only be invoked after successful
+ // parsing and resolution have occurred.
+ AllowedInNonZeroStructVersion() bool
// SerializationSize() is invoked after the resolution and validation phases.
// It returns the number of bytes necessary to serialize an instance of the type
@@ -204,8 +209,8 @@
return true
}
-func (SimpleType) Nullable() bool {
- return false
+func (SimpleType) AllowedInNonZeroStructVersion() bool {
+ return true
}
// A SimpleType does not reference any UserDefinedTypes.
@@ -419,6 +424,10 @@
return s.nullable
}
+func (s StringType) AllowedInNonZeroStructVersion() bool {
+ return s.nullable
+}
+
func (StringType) SerializationSize() uint32 {
return 8
}
@@ -517,6 +526,10 @@
return h.nullable
}
+func (h HandleTypeRef) AllowedInNonZeroStructVersion() bool {
+ return h.nullable
+}
+
func (HandleTypeRef) SerializationSize() uint32 {
return 4
}
@@ -655,6 +668,10 @@
return a.nullable
}
+func (a ArrayTypeRef) AllowedInNonZeroStructVersion() bool {
+ return a.nullable
+}
+
func (ArrayTypeRef) SerializationSize() uint32 {
return 8
}
@@ -751,6 +768,10 @@
return m.nullable
}
+func (m MapTypeRef) AllowedInNonZeroStructVersion() bool {
+ return m.nullable
+}
+
func (MapTypeRef) SerializationSize() uint32 {
return 8
}
@@ -879,6 +900,16 @@
return t.nullable
}
+func (t *UserTypeRef) AllowedInNonZeroStructVersion() bool {
+ if t.resolvedType == nil {
+ panic("This method should only be invoked after successful resolution.")
+ }
+ if t.resolvedType.Kind() == UserDefinedTypeKindEnum {
+ return true
+ }
+ return t.nullable
+}
+
func (t *UserTypeRef) SerializationSize() uint32 {
if t.resolvedType == nil {
panic("This method should only be invoked after successful resolution.")
diff --git a/mojom/mojom_parser/mojom/user_defined_types.go b/mojom/mojom_parser/mojom/user_defined_types.go
index 6f6b877..6d1833b 100644
--- a/mojom/mojom_parser/mojom/user_defined_types.go
+++ b/mojom/mojom_parser/mojom/user_defined_types.go
@@ -534,69 +534,6 @@
return nil
}
-var ErrMinVersionIllformed = errors.New("MinVersion attribute value illformed")
-var ErrMinVersionOutOfOrder = errors.New("MinVersion attribute value out of order")
-var ErrMinVersionNotNullable = errors.New("Non-Zero MinVersion attribute value on non-nullable field")
-
-type StructFieldMinVersionError struct {
- // The field whose MinVersion is being set.
- field *StructField
-
- // The MinValue of the previous field. Only used for ErrMinVersionOutOfOrder
- previousValue uint32
-
- // The LiteralValue of the attribute assignment.
- // NOTE: We use the following convention: literalValue.token == nil indicates that
- // there was no MinVersion attribute on the given field. This can only happen with
- // ErrMinVersionOutOfOrder
- literalValue LiteralValue
-
- // The type of error (ErrMinVersionIllfromed, ErrMinVersionOutOfOrder, ErrMinVersionNotNullable)
- err error
-}
-
-// StructFieldMinVersionError implements error.
-func (e *StructFieldMinVersionError) Error() string {
- var message string
- var token lexer.Token
- switch e.err {
- case ErrMinVersionIllformed:
- message = fmt.Sprintf("Invalid MinVersion attribute for field %s: %s. "+
- "The value must be a non-negative 32-bit integer value.",
- e.field.SimpleName(), e.literalValue)
- token = *e.literalValue.token
- case ErrMinVersionOutOfOrder:
- if e.literalValue.token == nil {
- message = fmt.Sprintf("Invalid missing MinVersion for field %s. "+
- "The MinVersion must be non-decreasing as a function of the ordinal. "+
- "This field must have a MinVersion attribute with a value at least %d.",
- e.field.SimpleName(), e.previousValue)
- token = e.field.NameToken()
- } else {
- message = fmt.Sprintf("Invalid MinVersion attribute for field %s: %s. "+
- "The MinVersion must be non-decreasing as a function of the ordinal. "+
- "This field's MinVersion must be at least %d.",
- e.field.SimpleName(), e.literalValue.token.Text, e.previousValue)
- token = *e.literalValue.token
- }
- case ErrMinVersionNotNullable:
- message = fmt.Sprintf("Invalid type for field %s: %s. "+
- "Non-nullable fields are only allowed in version 0 of of a struct. "+
- "This field's MinVersion is %s.",
- e.field.SimpleName(), e.field.FieldType.TypeName(), e.literalValue.token.Text)
- switch fieldType := e.field.FieldType.(type) {
- case *UserTypeRef:
- token = fieldType.token
- default:
- // It would be nice for the green carets in the snippit in the error message to point at
- // the type name, but other than for user type refs we don't store that token so
- // instead we use the field's name.
- token = e.field.NameToken()
- }
- }
- return UserErrorMessage(e.field.OwningFile(), token, message)
-}
-
func (m MojomStruct) String() string {
s := fmt.Sprintf("\n---------struct--------------\n")
s += fmt.Sprintf("%s\n", m.UserDefinedTypeBase)
diff --git a/mojom/mojom_parser/parser/computed_data_test.go b/mojom/mojom_parser/parser/computed_data_test.go
index 012e39a..2f4bb1f 100644
--- a/mojom/mojom_parser/parser/computed_data_test.go
+++ b/mojom/mojom_parser/parser/computed_data_test.go
@@ -156,7 +156,7 @@
};`
test.addTestCase(contents, []string{
"Invalid type for field z: array<int32>.",
- "Non-nullable fields are only allowed in version 0 of of a struct.",
+ "Non-nullable reference fields are only allowed in version 0 of of a struct.",
"This field's MinVersion is 1."})
}
diff --git a/mojom/mojom_parser/serialization/serialization_test.go b/mojom/mojom_parser/serialization/serialization_test.go
index c4f1d3c..baf834c 100644
--- a/mojom/mojom_parser/serialization/serialization_test.go
+++ b/mojom/mojom_parser/serialization/serialization_test.go
@@ -1962,7 +1962,7 @@
MyInterface1&? my_interface_request;
[MinVersion=2]
- handle? y;
+ int32 y;
[MinVersion=2]
MyInterface1? my_interface;
@@ -2011,7 +2011,7 @@
// field y
{
DeclData: test.newShortDeclDataAO(4, -1, "y", &[]mojom_types.Attribute{{"MinVersion", &mojom_types.LiteralValueInt8Value{2}}}),
- Type: &mojom_types.TypeHandleType{mojom_types.HandleType{Nullable: true}},
+ Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_Int32},
Offset: 32,
MinVersion: 2,
},