diff --git a/src/Tomlyn/Model/Accessors/DictionaryDynamicAccessor.cs b/src/Tomlyn/Model/Accessors/DictionaryDynamicAccessor.cs index 3169d9f..9cf6979 100644 --- a/src/Tomlyn/Model/Accessors/DictionaryDynamicAccessor.cs +++ b/src/Tomlyn/Model/Accessors/DictionaryDynamicAccessor.cs @@ -232,7 +232,7 @@ public SlowDictionaryAccessor(DynamicModelReadContext context, Type dictionaryTy public override bool TryGetValue(object dictionary, object key, out object? value) { var parameters = new object?[2] { key, null }; - var result = (bool)_methodTryGetValue.Invoke(dictionary, parameters); + var result = (bool)_methodTryGetValue.Invoke(dictionary, parameters)!; value = parameters[1]; return result; } diff --git a/src/Tomlyn/Model/Accessors/ListDynamicAccessor.cs b/src/Tomlyn/Model/Accessors/ListDynamicAccessor.cs index 48df350..8964032 100644 --- a/src/Tomlyn/Model/Accessors/ListDynamicAccessor.cs +++ b/src/Tomlyn/Model/Accessors/ListDynamicAccessor.cs @@ -103,7 +103,7 @@ public int GetCount(object list) case TomlTableArray array: return array.Count; default: - return (int)_propCount!.GetValue(list); + return (int)_propCount!.GetValue(list)!; } } diff --git a/src/Tomlyn/Model/Accessors/StandardObjectDynamicAccessor.cs b/src/Tomlyn/Model/Accessors/StandardObjectDynamicAccessor.cs index 7d955cf..1b63fc5 100644 --- a/src/Tomlyn/Model/Accessors/StandardObjectDynamicAccessor.cs +++ b/src/Tomlyn/Model/Accessors/StandardObjectDynamicAccessor.cs @@ -68,7 +68,7 @@ public override bool TryGetPropertyValue(SourceSpan span, object obj, string nam public override bool TrySetPropertyValue(SourceSpan span, object obj, string name, object? value) { - string? errorMessage = null; + string errorMessage = "Unknown error"; try { if (_props.TryGetValue(name, out var prop)) @@ -92,7 +92,7 @@ public override bool TrySetPropertyValue(SourceSpan span, object obj, string nam errorMessage = $"The property value of type {value?.GetType().FullName} couldn't be converted to {prop.PropertyType} for the list property {TargetType.FullName}/{name}"; } } - else + else if (listValue is not null) { foreach (var item in (IEnumerable)value) { diff --git a/src/Tomlyn/Model/SyntaxToModelTransform.cs b/src/Tomlyn/Model/SyntaxToModelTransform.cs index 030aa08..274d825 100644 --- a/src/Tomlyn/Model/SyntaxToModelTransform.cs +++ b/src/Tomlyn/Model/SyntaxToModelTransform.cs @@ -517,9 +517,9 @@ private ReferenceEqualityComparer() { } -#pragma warning disable CS0108, CS0114 - public bool Equals(object x, object y) -#pragma warning restore CS0108, CS0114 +#pragma warning disable CS0108 + public bool Equals(object? x, object? y) +#pragma warning restore CS0108 { return ReferenceEquals(x, y); } diff --git a/src/Tomlyn/Syntax/SyntaxValidator.cs b/src/Tomlyn/Syntax/SyntaxValidator.cs index 994ec41..4ce92ad 100644 --- a/src/Tomlyn/Syntax/SyntaxValidator.cs +++ b/src/Tomlyn/Syntax/SyntaxValidator.cs @@ -378,10 +378,10 @@ public ObjectPath Clone() return (ObjectPath) MemberwiseClone(); } - public override bool Equals(object obj) + public override bool Equals(object? obj) { - var other = (ObjectPath) obj; - if (other.Count != Count) return false; + var other = obj as ObjectPath; + if (other?.Count != Count) return false; if (other._hashCode != _hashCode) return false; for (int i = 0; i < Count; i++) { diff --git a/src/Tomlyn/Syntax/TextPosition.cs b/src/Tomlyn/Syntax/TextPosition.cs index 7329df9..147fe06 100644 --- a/src/Tomlyn/Syntax/TextPosition.cs +++ b/src/Tomlyn/Syntax/TextPosition.cs @@ -50,7 +50,7 @@ public bool Equals(TextPosition other) return Offset == other.Offset && Column == other.Column && Line == other.Line; } - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (ReferenceEquals(null, obj)) return false; return obj is TextPosition && Equals((TextPosition) obj); diff --git a/src/Tomlyn/TomlDateTime.cs b/src/Tomlyn/TomlDateTime.cs index 7665566..fe06cd4 100644 --- a/src/Tomlyn/TomlDateTime.cs +++ b/src/Tomlyn/TomlDateTime.cs @@ -66,78 +66,78 @@ TypeCode IConvertible.GetTypeCode() } [ExcludeFromCodeCoverage] - bool IConvertible.ToBoolean(IFormatProvider provider) + bool IConvertible.ToBoolean(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - byte IConvertible.ToByte(IFormatProvider provider) + byte IConvertible.ToByte(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - char IConvertible.ToChar(IFormatProvider provider) + char IConvertible.ToChar(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - DateTime IConvertible.ToDateTime(IFormatProvider provider) + DateTime IConvertible.ToDateTime(IFormatProvider? provider) { return DateTime.DateTime; } [ExcludeFromCodeCoverage] - decimal IConvertible.ToDecimal(IFormatProvider provider) + decimal IConvertible.ToDecimal(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - double IConvertible.ToDouble(IFormatProvider provider) + double IConvertible.ToDouble(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - short IConvertible.ToInt16(IFormatProvider provider) + short IConvertible.ToInt16(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - int IConvertible.ToInt32(IFormatProvider provider) + int IConvertible.ToInt32(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - long IConvertible.ToInt64(IFormatProvider provider) + long IConvertible.ToInt64(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - sbyte IConvertible.ToSByte(IFormatProvider provider) + sbyte IConvertible.ToSByte(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - float IConvertible.ToSingle(IFormatProvider provider) + float IConvertible.ToSingle(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - string IConvertible.ToString(IFormatProvider provider) + string IConvertible.ToString(IFormatProvider? provider) { throw new NotSupportedException(); } - object IConvertible.ToType(Type conversionType, IFormatProvider provider) + object IConvertible.ToType(Type conversionType, IFormatProvider? provider) { if (conversionType == typeof(DateTime)) { @@ -165,19 +165,19 @@ object IConvertible.ToType(Type conversionType, IFormatProvider provider) } [ExcludeFromCodeCoverage] - ushort IConvertible.ToUInt16(IFormatProvider provider) + ushort IConvertible.ToUInt16(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - uint IConvertible.ToUInt32(IFormatProvider provider) + uint IConvertible.ToUInt32(IFormatProvider? provider) { throw new NotSupportedException(); } [ExcludeFromCodeCoverage] - ulong IConvertible.ToUInt64(IFormatProvider provider) + ulong IConvertible.ToUInt64(IFormatProvider? provider) { throw new NotSupportedException(); } diff --git a/src/Tomlyn/TomlModelOptions.cs b/src/Tomlyn/TomlModelOptions.cs index 6313d58..057de40 100644 --- a/src/Tomlyn/TomlModelOptions.cs +++ b/src/Tomlyn/TomlModelOptions.cs @@ -130,6 +130,6 @@ private static object DefaultCreateInstanceImpl(Type type, ObjectKind kind) } } - return Activator.CreateInstance(type); + return Activator.CreateInstance(type) ?? throw new InvalidOperationException($"Failed to create an instance of type '{type.FullName}'"); } } \ No newline at end of file