From edfe97a3e22258fb530571ef6ef16ae9ab6f1571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 10 Feb 2025 10:18:23 +0100 Subject: [PATCH 1/3] Remove redundant checkNotNull calls from pre-null-safe days --- protobuf/lib/src/protobuf/coded_buffer.dart | 1 - protobuf/lib/src/protobuf/field_info.dart | 4 ---- protobuf/lib/src/protobuf/field_set.dart | 3 --- protobuf/lib/src/protobuf/generated_message.dart | 4 ---- 4 files changed, 12 deletions(-) diff --git a/protobuf/lib/src/protobuf/coded_buffer.dart b/protobuf/lib/src/protobuf/coded_buffer.dart index a102cbb1d..1bcb864ff 100644 --- a/protobuf/lib/src/protobuf/coded_buffer.dart +++ b/protobuf/lib/src/protobuf/coded_buffer.dart @@ -31,7 +31,6 @@ void _writeToCodedBufferWriter(_FieldSet fs, CodedBufferWriter out) { void _mergeFromCodedBufferReader(BuilderInfo meta, _FieldSet fs, CodedBufferReader input, ExtensionRegistry registry) { - ArgumentError.checkNotNull(registry); fs._ensureWritable(); while (true) { final tag = input.readTag(); diff --git a/protobuf/lib/src/protobuf/field_info.dart b/protobuf/lib/src/protobuf/field_info.dart index dffce4a1a..fb245c8bf 100644 --- a/protobuf/lib/src/protobuf/field_info.dart +++ b/protobuf/lib/src/protobuf/field_info.dart @@ -132,8 +132,6 @@ class FieldInfo { {this.valueOf, this.enumValues, this.defaultEnumValue, String? protoName}) : makeDefault = (() => PbList(check: check!)), _protoName = protoName { - ArgumentError.checkNotNull(name, 'name'); - ArgumentError.checkNotNull(tagNumber, 'tagNumber'); assert(_isRepeated(type)); assert(check != null); assert(!_isEnum(type) || valueOf != null); @@ -280,8 +278,6 @@ class MapFieldInfo extends FieldInfo?> { defaultOrMaker: () => PbMap(keyFieldType, valueFieldType), defaultEnumValue: defaultEnumValue, protoName: protoName) { - ArgumentError.checkNotNull(name, 'name'); - ArgumentError.checkNotNull(tagNumber, 'tagNumber'); assert(_isMapField(type)); assert(!_isEnum(type) || valueOf != null); } diff --git a/protobuf/lib/src/protobuf/field_set.dart b/protobuf/lib/src/protobuf/field_set.dart index 15c36586d..ea3dac841 100644 --- a/protobuf/lib/src/protobuf/field_set.dart +++ b/protobuf/lib/src/protobuf/field_set.dart @@ -258,8 +258,6 @@ class _FieldSet { /// Works for both extended and non-extended fields. /// Suitable for public API. void _setField(int tagNumber, Object value) { - ArgumentError.checkNotNull(value, 'value'); - final meta = _meta; final fi = _nonExtensionInfo(meta, tagNumber); if (fi == null) { @@ -284,7 +282,6 @@ class _FieldSet { /// Works for both extended and non-extended fields. /// Suitable for decoders that do their own validation. void _setFieldUnchecked(BuilderInfo meta, FieldInfo fi, value) { - ArgumentError.checkNotNull(fi, 'fi'); assert(!fi.isRepeated); if (fi.index == null) { _ensureExtensions() diff --git a/protobuf/lib/src/protobuf/generated_message.dart b/protobuf/lib/src/protobuf/generated_message.dart index 5a0b51cea..b16387e01 100644 --- a/protobuf/lib/src/protobuf/generated_message.dart +++ b/protobuf/lib/src/protobuf/generated_message.dart @@ -396,7 +396,6 @@ abstract class GeneratedMessage { /// Sets the value of a non-repeated extension field to [value]. void setExtension(Extension extension, Object value) { - ArgumentError.checkNotNull(value, 'value'); if (_isRepeated(extension.type)) { throw ArgumentError(_fieldSet._setFieldFailedMessage( extension, value, 'repeating field (use get + .add())')); @@ -489,7 +488,6 @@ abstract class GeneratedMessage { /// For generated code only. /// @nodoc void $_setFloat(int index, double value) { - ArgumentError.checkNotNull(value, 'value'); if (!_isFloat32(value)) { _fieldSet._$check(index, value); } @@ -503,7 +501,6 @@ abstract class GeneratedMessage { /// For generated code only. /// @nodoc void $_setSignedInt32(int index, int value) { - ArgumentError.checkNotNull(value, 'value'); if (!_isSigned32(value)) { _fieldSet._$check(index, value); } @@ -513,7 +510,6 @@ abstract class GeneratedMessage { /// For generated code only. /// @nodoc void $_setUnsignedInt32(int index, int value) { - ArgumentError.checkNotNull(value, 'value'); if (!_isUnsigned32(value)) { _fieldSet._$check(index, value); } From dc6e8fb395b761f93704bc079d1d99c7649dab2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 10 Feb 2025 13:24:44 +0100 Subject: [PATCH 2/3] Fix warnings --- protobuf/lib/src/protobuf/field_info.dart | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/protobuf/lib/src/protobuf/field_info.dart b/protobuf/lib/src/protobuf/field_info.dart index fb245c8bf..356e7b63c 100644 --- a/protobuf/lib/src/protobuf/field_info.dart +++ b/protobuf/lib/src/protobuf/field_info.dart @@ -131,11 +131,10 @@ class FieldInfo { this.check, this.subBuilder, {this.valueOf, this.enumValues, this.defaultEnumValue, String? protoName}) : makeDefault = (() => PbList(check: check!)), - _protoName = protoName { - assert(_isRepeated(type)); - assert(check != null); - assert(!_isEnum(type) || valueOf != null); - } + _protoName = protoName, + assert(_isRepeated(type)), + assert(check != null), + assert(!_isEnum(type) || valueOf != null); static MakeDefaultFunc? findMakeDefault(int type, dynamic defaultOrMaker) { if (defaultOrMaker == null) return PbFieldType._defaultForType(type); @@ -274,11 +273,11 @@ class MapFieldInfo extends FieldInfo?> { this.valueCreator, {ProtobufEnum? defaultEnumValue, String? protoName}) - : super(name, tagNumber, index, type, + : assert(_isMapField(type)), + super(name, tagNumber, index, type, defaultOrMaker: () => PbMap(keyFieldType, valueFieldType), defaultEnumValue: defaultEnumValue, protoName: protoName) { - assert(_isMapField(type)); assert(!_isEnum(type) || valueOf != null); } From 4e61fe4776f6bbb10cc6565f81a73d1e55b10f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 11 Feb 2025 09:51:03 +0100 Subject: [PATCH 3/3] Also fix tighten_type_of_initializing_formals (required by g3) --- protobuf/lib/src/protobuf/extension.dart | 2 +- protobuf/lib/src/protobuf/field_info.dart | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/protobuf/lib/src/protobuf/extension.dart b/protobuf/lib/src/protobuf/extension.dart index d14950438..1144443fc 100644 --- a/protobuf/lib/src/protobuf/extension.dart +++ b/protobuf/lib/src/protobuf/extension.dart @@ -22,7 +22,7 @@ class Extension extends FieldInfo { protoName: protoName); Extension.repeated(this.extendee, String name, int tagNumber, int fieldType, - {CheckFunc? check, + {required CheckFunc check, CreateBuilderFunc? subBuilder, ValueOfFunc? valueOf, List? enumValues, diff --git a/protobuf/lib/src/protobuf/field_info.dart b/protobuf/lib/src/protobuf/field_info.dart index 356e7b63c..1777e0909 100644 --- a/protobuf/lib/src/protobuf/field_info.dart +++ b/protobuf/lib/src/protobuf/field_info.dart @@ -128,12 +128,11 @@ class FieldInfo { subBuilder = null; FieldInfo.repeated(this.name, this.tagNumber, this.index, this.type, - this.check, this.subBuilder, + CheckFunc this.check, this.subBuilder, {this.valueOf, this.enumValues, this.defaultEnumValue, String? protoName}) - : makeDefault = (() => PbList(check: check!)), + : makeDefault = (() => PbList(check: check)), _protoName = protoName, assert(_isRepeated(type)), - assert(check != null), assert(!_isEnum(type) || valueOf != null); static MakeDefaultFunc? findMakeDefault(int type, dynamic defaultOrMaker) {