Skip to content

Commit 857bb0f

Browse files
authored
Enable nullable in TestHost and Hosting.WindowsServices (#28343)
1 parent 53b6420 commit 857bb0f

18 files changed

+104
-91
lines changed

AspNetCore.sln

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,6 +1567,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Cachin
15671567
EndProject
15681568
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.StackExchangeRedis.Tests", "src\Caching\StackExchangeRedis\test\Microsoft.Extensions.Caching.StackExchangeRedis.Tests.csproj", "{14DBB385-A1B1-49B2-A737-4DF90E127E5A}"
15691569
EndProject
1570+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStartupInjectionAssemblyName", "src\Hosting\test\testassets\IStartupInjectionAssemblyName\IStartupInjectionAssemblyName.csproj", "{5FD94164-7D13-4618-93AD-7346B0EA0CDD}"
1571+
EndProject
15701572
Global
15711573
GlobalSection(SolutionConfigurationPlatforms) = preSolution
15721574
Debug|Any CPU = Debug|Any CPU
@@ -7503,6 +7505,18 @@ Global
75037505
{14DBB385-A1B1-49B2-A737-4DF90E127E5A}.Release|x64.Build.0 = Release|Any CPU
75047506
{14DBB385-A1B1-49B2-A737-4DF90E127E5A}.Release|x86.ActiveCfg = Release|Any CPU
75057507
{14DBB385-A1B1-49B2-A737-4DF90E127E5A}.Release|x86.Build.0 = Release|Any CPU
7508+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
7509+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
7510+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|x64.ActiveCfg = Debug|Any CPU
7511+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|x64.Build.0 = Debug|Any CPU
7512+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|x86.ActiveCfg = Debug|Any CPU
7513+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Debug|x86.Build.0 = Debug|Any CPU
7514+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU
7515+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|Any CPU.Build.0 = Release|Any CPU
7516+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|x64.ActiveCfg = Release|Any CPU
7517+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|x64.Build.0 = Release|Any CPU
7518+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|x86.ActiveCfg = Release|Any CPU
7519+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD}.Release|x86.Build.0 = Release|Any CPU
75067520
EndGlobalSection
75077521
GlobalSection(SolutionProperties) = preSolution
75087522
HideSolutionNode = FALSE
@@ -8286,6 +8300,7 @@ Global
82868300
{20CA28CC-FCDB-49F3-8452-5036E0BADCA7} = {43ED0D49-E29A-4B12-8D10-531E006038E5}
82878301
{3CC4AA4E-F7E6-4BAE-B2B7-BCEC9509F68D} = {A7B8F295-AD6E-42C1-A215-17337033EBE9}
82888302
{14DBB385-A1B1-49B2-A737-4DF90E127E5A} = {A7B8F295-AD6E-42C1-A215-17337033EBE9}
8303+
{5FD94164-7D13-4618-93AD-7346B0EA0CDD} = {C1409A8F-555A-4A88-B803-C6D3E8B6C3B0}
82898304
EndGlobalSection
82908305
GlobalSection(ExtensibilityGlobals) = postSolution
82918306
SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F}

src/Hosting/TestHost/src/ApplicationWrapper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ internal abstract class ApplicationWrapper
1414

1515
internal abstract Task ProcessRequestAsync(object context);
1616

17-
internal abstract void DisposeContext(object context, Exception exception);
17+
internal abstract void DisposeContext(object context, Exception? exception);
1818
}
1919

20-
internal class ApplicationWrapper<TContext> : ApplicationWrapper, IHttpApplication<TContext>
20+
internal class ApplicationWrapper<TContext> : ApplicationWrapper, IHttpApplication<TContext> where TContext : notnull
2121
{
2222
private readonly IHttpApplication<TContext> _application;
2323
private readonly Action _preProcessRequestAsync;
@@ -38,12 +38,12 @@ TContext IHttpApplication<TContext>.CreateContext(IFeatureCollection features)
3838
return _application.CreateContext(features);
3939
}
4040

41-
internal override void DisposeContext(object context, Exception exception)
41+
internal override void DisposeContext(object context, Exception? exception)
4242
{
4343
((IHttpApplication<TContext>)this).DisposeContext((TContext)context, exception);
4444
}
4545

46-
void IHttpApplication<TContext>.DisposeContext(TContext context, Exception exception)
46+
void IHttpApplication<TContext>.DisposeContext(TContext context, Exception? exception)
4747
{
4848
_application.DisposeContext(context, exception);
4949
}

src/Hosting/TestHost/src/AsyncStreamWrapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public override ValueTask<int> ReadAsync(Memory<byte> buffer, CancellationToken
6464
return _inner.ReadAsync(buffer, cancellationToken);
6565
}
6666

67-
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
67+
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state)
6868
{
6969
return _inner.BeginRead(buffer, offset, count, callback, state);
7070
}
@@ -94,7 +94,7 @@ public override void Write(byte[] buffer, int offset, int count)
9494
_inner.Write(buffer, offset, count);
9595
}
9696

97-
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
97+
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state)
9898
{
9999
return _inner.BeginWrite(buffer, offset, count, callback, state);
100100
}

src/Hosting/TestHost/src/ClientHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ protected override async Task<HttpResponseMessage> SendAsync(
111111
}
112112
req.Method = request.Method.ToString();
113113

114-
req.Scheme = request.RequestUri.Scheme;
114+
req.Scheme = request.RequestUri!.Scheme;
115115

116116
var canHaveBody = false;
117117
if (requestContent != null)

src/Hosting/TestHost/src/HttpContextBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ internal class HttpContextBuilder : IHttpBodyControlFeature, IHttpResetFeature
2525
private readonly ResponseTrailersFeature _responseTrailersFeature = new ResponseTrailersFeature();
2626
private bool _pipelineFinished;
2727
private bool _returningResponse;
28-
private object _testContext;
28+
private object? _testContext;
2929
private readonly Pipe _requestPipe;
3030

31-
private Action<HttpContext> _responseReadCompleteCallback;
32-
private Task _sendRequestStreamTask;
31+
private Action<HttpContext>? _responseReadCompleteCallback;
32+
private Task? _sendRequestStreamTask;
3333

3434
internal HttpContextBuilder(ApplicationWrapper application, bool allowSynchronousIO, bool preserveExecutionContext)
3535
{

src/Hosting/TestHost/src/Microsoft.AspNetCore.TestHost.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<Description>ASP.NET Core web server for writing and running tests.</Description>
55
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>aspnetcore;hosting;testing</PackageTags>
8+
<Nullable>enable</Nullable>
89
</PropertyGroup>
910

1011
<ItemGroup>

src/Hosting/TestHost/src/PublicAPI.Shipped.txt

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,39 @@ Microsoft.AspNetCore.TestHost.TestServer.PreserveExecutionContext.set -> void
1414
Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions
1515
Microsoft.AspNetCore.TestHost.WebHostBuilderFactory
1616
Microsoft.AspNetCore.TestHost.WebSocketClient
17-
~Microsoft.AspNetCore.TestHost.RequestBuilder.AddHeader(string name, string value) -> Microsoft.AspNetCore.TestHost.RequestBuilder
18-
~Microsoft.AspNetCore.TestHost.RequestBuilder.And(System.Action<System.Net.Http.HttpRequestMessage> configure) -> Microsoft.AspNetCore.TestHost.RequestBuilder
19-
~Microsoft.AspNetCore.TestHost.RequestBuilder.GetAsync() -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
20-
~Microsoft.AspNetCore.TestHost.RequestBuilder.PostAsync() -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
21-
~Microsoft.AspNetCore.TestHost.RequestBuilder.RequestBuilder(Microsoft.AspNetCore.TestHost.TestServer server, string path) -> void
22-
~Microsoft.AspNetCore.TestHost.RequestBuilder.SendAsync(string method) -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
23-
~Microsoft.AspNetCore.TestHost.RequestBuilder.TestServer.get -> Microsoft.AspNetCore.TestHost.TestServer
24-
~Microsoft.AspNetCore.TestHost.TestServer.BaseAddress.get -> System.Uri
25-
~Microsoft.AspNetCore.TestHost.TestServer.BaseAddress.set -> void
26-
~Microsoft.AspNetCore.TestHost.TestServer.CreateClient() -> System.Net.Http.HttpClient
27-
~Microsoft.AspNetCore.TestHost.TestServer.CreateHandler() -> System.Net.Http.HttpMessageHandler
28-
~Microsoft.AspNetCore.TestHost.TestServer.CreateRequest(string path) -> Microsoft.AspNetCore.TestHost.RequestBuilder
29-
~Microsoft.AspNetCore.TestHost.TestServer.CreateWebSocketClient() -> Microsoft.AspNetCore.TestHost.WebSocketClient
30-
~Microsoft.AspNetCore.TestHost.TestServer.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection
31-
~Microsoft.AspNetCore.TestHost.TestServer.Host.get -> Microsoft.AspNetCore.Hosting.IWebHost
32-
~Microsoft.AspNetCore.TestHost.TestServer.SendAsync(System.Action<Microsoft.AspNetCore.Http.HttpContext> configureContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.HttpContext>
33-
~Microsoft.AspNetCore.TestHost.TestServer.Services.get -> System.IServiceProvider
34-
~Microsoft.AspNetCore.TestHost.TestServer.TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) -> void
35-
~Microsoft.AspNetCore.TestHost.TestServer.TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) -> void
36-
~Microsoft.AspNetCore.TestHost.TestServer.TestServer(System.IServiceProvider services) -> void
37-
~Microsoft.AspNetCore.TestHost.TestServer.TestServer(System.IServiceProvider services, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) -> void
38-
~Microsoft.AspNetCore.TestHost.WebSocketClient.ConfigureRequest.get -> System.Action<Microsoft.AspNetCore.Http.HttpRequest>
39-
~Microsoft.AspNetCore.TestHost.WebSocketClient.ConfigureRequest.set -> void
40-
~Microsoft.AspNetCore.TestHost.WebSocketClient.ConnectAsync(System.Uri uri, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket>
41-
~Microsoft.AspNetCore.TestHost.WebSocketClient.SubProtocols.get -> System.Collections.Generic.IList<string>
42-
~static Microsoft.AspNetCore.TestHost.HostBuilderTestServerExtensions.GetTestClient(this Microsoft.Extensions.Hosting.IHost host) -> System.Net.Http.HttpClient
43-
~static Microsoft.AspNetCore.TestHost.HostBuilderTestServerExtensions.GetTestServer(this Microsoft.Extensions.Hosting.IHost host) -> Microsoft.AspNetCore.TestHost.TestServer
44-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.ConfigureTestContainer<TContainer>(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<TContainer> servicesConfiguration) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
45-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.ConfigureTestServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> servicesConfiguration) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
46-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.GetTestClient(this Microsoft.AspNetCore.Hosting.IWebHost host) -> System.Net.Http.HttpClient
47-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.GetTestServer(this Microsoft.AspNetCore.Hosting.IWebHost host) -> Microsoft.AspNetCore.TestHost.TestServer
48-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string applicationBasePath, string solutionName = "*.sln") -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
49-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string solutionName = "*.sln") -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
50-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseTestServer(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
51-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderFactory.CreateFromAssemblyEntryPoint(System.Reflection.Assembly assembly, string[] args) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
52-
~static Microsoft.AspNetCore.TestHost.WebHostBuilderFactory.CreateFromTypesAssemblyEntryPoint<T>(string[] args) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder
17+
Microsoft.AspNetCore.TestHost.RequestBuilder.AddHeader(string! name, string! value) -> Microsoft.AspNetCore.TestHost.RequestBuilder!
18+
Microsoft.AspNetCore.TestHost.RequestBuilder.And(System.Action<System.Net.Http.HttpRequestMessage!>! configure) -> Microsoft.AspNetCore.TestHost.RequestBuilder!
19+
Microsoft.AspNetCore.TestHost.RequestBuilder.GetAsync() -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage!>!
20+
Microsoft.AspNetCore.TestHost.RequestBuilder.PostAsync() -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage!>!
21+
Microsoft.AspNetCore.TestHost.RequestBuilder.RequestBuilder(Microsoft.AspNetCore.TestHost.TestServer! server, string! path) -> void
22+
Microsoft.AspNetCore.TestHost.RequestBuilder.SendAsync(string! method) -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage!>!
23+
Microsoft.AspNetCore.TestHost.RequestBuilder.TestServer.get -> Microsoft.AspNetCore.TestHost.TestServer!
24+
Microsoft.AspNetCore.TestHost.TestServer.BaseAddress.get -> System.Uri!
25+
Microsoft.AspNetCore.TestHost.TestServer.BaseAddress.set -> void
26+
Microsoft.AspNetCore.TestHost.TestServer.CreateClient() -> System.Net.Http.HttpClient!
27+
Microsoft.AspNetCore.TestHost.TestServer.CreateHandler() -> System.Net.Http.HttpMessageHandler!
28+
Microsoft.AspNetCore.TestHost.TestServer.CreateRequest(string! path) -> Microsoft.AspNetCore.TestHost.RequestBuilder!
29+
Microsoft.AspNetCore.TestHost.TestServer.CreateWebSocketClient() -> Microsoft.AspNetCore.TestHost.WebSocketClient!
30+
Microsoft.AspNetCore.TestHost.TestServer.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection!
31+
Microsoft.AspNetCore.TestHost.TestServer.Host.get -> Microsoft.AspNetCore.Hosting.IWebHost!
32+
Microsoft.AspNetCore.TestHost.TestServer.SendAsync(System.Action<Microsoft.AspNetCore.Http.HttpContext!>! configureContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.HttpContext!>!
33+
Microsoft.AspNetCore.TestHost.TestServer.Services.get -> System.IServiceProvider!
34+
Microsoft.AspNetCore.TestHost.TestServer.TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder! builder) -> void
35+
Microsoft.AspNetCore.TestHost.TestServer.TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder! builder, Microsoft.AspNetCore.Http.Features.IFeatureCollection! featureCollection) -> void
36+
Microsoft.AspNetCore.TestHost.TestServer.TestServer(System.IServiceProvider! services) -> void
37+
Microsoft.AspNetCore.TestHost.TestServer.TestServer(System.IServiceProvider! services, Microsoft.AspNetCore.Http.Features.IFeatureCollection! featureCollection) -> void
38+
Microsoft.AspNetCore.TestHost.WebSocketClient.ConfigureRequest.get -> System.Action<Microsoft.AspNetCore.Http.HttpRequest!>?
39+
Microsoft.AspNetCore.TestHost.WebSocketClient.ConfigureRequest.set -> void
40+
Microsoft.AspNetCore.TestHost.WebSocketClient.ConnectAsync(System.Uri! uri, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket!>!
41+
Microsoft.AspNetCore.TestHost.WebSocketClient.SubProtocols.get -> System.Collections.Generic.IList<string!>!
42+
static Microsoft.AspNetCore.TestHost.HostBuilderTestServerExtensions.GetTestClient(this Microsoft.Extensions.Hosting.IHost! host) -> System.Net.Http.HttpClient!
43+
static Microsoft.AspNetCore.TestHost.HostBuilderTestServerExtensions.GetTestServer(this Microsoft.Extensions.Hosting.IHost! host) -> Microsoft.AspNetCore.TestHost.TestServer!
44+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.ConfigureTestContainer<TContainer>(this Microsoft.AspNetCore.Hosting.IWebHostBuilder! webHostBuilder, System.Action<TContainer>! servicesConfiguration) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder!
45+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.ConfigureTestServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder! webHostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection!>! servicesConfiguration) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder!
46+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.GetTestClient(this Microsoft.AspNetCore.Hosting.IWebHost! host) -> System.Net.Http.HttpClient!
47+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.GetTestServer(this Microsoft.AspNetCore.Hosting.IWebHost! host) -> Microsoft.AspNetCore.TestHost.TestServer!
48+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder! builder, string! solutionRelativePath, string! applicationBasePath, string! solutionName = "*.sln") -> Microsoft.AspNetCore.Hosting.IWebHostBuilder!
49+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder! builder, string! solutionRelativePath, string! solutionName = "*.sln") -> Microsoft.AspNetCore.Hosting.IWebHostBuilder!
50+
static Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseTestServer(this Microsoft.AspNetCore.Hosting.IWebHostBuilder! builder) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder!
51+
static Microsoft.AspNetCore.TestHost.WebHostBuilderFactory.CreateFromAssemblyEntryPoint(System.Reflection.Assembly! assembly, string![]! args) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder?
52+
static Microsoft.AspNetCore.TestHost.WebHostBuilderFactory.CreateFromTypesAssemblyEntryPoint<T>(string![]! args) -> Microsoft.AspNetCore.Hosting.IWebHostBuilder?

src/Hosting/TestHost/src/RequestFeature.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public RequestFeature()
1919
Protocol = HttpProtocol.Http11;
2020
QueryString = "";
2121
Scheme = "http";
22+
RawTarget = "";
2223
}
2324

2425
public Stream Body { get; set; }

src/Hosting/TestHost/src/ResponseBodyPipeWriter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private void CheckNotComplete()
7171
}
7272
}
7373

74-
public override void Complete(Exception exception = null)
74+
public override void Complete(Exception? exception = null)
7575
{
7676
// No-op in the non-error case
7777
if (exception != null)

src/Hosting/TestHost/src/ResponseBodyReaderStream.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
using System;
55
using System.Buffers;
6-
using System.Diagnostics.Contracts;
6+
using System.Diagnostics;
77
using System.IO;
88
using System.IO.Pipelines;
99
using System.Threading;
@@ -18,7 +18,7 @@ internal class ResponseBodyReaderStream : Stream
1818
{
1919
private bool _readerComplete;
2020
private bool _aborted;
21-
private Exception _abortException;
21+
private Exception? _abortException;
2222

2323
private readonly object _abortLock = new object();
2424
private readonly Action _abortRequest;
@@ -124,7 +124,7 @@ internal void Cancel()
124124

125125
internal void Abort(Exception innerException)
126126
{
127-
Contract.Requires(innerException != null);
127+
Debug.Assert(innerException != null);
128128

129129
lock (_abortLock)
130130
{

0 commit comments

Comments
 (0)