Skip to content

Commit

Permalink
fixup! use pattern matching declarations
Browse files Browse the repository at this point in the history
  • Loading branch information
gerhardol committed Feb 24, 2021
1 parent a5620b4 commit c56caa6
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 35 deletions.
12 changes: 4 additions & 8 deletions GitUI/CommandsDialogs/FormCommit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1947,14 +1947,10 @@ private void Stage(IReadOnlyList<GitItemStatus> items)
unstagedFiles.RemoveAll(
item =>
{
if (!item.IsSubmodule)
{
return false;
}
Task<GitSubmoduleStatus?>? statusTask = item.GetSubmoduleStatusAsync();
Validates.NotNull(statusTask);
if (!statusTask.IsCompleted)
if (!item.IsSubmodule
|| item.GetSubmoduleStatusAsync() is not Task<GitSubmoduleStatus> statusTask
|| statusTask is null
|| !statusTask.IsCompleted)
{
return false;
}
Expand Down
16 changes: 6 additions & 10 deletions GitUI/GitUIExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,14 @@ void OpenWithDiffTool()
: diffOfConflict;
}

if (file.IsSubmodule)
if (file.IsSubmodule
&& file.GetSubmoduleStatusAsync() is Task<GitSubmoduleStatus> task)
{
// Patch already evaluated
Task<GitSubmoduleStatus?>? task = file.GetSubmoduleStatusAsync();

if (task is not null)
{
var status = ThreadHelper.JoinableTaskFactory.Run(() => task);
return status is not null
? LocalizationHelpers.ProcessSubmoduleStatus(fileViewer.Module, status)
: $"Failed to get status for submodule \"{file.Name}\"";
}
var status = ThreadHelper.JoinableTaskFactory.Run(() => task);
return status is not null
? LocalizationHelpers.ProcessSubmoduleStatus(fileViewer.Module, status)
: $"Failed to get status for submodule \"{file.Name}\"";
}

var patch = GetItemPatch(fileViewer.Module, file, firstId, selectedId,
Expand Down
32 changes: 15 additions & 17 deletions GitUI/UserControls/FileStatusList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -780,14 +780,13 @@ private ToolStripMenuItem CreateOpenSubmoduleMenuItem()

private static string AppendItemSubmoduleStatus(string text, GitItemStatus item)
{
if (item.IsSubmodule)
if (item.IsSubmodule
&& item.GetSubmoduleStatusAsync() is Task<GitSubmoduleStatus> task
&& task is not null
&& task.IsCompleted
&& task.CompletedResult() is not null)
{
Task<GitSubmoduleStatus?>? task = item.GetSubmoduleStatusAsync();

if (task != null && task.IsCompleted && task.CompletedResult() is not null)
{
text += task.CompletedResult()!.AddedAndRemovedString();
}
text += task.CompletedResult()!.AddedAndRemovedString();
}

return text;
Expand Down Expand Up @@ -926,8 +925,10 @@ private void UpdateFileStatusListView(bool updateCausedByFilter = false)
listItem.ImageIndex = GetItemImageIndex(item);
}

Task<GitSubmoduleStatus?>? task = item.GetSubmoduleStatusAsync();
if (task is not null && !task.IsCompleted)
if (item.IsSubmodule
&& item.GetSubmoduleStatusAsync() is Task<GitSubmoduleStatus> task
&& task is not null
&& !task.IsCompleted)
{
var capturedItem = item;

Expand Down Expand Up @@ -1020,14 +1021,11 @@ static string GetItemImageKey(GitItemStatus gitItemStatus)

if (gitItemStatus.IsSubmodule)
{
Task<GitSubmoduleStatus?>? task = gitItemStatus.GetSubmoduleStatusAsync();
if (task is null || !task.IsCompleted)
{
return gitItemStatus.IsDirty ? nameof(Images.SubmoduleDirty) : nameof(Images.SubmodulesManage);
}

var status = task.CompletedResult();
if (status is null)
if (gitItemStatus.GetSubmoduleStatusAsync() is not Task<GitSubmoduleStatus> task
|| task is null
|| !task.IsCompleted
|| task.CompletedResult() is not GitSubmoduleStatus status
|| status is null)
{
return gitItemStatus.IsDirty ? nameof(Images.SubmoduleDirty) : nameof(Images.SubmodulesManage);
}
Expand Down

0 comments on commit c56caa6

Please sign in to comment.