Skip to content

Commit 3cd3d90

Browse files
fix: resolve co-variant array conversion warnings (HitSampleInfo[] to ISampleInfo[])
Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/258720a5-84bc-4283-b524-809219539b6a Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
1 parent 17febd8 commit 3cd3d90

4 files changed

Lines changed: 6 additions & 8 deletions

File tree

osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ protected override void OnFree()
162162
protected override void LoadSamples()
163163
{
164164
// Note: base.LoadSamples() isn't called since the slider plays the tail's hitsounds for the time being.
165-
Samples.Samples = HitObject.TailSamples.ToArray();
166-
slidingSample.Samples = HitObject.CreateSlidingSamples().ToArray();
165+
Samples.Samples = HitObject.TailSamples.Cast<ISampleInfo>().ToArray();
166+
slidingSample.Samples = HitObject.CreateSlidingSamples().Cast<ISampleInfo>().ToArray();
167167
}
168168

169169
public override void StopAllSamples()

osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSpinner.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ protected override void LoadSamples()
143143
{
144144
base.LoadSamples();
145145

146-
spinningSample.Samples = HitObject.CreateSpinningSamples().ToArray();
146+
spinningSample.Samples = HitObject.CreateSpinningSamples().Cast<ISampleInfo>().ToArray();
147+
147148
spinningSample.Frequency.Value = spinning_sample_initial_frequency;
148149

149150
maxBonusSample.Samples = new ISampleInfo[] { new SpinnerBonusMaxSampleInfo(HitObject.CreateHitSampleInfo()) };

osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,7 @@ protected virtual void OnFree()
389389
/// </summary>
390390
protected virtual void LoadSamples()
391391
{
392-
// HitSampleInfo : ISampleInfo, so array covariance lets us avoid a second .Cast<ISampleInfo>().ToArray() allocation.
393-
var samples = (ISampleInfo[])GetSamples().ToArray();
392+
var samples = GetSamples().Cast<ISampleInfo>().ToArray();
394393

395394
if (samples.Length <= 0)
396395
return;

osu.Game/Rulesets/UI/GameplaySampleTriggerSource.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,7 @@ public virtual void Play()
6868
if (nextObject == null)
6969
return;
7070

71-
// HitSampleInfo : ISampleInfo (reference type) — array covariance makes the assignment
72-
// implicit; no explicit cast or second array allocation needed.
73-
PlaySamples(nextObject.Samples.ToArray());
71+
PlaySamples(nextObject.Samples.Cast<ISampleInfo>().ToArray());
7472
}
7573

7674
protected virtual void PlaySamples(ISampleInfo[] samples) => Schedule(() =>

0 commit comments

Comments
 (0)