Skip to content

Commit bfeb9ff

Browse files
authored
NuGet.Protocol nullability - Phase 1 (#7267)
Phase 1: Constants, interfaces, exceptions, events, validated models Phase 2: JSON models, search types, converters
1 parent 0abad6a commit bfeb9ff

30 files changed

Lines changed: 229 additions & 273 deletions

src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/ContextInfos/AlternatePackageMetadataContextInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static AlternatePackageMetadataContextInfo Create(AlternatePackageMetadat
2222
{
2323
Assumes.NotNull(alternatePackageMetadata);
2424

25-
return new AlternatePackageMetadataContextInfo(alternatePackageMetadata.PackageId, alternatePackageMetadata.Range);
25+
return new AlternatePackageMetadataContextInfo(alternatePackageMetadata.PackageId!, alternatePackageMetadata.Range!);
2626
}
2727
}
2828
}

src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/Formatters/SearchFilterFormatter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ private SearchFilterFormatter()
6363

6464
return new SearchFilter(includePrerelease, filterType)
6565
{
66-
SupportedFrameworks = supportedFrameworks,
66+
SupportedFrameworks = supportedFrameworks ?? [],
6767
OrderBy = searchOrderBy,
68-
PackageTypes = packageTypes,
68+
PackageTypes = packageTypes ?? [],
6969
IncludeDelisted = includeDelisted,
7070
};
7171
}

src/NuGet.Core/NuGet.CommandLine.XPlat/Commands/PackageSearch/PackageSearchResultTableRenderer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ private static async void PopulateTableWithResultsAsync(IEnumerable<IPackageSear
114114

115115
if (packageDeprecationMetadata is not null)
116116
{
117-
deprecation = packageDeprecationMetadata.Message;
117+
deprecation = packageDeprecationMetadata.Message ?? "N/A";
118118
}
119119

120120
table.AddRow(

src/NuGet.Core/NuGet.Protocol/Converters/SafeBoolConverter.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using Newtonsoft.Json;
86

@@ -14,7 +12,7 @@ public class SafeBoolConverter : JsonConverter
1412
public override bool CanRead { get { return true; } }
1513
public override bool CanWrite { get { return false; } }
1614

17-
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
15+
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
1816
{
1917
switch (reader.TokenType)
2018
{
@@ -24,19 +22,19 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
2422
return serializer.Deserialize<bool>(reader);
2523
case JsonToken.String:
2624
bool flag;
27-
if (Boolean.TryParse(reader.Value.ToString().Trim(), out flag))
25+
if (Boolean.TryParse(reader.Value?.ToString()?.Trim(), out flag))
2826
{
2927
return flag;
3028
}
3129
return false;
3230
case JsonToken.Integer:
33-
return ((long)reader.Value) == 1;
31+
return ((long)reader.Value!) == 1;
3432
default:
3533
reader.Skip();
3634
return false;
3735
}
3836
}
39-
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
37+
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
4038
{
4139
throw new NotImplementedException();
4240
}

src/NuGet.Core/NuGet.Protocol/Converters/SafeUriConverter.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using Newtonsoft.Json;
86

@@ -14,15 +12,14 @@ public class SafeUriConverter : JsonConverter
1412
public override bool CanRead { get { return true; } }
1513
public override bool CanWrite { get { return false; } }
1614

17-
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
15+
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
1816
{
1917
switch (reader.TokenType)
2018
{
2119
case JsonToken.Null:
2220
return null;
2321
case JsonToken.String:
24-
Uri uri;
25-
if (Uri.TryCreate(reader.Value.ToString().Trim(), UriKind.Absolute, out uri))
22+
if (Uri.TryCreate(reader.Value?.ToString()?.Trim(), UriKind.Absolute, out Uri? uri))
2623
{
2724
return uri;
2825
}
@@ -32,7 +29,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
3229
return null;
3330
}
3431
}
35-
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
32+
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
3633
{
3734
throw new NotImplementedException();
3835
}

src/NuGet.Core/NuGet.Protocol/Converters/VersionRangeConverter.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using Newtonsoft.Json;
86
using NuGet.Versioning;
@@ -29,10 +27,10 @@ public class VersionRangeConverter : JsonConverter
2927
/// <param name="existingValue">The existing value of the object.</param>
3028
/// <param name="serializer">A serializer.</param>
3129
/// <returns>A <see cref="VersionRange" /> object.</returns>
32-
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
30+
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
3331
{
34-
string value = serializer.Deserialize<string>(reader);
35-
return !string.IsNullOrEmpty(value) ? VersionRange.Parse(value) : null;
32+
string? value = serializer.Deserialize<string>(reader);
33+
return !string.IsNullOrEmpty(value) ? VersionRange.Parse(value!) : null;
3634
}
3735

3836
/// <summary>
@@ -41,9 +39,14 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
4139
/// <param name="writer">A JSON writer.</param>
4240
/// <param name="value">A value to serialize.</param>
4341
/// <param name="serializer">A serializer.</param>
44-
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
42+
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
4543
{
46-
var versionRange = VersionRange.Parse(value.ToString());
44+
if (value is null)
45+
{
46+
throw new ArgumentNullException(nameof(value));
47+
}
48+
49+
var versionRange = VersionRange.Parse(value.ToString()!);
4750
serializer.Serialize(writer, versionRange.ToString());
4851
}
4952
}

src/NuGet.Core/NuGet.Protocol/Events/ProtocolDiagnosticNupkgCopiedEvent.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
namespace NuGet.Protocol.Events
75
{
86
public sealed class ProtocolDiagnosticNupkgCopiedEvent

src/NuGet.Core/NuGet.Protocol/Events/ProtocolDiagnosticResourceEvent.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75

86
namespace NuGet.Protocol.Events

src/NuGet.Core/NuGet.Protocol/Events/ProtocolDiagnosticServiceIndexEntryEvent.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
namespace NuGet.Protocol.Events
75
{
86
/// <summary>

src/NuGet.Core/NuGet.Protocol/Exceptions/FatalProtocolException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using System.Runtime.Serialization;
86

0 commit comments

Comments
 (0)