Skip to content

Commit 934d1db

Browse files
author
Chris Martinez
committed
Update code analysis packages and fix discovered violations
1 parent 8459b45 commit 934d1db

File tree

18 files changed

+76
-22
lines changed

18 files changed

+76
-22
lines changed

ApiVersioning.sln

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,34 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.OData.
143143
EndProject
144144
Global
145145
GlobalSection(SharedMSBuildProjectFiles) = preSolution
146+
src\Common.OData.ApiExplorer\Common.OData.ApiExplorer.projitems*{0d6519ae-20d2-4c98-97aa-ed3622043936}*SharedItemsImports = 5
147+
src\Shared\Shared.projitems*{0d6519ae-20d2-4c98-97aa-ed3622043936}*SharedItemsImports = 5
146148
src\Common.OData\Common.OData.projitems*{1599a30d-d37f-443c-b935-290144910be3}*SharedItemsImports = 13
149+
src\Common.OData.ApiExplorer\Common.OData.ApiExplorer.projitems*{1b255310-a2b7-437f-804f-6e1d8c940a17}*SharedItemsImports = 5
150+
src\Shared\Shared.projitems*{1b255310-a2b7-437f-804f-6e1d8c940a17}*SharedItemsImports = 5
151+
test\OData.Test.Shared\OData.Test.Shared.projitems*{23bc896b-a4cc-4c82-b98b-ce71239c2eb8}*SharedItemsImports = 5
147152
src\Common.ApiExplorer\Common.ApiExplorer.projitems*{26a67334-f6e6-49b8-8c5a-f88f28770966}*SharedItemsImports = 13
153+
src\Common\Common.projitems*{3bac97ed-1a8e-4f5a-a716-db5255f51c81}*SharedItemsImports = 5
154+
src\Shared\Shared.projitems*{3bac97ed-1a8e-4f5a-a716-db5255f51c81}*SharedItemsImports = 5
155+
src\Common.OData\Common.OData.projitems*{48a2b488-23ab-4c83-ae30-0b8b735c4562}*SharedItemsImports = 5
156+
src\Shared\Shared.projitems*{48a2b488-23ab-4c83-ae30-0b8b735c4562}*SharedItemsImports = 5
157+
src\Common.OData\Common.OData.projitems*{59d9cec0-f8e5-4a1a-b8dd-5117e6a409d5}*SharedItemsImports = 5
158+
src\Shared\Shared.projitems*{59d9cec0-f8e5-4a1a-b8dd-5117e6a409d5}*SharedItemsImports = 5
159+
test\Acceptance.Test.Shared\Acceptance.Test.Shared.projitems*{5c31964d-ea8b-420b-9297-5adfefe54962}*SharedItemsImports = 5
160+
test\Test.Common\Test.Common.projitems*{69c59656-53d1-4acb-92b5-8b34c8e62175}*SharedItemsImports = 5
148161
test\Acceptance.Test.Shared\Acceptance.Test.Shared.projitems*{6cdfb878-2642-4f98-ae35-621bac581181}*SharedItemsImports = 13
149162
src\Common\Common.projitems*{6d0e834b-6422-44cd-9a85-e3be9dead1be}*SharedItemsImports = 13
163+
src\Common.ApiExplorer\Common.ApiExplorer.projitems*{91e1f0b5-905d-446c-a2dd-4c1edabfaf6c}*SharedItemsImports = 5
150164
test\OData.Test.Shared\OData.Test.Shared.projitems*{9a635d55-7547-4df6-b7bd-840e16ebde28}*SharedItemsImports = 13
165+
test\Test.Common\Test.Common.projitems*{aeb074e1-e57a-4dd3-a972-3625b367ce5d}*SharedItemsImports = 5
151166
src\Shared\Shared.projitems*{b7897873-6757-4684-83c0-39575821ae14}*SharedItemsImports = 13
167+
test\OData.Test.Shared\OData.Test.Shared.projitems*{ba0c8652-fef6-4004-a779-cd6dcf2996f7}*SharedItemsImports = 5
152168
src\Common.OData.ApiExplorer\Common.OData.ApiExplorer.projitems*{c0c766f3-a2d6-461e-adff-27496600ea9c}*SharedItemsImports = 13
169+
src\Common\Common.projitems*{c39cccbc-6b04-406f-96be-ca796eff34c5}*SharedItemsImports = 5
170+
src\Shared\Shared.projitems*{c39cccbc-6b04-406f-96be-ca796eff34c5}*SharedItemsImports = 5
171+
test\OData.Test.Shared\OData.Test.Shared.projitems*{d87e54cc-c2d6-4ae5-806d-ae825b051c66}*SharedItemsImports = 5
172+
src\Common.ApiExplorer\Common.ApiExplorer.projitems*{f7784c3a-5569-4590-ae28-b721c0426045}*SharedItemsImports = 5
173+
src\Shared\Shared.projitems*{f7784c3a-5569-4590-ae28-b721c0426045}*SharedItemsImports = 5
153174
test\Test.Common\Test.Common.projitems*{f9297626-c37c-402b-afd6-712f3e5e4d7c}*SharedItemsImports = 13
154175
EndGlobalSection
155176
GlobalSection(SolutionConfigurationPlatforms) = preSolution

build/code-analysis.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
</ItemGroup>
1313

1414
<ItemGroup Label="NuGet">
15-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="2.9.8" PrivateAssets="All" />
16-
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8" PrivateAssets="All" />
15+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.0" PrivateAssets="All" />
16+
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0" PrivateAssets="All" />
1717
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-*" PrivateAssets="All" />
1818
</ItemGroup>
1919

src/Common.OData.ApiExplorer/AspNet.OData/ClassSignature.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ internal ClassSignature( string name, IEnumerable<ClassProperty> properties, Api
6060

6161
public override bool Equals( object? obj ) => obj is ClassSignature s && Equals( s );
6262

63-
public bool Equals( ClassSignature other ) => GetHashCode() == other?.GetHashCode();
63+
public bool Equals( ClassSignature? other ) => other != null && GetHashCode() == other.GetHashCode();
6464

6565
int ComputeHashCode()
6666
{

src/Common.OData.ApiExplorer/AspNet.OData/Routing/ODataRouteBuilder.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,9 @@ void ExpandParameterTemplate( StringBuilder template, IEdmTypeReference typeRefe
283283
var typeDef = typeReference.Definition;
284284
var offset = template.Length;
285285

286-
template.Append( "{" );
286+
template.Append( '{' );
287287
template.Append( name );
288-
template.Append( "}" );
288+
template.Append( '}' );
289289

290290
if ( Context.RouteTemplateGeneration == Server || keyAsSegment )
291291
{
@@ -655,10 +655,15 @@ static bool IsFunctionParameter( IEdmOperation? operation, ApiParameterDescripti
655655

656656
sealed class TypeComparer : IEqualityComparer<Type>
657657
{
658-
public bool Equals( Type x, Type y ) => x.IsAssignableFrom( y );
658+
public bool Equals( Type? x, Type? y ) => x != null && x.IsAssignableFrom( y );
659659

660660
public int GetHashCode( Type obj )
661661
{
662+
if ( obj is null )
663+
{
664+
return 0;
665+
}
666+
662667
if ( obj.BaseType == null || obj.BaseType.Equals( typeof( ValueType ) ) || obj.BaseType.Equals( typeof( Array ) ) )
663668
{
664669
return obj.GetHashCode();

src/Common/Versioning/ApiVersionsBaseAttribute.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ namespace Microsoft.AspNetCore.Mvc.Versioning
77
using System;
88
using System.Collections.Generic;
99
using System.Linq;
10-
using static ApiVersion;
10+
#if WEBAPI
11+
using static Microsoft.Web.Http.ApiVersion;
12+
#else
13+
using static Microsoft.AspNetCore.Mvc.ApiVersion;
14+
#endif
1115

1216
/// <summary>
1317
/// Represents the base implementation for the metadata that describes the <see cref="ApiVersion">API versions</see> associated with a service.

src/Common/Versioning/Conventions/ActionApiVersionConventionBuilderBase.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
77
using System;
88
using System.Collections.Generic;
99
using System.Linq;
10-
using static ApiVersionProviderOptions;
10+
#if WEBAPI
11+
using static Microsoft.Web.Http.Versioning.ApiVersionProviderOptions;
12+
#else
13+
using static Microsoft.AspNetCore.Mvc.Versioning.ApiVersionProviderOptions;
14+
#endif
1115

1216
/// <summary>
1317
/// Represents the base implementation of a builder for API versions applied to a controller action.

src/Common/Versioning/Conventions/ApiVersionConventionBuilderBase.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
77
using System;
88
using System.Collections.Generic;
99
using System.Linq;
10-
using static ApiVersionProviderOptions;
10+
#if WEBAPI
11+
using static Microsoft.Web.Http.Versioning.ApiVersionProviderOptions;
12+
#else
13+
using static Microsoft.AspNetCore.Mvc.Versioning.ApiVersionProviderOptions;
14+
#endif
1115

1216
/// <summary>
1317
/// Represents the base implementation of an API version convention builder.

src/Microsoft.AspNet.OData.Versioning.ApiExplorer/System.Web.Http/HttpConfigurationExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ public static class HttpConfigurationExtensions
3535
/// <remarks>This method always replaces the <see cref="IApiExplorer"/> with a new instance of <see cref="ODataApiExplorer"/>.</remarks>
3636
public static ODataApiExplorer AddODataApiExplorer( this HttpConfiguration configuration, Action<ODataApiExplorerOptions>? setupAction )
3737
{
38+
if ( configuration == null )
39+
{
40+
throw new ArgumentNullException( nameof( configuration ) );
41+
}
42+
3843
var options = new ODataApiExplorerOptions( configuration );
3944

4045
setupAction?.Invoke( options );

src/Microsoft.AspNet.WebApi.Versioning.ApiExplorer/System.Web.Http/HttpConfigurationExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public static class HttpConfigurationExtensions
2525
/// <remarks>This method always replaces the <see cref="IApiExplorer"/> with a new instance of <see cref="VersionedApiExplorer"/>.</remarks>
2626
public static VersionedApiExplorer AddVersionedApiExplorer( this HttpConfiguration configuration, Action<ApiExplorerOptions>? setupAction )
2727
{
28+
if ( configuration == null )
29+
{
30+
throw new ArgumentNullException( nameof( configuration ) );
31+
}
32+
2833
var options = new ApiExplorerOptions( configuration );
2934

3035
setupAction?.Invoke( options );

src/Microsoft.AspNet.WebApi.Versioning/Dispatcher/ApiVersionControllerSelector.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
using System.Web.Http;
1313
using System.Web.Http.Controllers;
1414
using System.Web.Http.Dispatcher;
15+
using static Microsoft.Web.Http.Versioning.ErrorCodes;
1516
using static System.StringComparer;
16-
using static Versioning.ErrorCodes;
1717

1818
/// <summary>
1919
/// Represents the logic for selecting a versioned controller.

src/Microsoft.AspNet.WebApi.Versioning/Dispatcher/HttpResponseExceptionFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
using System.Web.Http;
99
using System.Web.Http.Dispatcher;
1010
using System.Web.Http.Tracing;
11-
using static ApiVersion;
11+
using static Microsoft.Web.Http.ApiVersion;
12+
using static Microsoft.Web.Http.Versioning.ErrorCodes;
1213
using static System.Net.HttpStatusCode;
1314
using static System.String;
14-
using static Versioning.ErrorCodes;
1515

1616
sealed class HttpResponseExceptionFactory
1717
{

src/Microsoft.AspNet.WebApi.Versioning/Routing/ApiVersionRouteConstraint.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using System.Net.Http;
66
using System.Web.Http;
77
using System.Web.Http.Routing;
8-
using static ApiVersion;
8+
using static Microsoft.Web.Http.ApiVersion;
99
using static System.String;
1010
using static System.Web.Http.Routing.HttpRouteDirection;
1111

src/Microsoft.AspNet.WebApi.Versioning/System.Web.Http/HttpActionDescriptorExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public static ApiVersionMapping MappingTo( this HttpActionDescriptor action, Api
108108
internal static bool IsAttributeRouted( this HttpActionDescriptor action ) =>
109109
action.Properties.TryGetValue( AttributeRoutedPropertyKey, out bool? value ) && ( value ?? false );
110110

111-
internal static T GetProperty<T>( this HttpActionDescriptor action ) =>
111+
internal static T? GetProperty<T>( this HttpActionDescriptor action ) where T : class =>
112112
action.Properties.TryGetValue( typeof( T ), out T value ) ? value : default;
113113

114114
internal static void SetProperty<T>( this HttpActionDescriptor action, T value ) =>

src/Microsoft.AspNetCore.Mvc.Versioning/Routing/ApiVersionRouteConstraint.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
using Microsoft.AspNetCore.Mvc.Versioning;
55
using Microsoft.AspNetCore.Routing;
66
using System;
7-
using static ApiVersion;
8-
using static AspNetCore.Routing.RouteDirection;
7+
using static Microsoft.AspNetCore.Mvc.ApiVersion;
8+
using static Microsoft.AspNetCore.Routing.RouteDirection;
99
using static System.String;
1010

1111
/// <summary>

src/Microsoft.AspNetCore.Mvc.Versioning/Versioning/ILoggerExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
using System;
66
using System.Collections.Generic;
77
using System.Linq;
8-
using static Extensions.Logging.LoggerMessage;
9-
using static Extensions.Logging.LogLevel;
8+
using static Microsoft.Extensions.Logging.LoggerMessage;
9+
using static Microsoft.Extensions.Logging.LogLevel;
1010
using static System.Globalization.CultureInfo;
1111

1212
static class ILoggerExtensions

src/Microsoft.AspNetCore.OData.Versioning/AspNet.OData/Extensions/IRouteBuilderExtensions.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,11 @@ public static IReadOnlyList<ODataRoute> MapVersionedODataRoutes(
220220
throw new ArgumentNullException( nameof( builder ) );
221221
}
222222

223+
if ( IsNullOrEmpty( routeName ) )
224+
{
225+
throw new ArgumentNullException( nameof( routeName ) );
226+
}
227+
223228
if ( models == null )
224229
{
225230
throw new ArgumentNullException( nameof( models ) );
@@ -249,8 +254,8 @@ public static IReadOnlyList<ODataRoute> MapVersionedODataRoutes(
249254

250255
IEnumerable<IODataRoutingConvention> NewRouteConventions( IServiceProvider services )
251256
{
252-
var conventions = new IODataRoutingConvention[routeConventions.Count + 1];
253-
conventions[0] = new VersionedAttributeRoutingConvention( versionedRouteName, serviceProvider, apiVersion );
257+
var conventions = new IODataRoutingConvention[routeConventions!.Count + 1];
258+
conventions[0] = new VersionedAttributeRoutingConvention( versionedRouteName!, serviceProvider!, apiVersion! );
254259
routeConventions.CopyTo( conventions, 1 );
255260
return conventions;
256261
}

src/Microsoft.AspNetCore.OData.Versioning/AspNet.OData/Routing/ODataRouteBindingInfoConvention.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ static string TrimTrailingNumbers( string name )
259259

260260
sealed class ODataAttributeRouteInfoComparer : IEqualityComparer<ODataAttributeRouteInfo>
261261
{
262-
public bool Equals( ODataAttributeRouteInfo x, ODataAttributeRouteInfo y )
262+
public bool Equals( ODataAttributeRouteInfo? x, ODataAttributeRouteInfo? y )
263263
{
264264
if ( x == null )
265265
{

src/Microsoft.AspNetCore.OData.Versioning/AspNet.OData/Routing/ODataRouteCollectionProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections;
66
using System.Collections.Generic;
7+
using System.Diagnostics.CodeAnalysis;
78

89
/// <summary>
910
/// Represents an object that manages the collection of registered OData routes.
@@ -45,7 +46,7 @@ sealed class ODataRouteCollection : IODataRouteCollection
4546

4647
public int IndexOf( ODataRouteMapping item ) => items.IndexOf( item );
4748

48-
public bool TryGetValue( ApiVersion key, out IReadOnlyList<ODataRouteMapping>? value )
49+
public bool TryGetValue( ApiVersion key, [NotNullWhen( true )] out IReadOnlyList<ODataRouteMapping>? value )
4950
{
5051
if ( dictionary.TryGetValue( key, out var list ) )
5152
{

0 commit comments

Comments
 (0)