Browse Source

Temporary do not use MemberNotNull

pull/5998/head
Max Katz 5 years ago
parent
commit
23b4168cbc
  1. 7
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/AvaloniaPropertyViewModel.cs
  2. 8
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/ClrPropertyViewModel.cs
  3. 8
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs
  4. 50
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/TreeNodeCollection.cs

7
src/Avalonia.Diagnostics/Diagnostics/ViewModels/AvaloniaPropertyViewModel.cs

@ -1,5 +1,3 @@
using System.Diagnostics.CodeAnalysis;
namespace Avalonia.Diagnostics.ViewModels
{
internal class AvaloniaPropertyViewModel : PropertyViewModel
@ -10,7 +8,10 @@ namespace Avalonia.Diagnostics.ViewModels
private string _priority;
private string _group;
#nullable disable
// Remove "nullable disable" after MemberNotNull will work on our CI.
public AvaloniaPropertyViewModel(AvaloniaObject o, AvaloniaProperty property)
#nullable restore
{
_target = o;
Property = property;
@ -47,7 +48,7 @@ namespace Avalonia.Diagnostics.ViewModels
public override string Group => _group;
[MemberNotNull(nameof(_type), nameof(_group), nameof(_priority))]
// [MemberNotNull(nameof(_type), nameof(_group), nameof(_priority))]
public override void Update()
{
if (Property.IsDirect)

8
src/Avalonia.Diagnostics/Diagnostics/ViewModels/ClrPropertyViewModel.cs

@ -1,5 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Reflection;
namespace Avalonia.Diagnostics.ViewModels
{
@ -9,7 +8,10 @@ namespace Avalonia.Diagnostics.ViewModels
private string _type;
private object? _value;
#nullable disable
// Remove "nullable disable" after MemberNotNull will work on our CI.
public ClrPropertyViewModel(object o, PropertyInfo property)
#nullable restore
{
_target = o;
Property = property;
@ -47,7 +49,7 @@ namespace Avalonia.Diagnostics.ViewModels
}
}
[MemberNotNull(nameof(_type))]
// [MemberNotNull(nameof(_type))]
public override void Update()
{
var val = Property.GetValue(_target);

8
src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs

@ -1,6 +1,5 @@
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Diagnostics.Models;
@ -24,7 +23,10 @@ namespace Avalonia.Diagnostics.ViewModels
private bool _shouldVisualizeDirtyRects;
private bool _showFpsOverlay;
#nullable disable
// Remove "nullable disable" after MemberNotNull will work on our CI.
public MainViewModel(TopLevel root)
#nullable restore
{
_root = root;
_logicalTree = new TreePageViewModel(this, LogicalTreeNode.Create(root));
@ -85,7 +87,7 @@ namespace Avalonia.Diagnostics.ViewModels
public ViewModelBase Content
{
get { return _content; }
[MemberNotNull(nameof(_content))]
// [MemberNotNull(nameof(_content))]
private set
{
if (_content is TreePageViewModel oldTree &&
@ -116,7 +118,7 @@ namespace Avalonia.Diagnostics.ViewModels
public int SelectedTab
{
get { return _selectedTab; }
[MemberNotNull(nameof(_content))]
// [MemberNotNull(nameof(_content))]
set
{
_selectedTab = value;

50
src/Avalonia.Diagnostics/Diagnostics/ViewModels/TreeNodeCollection.cs

@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using Avalonia.Collections;
@ -15,52 +14,22 @@ namespace Avalonia.Diagnostics.ViewModels
public TreeNodeCollection(TreeNode owner) => Owner = owner;
public TreeNode this[int index]
{
get
{
EnsureInitialized();
return _inner[index];
}
}
public TreeNode this[int index] => EnsureInitialized()[index];
public int Count
{
get
{
EnsureInitialized();
return _inner.Count;
}
}
public int Count => EnsureInitialized().Count;
protected TreeNode Owner { get; }
public event NotifyCollectionChangedEventHandler? CollectionChanged
{
add
{
EnsureInitialized();
_inner.CollectionChanged += value;
}
remove
{
EnsureInitialized();
_inner.CollectionChanged -= value;
}
add => EnsureInitialized().CollectionChanged += value;
remove => EnsureInitialized().CollectionChanged -= value;
}
public event PropertyChangedEventHandler? PropertyChanged
{
add
{
EnsureInitialized();
_inner.PropertyChanged += value;
}
remove
{
EnsureInitialized();
_inner.PropertyChanged -= value;
}
add => EnsureInitialized().PropertyChanged += value;
remove => EnsureInitialized().PropertyChanged -= value;
}
public virtual void Dispose()
@ -76,22 +45,21 @@ namespace Avalonia.Diagnostics.ViewModels
public IEnumerator<TreeNode> GetEnumerator()
{
EnsureInitialized();
return _inner.GetEnumerator();
return EnsureInitialized().GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
protected abstract void Initialize(AvaloniaList<TreeNode> nodes);
[MemberNotNull(nameof(_inner))]
private void EnsureInitialized()
private AvaloniaList<TreeNode> EnsureInitialized()
{
if (_inner is null)
{
_inner = new AvaloniaList<TreeNode>();
Initialize(_inner);
}
return _inner;
}
}
}

Loading…
Cancel
Save