diff --git a/osu.Android.props b/osu.Android.props
index 66f518f3d5..fdec4e575b 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -11,7 +11,7 @@
manifestmerger.jar
-
+
diff --git a/osu.Game.Rulesets.Osu.Tests/Editor/TestScenePathControlPointVisualiser.cs b/osu.Game.Rulesets.Osu.Tests/Editor/TestScenePathControlPointVisualiser.cs
index 37561fda85..0d6841017e 100644
--- a/osu.Game.Rulesets.Osu.Tests/Editor/TestScenePathControlPointVisualiser.cs
+++ b/osu.Game.Rulesets.Osu.Tests/Editor/TestScenePathControlPointVisualiser.cs
@@ -184,7 +184,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
{
MenuItem item = visualiser.ContextMenuItems.FirstOrDefault(menuItem => menuItem.Text.Value == "Curve type")?.Items.FirstOrDefault(menuItem => menuItem.Text.Value == contextMenuText);
- item?.Action?.Value();
+ item?.Action.Value?.Invoke();
});
}
}
diff --git a/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneSliderSplitting.cs b/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneSliderSplitting.cs
index 605771fb20..8ba97892fe 100644
--- a/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneSliderSplitting.cs
+++ b/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneSliderSplitting.cs
@@ -244,7 +244,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
MenuItem? item = visualiser.ContextMenuItems.FirstOrDefault(menuItem => menuItem.Text.Value == contextMenuText);
- item?.Action?.Value();
+ item?.Action.Value?.Invoke();
});
}
}
diff --git a/osu.Game.Rulesets.Taiko/Skinning/Default/DefaultInputDrum.cs b/osu.Game.Rulesets.Taiko/Skinning/Default/DefaultInputDrum.cs
index 6d19db999c..60bacf6413 100644
--- a/osu.Game.Rulesets.Taiko/Skinning/Default/DefaultInputDrum.cs
+++ b/osu.Game.Rulesets.Taiko/Skinning/Default/DefaultInputDrum.cs
@@ -148,7 +148,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Default
back = rim;
}
- if (target != null)
+ if (target != null && back != null)
{
const float scale_amount = 0.05f;
const float alpha_amount = 0.5f;
diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneHUDOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneHUDOverlay.cs
index f97019e466..c6dad1b25e 100644
--- a/osu.Game.Tests/Visual/Gameplay/TestSceneHUDOverlay.cs
+++ b/osu.Game.Tests/Visual/Gameplay/TestSceneHUDOverlay.cs
@@ -213,7 +213,7 @@ namespace osu.Game.Tests.Visual.Gameplay
AddStep("attempt seek", () =>
{
- InputManager.MoveMouseTo(getSongProgress());
+ InputManager.MoveMouseTo(getSongProgress().AsNonNull());
InputManager.Click(MouseButton.Left);
});
diff --git a/osu.Game.Tests/Visual/Navigation/TestSceneChangeAndUseGameplayBindings.cs b/osu.Game.Tests/Visual/Navigation/TestSceneChangeAndUseGameplayBindings.cs
index 224e7e411e..5467a64b85 100644
--- a/osu.Game.Tests/Visual/Navigation/TestSceneChangeAndUseGameplayBindings.cs
+++ b/osu.Game.Tests/Visual/Navigation/TestSceneChangeAndUseGameplayBindings.cs
@@ -82,7 +82,7 @@ namespace osu.Game.Tests.Visual.Navigation
private OsuButton configureBindingsButton => Game.Settings
.ChildrenOfType().SingleOrDefault()?
- .ChildrenOfType()?
+ .ChildrenOfType()
.First(b => b.Text.ToString() == "Configure");
private KeyBindingPanel keyBindingPanel => Game.Settings
diff --git a/osu.Game.Tests/Visual/Online/TestSceneCurrentlyPlayingDisplay.cs b/osu.Game.Tests/Visual/Online/TestSceneCurrentlyPlayingDisplay.cs
index 885c00be80..5237238f63 100644
--- a/osu.Game.Tests/Visual/Online/TestSceneCurrentlyPlayingDisplay.cs
+++ b/osu.Game.Tests/Visual/Online/TestSceneCurrentlyPlayingDisplay.cs
@@ -59,7 +59,7 @@ namespace osu.Game.Tests.Visual.Online
public void TestBasicDisplay()
{
AddStep("Add playing user", () => spectatorClient.SendStartPlay(streamingUser.Id, 0));
- AddUntilStep("Panel loaded", () => currentlyPlaying.ChildrenOfType()?.FirstOrDefault()?.User.Id == 2);
+ AddUntilStep("Panel loaded", () => currentlyPlaying.ChildrenOfType().FirstOrDefault()?.User.Id == 2);
AddStep("Remove playing user", () => spectatorClient.SendEndPlay(streamingUser.Id));
AddUntilStep("Panel no longer present", () => !currentlyPlaying.ChildrenOfType().Any());
}
diff --git a/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs b/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs
index f094d40caa..af3a6e178c 100644
--- a/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs
+++ b/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs
@@ -825,6 +825,8 @@ namespace osu.Game.Tests.Visual.SongSelect
AddStep("Click on a filtered difficulty", () =>
{
+ Debug.Assert(filteredIcon != null);
+
InputManager.MoveMouseTo(filteredIcon);
InputManager.Click(MouseButton.Left);
@@ -918,6 +920,8 @@ namespace osu.Game.Tests.Visual.SongSelect
AddStep("Click on a difficulty", () =>
{
+ Debug.Assert(difficultyIcon != null);
+
InputManager.MoveMouseTo(difficultyIcon);
InputManager.Click(MouseButton.Left);
diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs
index d566a04261..dcb1f730a2 100644
--- a/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs
+++ b/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs
@@ -218,7 +218,7 @@ namespace osu.Game.Tests.Visual.UserInterface
AddStep("dismiss mod customisation via toggle", () =>
{
- InputManager.MoveMouseTo(modSelectOverlay.CustomisationButton);
+ InputManager.MoveMouseTo(modSelectOverlay.CustomisationButton.AsNonNull());
InputManager.Click(MouseButton.Left);
});
assertCustomisationToggleState(disabled: false, active: false);
@@ -558,7 +558,7 @@ namespace osu.Game.Tests.Visual.UserInterface
void navigateAndClick() where T : Drawable
{
- InputManager.MoveMouseTo(modSelectOverlay.ChildrenOfType().FirstOrDefault());
+ InputManager.MoveMouseTo(modSelectOverlay.ChildrenOfType().First());
InputManager.Click(MouseButton.Left);
}
}
diff --git a/osu.Game/Rulesets/RulesetStore.cs b/osu.Game/Rulesets/RulesetStore.cs
index 881b09bd1b..ac36ee6494 100644
--- a/osu.Game/Rulesets/RulesetStore.cs
+++ b/osu.Game/Rulesets/RulesetStore.cs
@@ -7,6 +7,7 @@ using System.IO;
using System.Linq;
using System.Reflection;
using osu.Framework;
+using osu.Framework.Extensions.ObjectExtensions;
using osu.Framework.Logging;
using osu.Framework.Platform;
@@ -32,7 +33,7 @@ namespace osu.Game.Rulesets
// This null check prevents Android from attempting to load the rulesets from disk,
// as the underlying path "AppContext.BaseDirectory", despite being non-nullable, it returns null on android.
// See https://github.com/xamarin/xamarin-android/issues/3489.
- if (RuntimeInfo.StartupDirectory != null)
+ if (RuntimeInfo.StartupDirectory.IsNotNull())
loadFromDisk();
// the event handler contains code for resolving dependency on the game assembly for rulesets located outside the base game directory.
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 9cb20ee364..ce03dca949 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -36,7 +36,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/osu.iOS.props b/osu.iOS.props
index 256d1e43c4..86694e268a 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -16,6 +16,6 @@
iossimulator-x64
-
+