From 70741b9608983e47a10af94f2049db690e6fd8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Karnok?= Date: Thu, 28 Jun 2018 21:46:00 +0200 Subject: [PATCH] 4.x: simplify default(X) usages --- .../System.Reactive/Internal/PriorityQueue.cs | 2 +- .../Linq/Observable/Aggregate.cs | 19 +++++++++++--- .../Linq/Observable/LastAsync.cs | 26 ++++++++++++++----- .../Linq/Observable/LastOrDefaultAsync.cs | 24 +++++++++++++---- .../System.Reactive/Linq/Observable/Latest.cs | 2 +- .../Linq/Observable/MostRecent.cs | 2 +- .../System.Reactive/Linq/Observable/Next.cs | 2 +- .../src/System.Reactive/Notification.cs | 2 +- .../System.Reactive/Subjects/AsyncSubject.cs | 8 +++--- .../Subjects/BehaviorSubject.cs | 4 +-- .../System.Reactive/Subjects/ReplaySubject.cs | 2 +- .../Tasks/TaskObservableExtensions.cs | 2 +- .../Tests.System.Reactive.csproj | 1 + .../Tests/Linq/Observable/UsingTest.cs | 4 +-- 14 files changed, 69 insertions(+), 31 deletions(-) diff --git a/Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs b/Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs index c1f4832563..bd2ac6cfbf 100644 --- a/Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs +++ b/Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs @@ -83,7 +83,7 @@ public T Peek() private void RemoveAt(int index) { _items[index] = _items[--_size]; - _items[_size] = default(IndexedItem); + _items[_size] = default; if (Percolate(index) == index) Heapify(index); diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Aggregate.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Aggregate.cs index 52a39391b1..170d2c5dda 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Aggregate.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Aggregate.cs @@ -29,8 +29,6 @@ public _(Func accumulator, IObserver observe : base(observer) { _accumulator = accumulator; - _accumulation = default(TSource); - _hasAccumulation = false; } public override void OnNext(TSource value) @@ -48,11 +46,18 @@ public override void OnNext(TSource value) } catch (Exception exception) { + _accumulation = default; ForwardOnError(exception); } } } + public override void OnError(Exception error) + { + _accumulation = default; + ForwardOnError(error); + } + public override void OnCompleted() { if (!_hasAccumulation) @@ -61,7 +66,9 @@ public override void OnCompleted() } else { - ForwardOnNext(_accumulation); + var accumulation = _accumulation; + _accumulation = default; + ForwardOnNext(accumulation); ForwardOnCompleted(); } } @@ -105,18 +112,22 @@ public override void OnNext(TSource value) } catch (Exception exception) { + _accumulation = default; ForwardOnError(exception); } } public override void OnError(Exception error) { + _accumulation = default; ForwardOnError(error); } public override void OnCompleted() { - ForwardOnNext(_accumulation); + var accumulation = _accumulation; + _accumulation = default; + ForwardOnNext(accumulation); ForwardOnCompleted(); } } diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastAsync.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastAsync.cs index 1b0b74240d..ba6bd60184 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastAsync.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastAsync.cs @@ -27,8 +27,6 @@ internal sealed class _ : IdentitySink public _(IObserver observer) : base(observer) { - _value = default(TSource); - _seenValue = false; } public override void OnNext(TSource value) @@ -37,6 +35,12 @@ public override void OnNext(TSource value) _seenValue = true; } + public override void OnError(Exception error) + { + _value = default; + ForwardOnError(error); + } + public override void OnCompleted() { if (!_seenValue) @@ -45,7 +49,9 @@ public override void OnCompleted() } else { - ForwardOnNext(_value); + var value = _value; + _value = default; + ForwardOnNext(value); ForwardOnCompleted(); } } @@ -77,9 +83,6 @@ public _(Func predicate, IObserver observer) : base(observer) { _predicate = predicate; - - _value = default(TSource); - _seenValue = false; } public override void OnNext(TSource value) @@ -92,6 +95,7 @@ public override void OnNext(TSource value) } catch (Exception ex) { + _value = default; ForwardOnError(ex); return; } @@ -103,6 +107,12 @@ public override void OnNext(TSource value) } } + public override void OnError(Exception error) + { + _value = default; + ForwardOnError(error); + } + public override void OnCompleted() { if (!_seenValue) @@ -111,7 +121,9 @@ public override void OnCompleted() } else { - ForwardOnNext(_value); + var value = _value; + _value = default; + ForwardOnNext(value); ForwardOnCompleted(); } } diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastOrDefaultAsync.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastOrDefaultAsync.cs index 82306a62d4..6bdf480311 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastOrDefaultAsync.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/LastOrDefaultAsync.cs @@ -26,7 +26,6 @@ internal sealed class _ : IdentitySink public _(IObserver observer) : base(observer) { - _value = default(TSource); } public override void OnNext(TSource value) @@ -34,9 +33,17 @@ public override void OnNext(TSource value) _value = value; } + public override void OnError(Exception error) + { + _value = default; + ForwardOnError(error); + } + public override void OnCompleted() { - ForwardOnNext(_value); + var value = _value; + _value = default; + ForwardOnNext(value); ForwardOnCompleted(); } } @@ -66,8 +73,6 @@ public _(Func predicate, IObserver observer) : base(observer) { _predicate = predicate; - - _value = default(TSource); } public override void OnNext(TSource value) @@ -80,6 +85,7 @@ public override void OnNext(TSource value) } catch (Exception ex) { + _value = default; ForwardOnError(ex); return; } @@ -90,9 +96,17 @@ public override void OnNext(TSource value) } } + public override void OnError(Exception error) + { + _value = default; + ForwardOnError(error); + } + public override void OnCompleted() { - ForwardOnNext(_value); + var value = _value; + _value = default; + ForwardOnNext(value); ForwardOnCompleted(); } } diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Latest.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Latest.cs index 89d305f8af..fa8d178575 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Latest.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Latest.cs @@ -119,7 +119,7 @@ public override bool TryMoveNext(out TSource current) break; } - current = default(TSource); + current = default; return false; } } diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MostRecent.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MostRecent.cs index 64b91d3d41..a999bf777f 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MostRecent.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MostRecent.cs @@ -72,7 +72,7 @@ public override bool TryMoveNext(out TSource current) break; } - current = default(TSource); + current = default; return false; } } diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Next.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Next.cs index aee68493c6..e7c95e3c7c 100644 --- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Next.cs +++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Next.cs @@ -130,7 +130,7 @@ public override bool TryMoveNext(out TSource current) break; } - current = default(TSource); + current = default; return false; } } diff --git a/Rx.NET/Source/src/System.Reactive/Notification.cs b/Rx.NET/Source/src/System.Reactive/Notification.cs index a6287ff6cb..92baee8aa3 100644 --- a/Rx.NET/Source/src/System.Reactive/Notification.cs +++ b/Rx.NET/Source/src/System.Reactive/Notification.cs @@ -220,7 +220,7 @@ public OnErrorNotification(Exception exception) /// /// Throws the exception. /// - public override T Value { get { Exception.Throw(); return default(T); } } + public override T Value { get { Exception.Throw(); return default; } } /// /// Returns the exception. diff --git a/Rx.NET/Source/src/System.Reactive/Subjects/AsyncSubject.cs b/Rx.NET/Source/src/System.Reactive/Subjects/AsyncSubject.cs index 94c0a94101..c04d147b82 100644 --- a/Rx.NET/Source/src/System.Reactive/Subjects/AsyncSubject.cs +++ b/Rx.NET/Source/src/System.Reactive/Subjects/AsyncSubject.cs @@ -134,7 +134,7 @@ public override void OnError(Exception error) if (observers == DISPOSED) { _exception = null; - _value = default(T); + _value = default; ThrowDisposed(); break; } @@ -167,7 +167,7 @@ public override void OnNext(T value) var observers = Volatile.Read(ref _observers); if (observers == DISPOSED) { - _value = default(T); + _value = default; _exception = null; ThrowDisposed(); return; @@ -226,7 +226,7 @@ bool Add(AsyncSubjectDisposable inner) var a = Volatile.Read(ref _observers); if (a == DISPOSED) { - _value = default(T); + _value = default; _exception = null; ThrowDisposed(); return true; @@ -339,7 +339,7 @@ public override void Dispose() if (Interlocked.Exchange(ref _observers, DISPOSED) != DISPOSED) { _exception = null; - _value = default(T); + _value = default; _hasValue = false; } } diff --git a/Rx.NET/Source/src/System.Reactive/Subjects/BehaviorSubject.cs b/Rx.NET/Source/src/System.Reactive/Subjects/BehaviorSubject.cs index a1960f4d0a..390b8eefe0 100644 --- a/Rx.NET/Source/src/System.Reactive/Subjects/BehaviorSubject.cs +++ b/Rx.NET/Source/src/System.Reactive/Subjects/BehaviorSubject.cs @@ -115,7 +115,7 @@ public bool TryGetValue(out T value) { if (_isDisposed) { - value = default(T); + value = default; return false; } else if (_exception != null) @@ -275,7 +275,7 @@ public override void Dispose() { _isDisposed = true; _observers = null; - _value = default(T); + _value = default; _exception = null; } } diff --git a/Rx.NET/Source/src/System.Reactive/Subjects/ReplaySubject.cs b/Rx.NET/Source/src/System.Reactive/Subjects/ReplaySubject.cs index 88a5ee9768..7b4e738f77 100644 --- a/Rx.NET/Source/src/System.Reactive/Subjects/ReplaySubject.cs +++ b/Rx.NET/Source/src/System.Reactive/Subjects/ReplaySubject.cs @@ -592,7 +592,7 @@ protected override int Replay(IObserver observer) protected override void DisposeCore() { - _value = default(T); + _value = default; } } diff --git a/Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs b/Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs index a231699441..5d2fd13fab 100644 --- a/Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs +++ b/Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs @@ -290,7 +290,7 @@ private sealed class ToTaskObserver : SafeObserver { private readonly CancellationToken _ct; private readonly TaskCompletionSource _tcs; - private readonly CancellationTokenRegistration _ctr = default(CancellationTokenRegistration); + private readonly CancellationTokenRegistration _ctr = default; private bool _hasValue; private TResult _lastValue; diff --git a/Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj b/Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj index 0803528374..c323df57bd 100644 --- a/Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj +++ b/Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj @@ -2,6 +2,7 @@ net46;netcoreapp2.0 $(NoWarn);CS0618 + 7.1 diff --git a/Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingTest.cs b/Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingTest.cs index 772ab7aa78..7ce85b3523 100644 --- a/Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingTest.cs +++ b/Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingTest.cs @@ -48,7 +48,7 @@ public void Using_Null() () => { disposeInvoked++; - disposable = default(MockDisposable); + disposable = default; return disposable; }, d => @@ -56,7 +56,7 @@ public void Using_Null() _d = d; createInvoked++; xs = scheduler.CreateColdObservable( - OnNext(100, scheduler.Clock), + OnNext(100, scheduler.Clock), OnCompleted(200)); return xs; }