Skip to content

Commit b030c4d

Browse files
authored
Remove string.Trim{,Start,End}(ReadOnlySpan<char>) ref-API (#108777)
1 parent 6aafadb commit b030c4d

File tree

3 files changed

+13
-78
lines changed

3 files changed

+13
-78
lines changed

src/libraries/Common/tests/Tests/System/StringTests.cs

-74
Original file line numberDiff line numberDiff line change
@@ -6164,7 +6164,6 @@ public static void Trim(string s, char[] trimChars, string expected)
61646164
}
61656165

61666166
Assert.Equal(expected, s.Trim(trimChars));
6167-
Assert.Equal(expected, s.Trim((ReadOnlySpan<char>)trimChars));
61686167
Assert.Equal(expected, s.AsSpan().Trim(trimChars).ToString());
61696168
}
61706169

@@ -6195,7 +6194,6 @@ public static void TrimEnd(string s, char[] trimChars, string expected)
61956194
}
61966195

61976196
Assert.Equal(expected, s.TrimEnd(trimChars));
6198-
Assert.Equal(expected, s.TrimEnd((ReadOnlySpan<char>)trimChars));
61996197
Assert.Equal(expected, s.AsSpan().TrimEnd(trimChars).ToString());
62006198
}
62016199

@@ -6226,7 +6224,6 @@ public static void TrimStart(string s, char[] trimChars, string expected)
62266224
}
62276225

62286226
Assert.Equal(expected, s.TrimStart(trimChars));
6229-
Assert.Equal(expected, s.TrimStart((ReadOnlySpan<char>)trimChars));
62306227
Assert.Equal(expected, s.AsSpan().TrimStart(trimChars).ToString());
62316228
}
62326229

@@ -6457,27 +6454,18 @@ public static void ZeroLengthTrimCharacters()
64576454
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
64586455
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
64596456
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
6460-
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
6461-
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
6462-
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));
64636457

64646458
char[] chars = { 'a', 'b', 'c', 'd', 'e' };
64656459
trimCharsString = chars;
64666460
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
64676461
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
64686462
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
6469-
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
6470-
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
6471-
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));
64726463

64736464
string emptyString = string.Empty;
64746465
char[] trimCharsArrayFromString = "abcde".ToCharArray();
64756466
Assert.True(emptyString.SequenceEqual(emptyString.Trim(trimCharsArrayFromString)));
64766467
Assert.True(emptyString.SequenceEqual(emptyString.TrimStart(trimCharsArrayFromString)));
64776468
Assert.True(emptyString.SequenceEqual(emptyString.TrimEnd(trimCharsArrayFromString)));
6478-
Assert.True(emptyString.SequenceEqual(emptyString.Trim((ReadOnlySpan<char>)trimCharsArrayFromString)));
6479-
Assert.True(emptyString.SequenceEqual(emptyString.TrimStart((ReadOnlySpan<char>)trimCharsArrayFromString)));
6480-
Assert.True(emptyString.SequenceEqual(emptyString.TrimEnd((ReadOnlySpan<char>)trimCharsArrayFromString)));
64816469

64826470
ReadOnlySpan<char> span = s1.AsSpan();
64836471
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
@@ -6513,9 +6501,6 @@ public static void NoTrimCharacters()
65136501
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
65146502
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
65156503
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
6516-
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
6517-
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
6518-
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));
65196504

65206505
ReadOnlySpan<char> span = s1.AsSpan();
65216506
Assert.True(span.SequenceEqual(span.Trim(trimChars)));
@@ -6535,9 +6520,6 @@ public static void NoTrimCharacters()
65356520
Assert.True(s2.SequenceEqual(s2.Trim(chars)));
65366521
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
65376522
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));
6538-
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
6539-
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
6540-
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));
65416523

65426524
ReadOnlySpan<char> span = s2.AsSpan();
65436525
Assert.True(span.SequenceEqual(span.Trim(chars)));
@@ -6550,9 +6532,6 @@ public static void NoTrimCharacters()
65506532
Assert.True(s3.SequenceEqual(s3.Trim(trimCharsFromString)));
65516533
Assert.True(s3.SequenceEqual(s3.TrimStart(trimCharsFromString)));
65526534
Assert.True(s3.SequenceEqual(s3.TrimEnd(trimCharsFromString)));
6553-
Assert.True(s3.SequenceEqual(s3.Trim((ReadOnlySpan<char>)trimCharsFromString)));
6554-
Assert.True(s3.SequenceEqual(s3.TrimStart((ReadOnlySpan<char>)trimCharsFromString)));
6555-
Assert.True(s3.SequenceEqual(s3.TrimEnd((ReadOnlySpan<char>)trimCharsFromString)));
65566535

65576536
ReadOnlySpan<char> stringSpan = s3.AsSpan();
65586537
ReadOnlySpan<char> trimCharsFromStringSpan = trimCharsFromString.AsSpan();
@@ -6577,9 +6556,6 @@ public static void OnlyTrimCharacters()
65776556
Assert.True(string.Empty.SequenceEqual(s1.Trim(chars)), "G: " + length);
65786557
Assert.True(string.Empty.SequenceEqual(s1.TrimStart(chars)), "H: " + length);
65796558
Assert.True(string.Empty.SequenceEqual(s1.TrimEnd(chars)), "I: " + length);
6580-
Assert.True(string.Empty.SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)), "G: " + length);
6581-
Assert.True(string.Empty.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)), "H: " + length);
6582-
Assert.True(string.Empty.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)), "I: " + length);
65836559

65846560
ReadOnlySpan<char> span = s1.AsSpan();
65856561
Assert.True(ReadOnlySpan<char>.Empty.SequenceEqual(span.Trim(chars)), "G: " + length);
@@ -6592,9 +6568,6 @@ public static void OnlyTrimCharacters()
65926568
Assert.True(string.Empty.SequenceEqual(s2.Trim(trimCharsString)), "J");
65936569
Assert.True(string.Empty.SequenceEqual(s2.TrimStart(trimCharsString)), "K");
65946570
Assert.True(string.Empty.SequenceEqual(s2.TrimEnd(trimCharsString)), "L");
6595-
Assert.True(string.Empty.SequenceEqual(s2.Trim((ReadOnlySpan<char>)trimCharsString)), "J");
6596-
Assert.True(string.Empty.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)trimCharsString)), "K");
6597-
Assert.True(string.Empty.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)trimCharsString)), "L");
65986571

65996572
ReadOnlySpan<char> stringSpan = s2.AsSpan();
66006573
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
@@ -6619,9 +6592,6 @@ public static void TrimCharactersAtStart()
66196592
Assert.True(s1.Substring(1).SequenceEqual(s1.Trim(chars)), "A: " + length);
66206593
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart(chars)), "B: " + length);
66216594
Assert.True(s1.SequenceEqual(s1.TrimEnd(chars)), "C: " + length);
6622-
Assert.True(s1.Substring(1).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)), "A: " + length);
6623-
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)), "B: " + length);
6624-
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)), "C: " + length);
66256595

66266596
ReadOnlySpan<char> span = s1.AsSpan();
66276597
Assert.True(span.Slice(1).SequenceEqual(span.Trim(chars)), "A: " + length);
@@ -6634,9 +6604,6 @@ public static void TrimCharactersAtStart()
66346604
Assert.True(s2.Substring(3).SequenceEqual(s2.Trim(trimCharsString)), "D");
66356605
Assert.True(s2.Substring(3).SequenceEqual(s2.TrimStart(trimCharsString)), "E");
66366606
Assert.True(s2.SequenceEqual(s2.TrimEnd(trimCharsString)), "F");
6637-
Assert.True(s2.Substring(3).SequenceEqual(s2.Trim((ReadOnlySpan<char>)trimCharsString)), "D");
6638-
Assert.True(s2.Substring(3).SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)trimCharsString)), "E");
6639-
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)trimCharsString)), "F");
66406607

66416608
ReadOnlySpan<char> stringSpan = s2.AsSpan();
66426609
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
@@ -6662,9 +6629,6 @@ public static void TrimCharactersAtEnd()
66626629
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.Trim(chars)));
66636630
Assert.True(s1.SequenceEqual(s1.TrimStart(chars)));
66646631
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd(chars)));
6665-
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
6666-
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
6667-
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));
66686632

66696633
ReadOnlySpan<char> span = new ReadOnlySpan<char>(a);
66706634
Assert.True(span.Slice(0, length - 1).SequenceEqual(span.Trim(chars)));
@@ -6702,9 +6666,6 @@ public static void TrimCharactersAtStartAndEnd()
67026666
Assert.True(s1.Substring(1, length - 2).SequenceEqual(s1.Trim(chars)));
67036667
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart(chars)));
67046668
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd(chars)));
6705-
Assert.True(s1.Substring(1, length - 2).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
6706-
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
6707-
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));
67086669

67096670
ReadOnlySpan<char> span = s1.AsSpan();
67106671
Assert.True(span.Slice(1, length - 2).SequenceEqual(span.Trim(chars)));
@@ -6716,9 +6677,6 @@ public static void TrimCharactersAtStartAndEnd()
67166677
Assert.True(s2.Substring(5, 5).SequenceEqual(s2.Trim(chars)));
67176678
Assert.True(s2.Substring(5).SequenceEqual(s2.TrimStart(chars)));
67186679
Assert.True(s2.Substring(0, 10).SequenceEqual(s2.TrimEnd(chars)));
6719-
Assert.True(s2.Substring(5, 5).SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
6720-
Assert.True(s2.Substring(5).SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
6721-
Assert.True(s2.Substring(0, 10).SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));
67226680

67236681
ReadOnlySpan<char> stringSpan = s2.AsSpan();
67246682
ReadOnlySpan<char> trimChars = chars.AsSpan();
@@ -6744,9 +6702,6 @@ public static void TrimCharactersInMiddle()
67446702
Assert.True(s1.SequenceEqual(s1.Trim(chars)));
67456703
Assert.True(s1.SequenceEqual(s1.TrimStart(chars)));
67466704
Assert.True(s1.SequenceEqual(s1.TrimEnd(chars)));
6747-
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
6748-
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
6749-
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));
67506705

67516706
ReadOnlySpan<char> span = s1.AsSpan();
67526707
Assert.True(span.SequenceEqual(span.Trim(chars)));
@@ -6758,9 +6713,6 @@ public static void TrimCharactersInMiddle()
67586713
Assert.True(s2.SequenceEqual(s2.Trim(chars)));
67596714
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
67606715
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));
6761-
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
6762-
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
6763-
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));
67646716

67656717
ReadOnlySpan<char> stringSpan = s2.AsSpan();
67666718
ReadOnlySpan<char> trimChars = chars.AsSpan();
@@ -6796,19 +6748,6 @@ public static void TrimCharactersMultipleTimes()
67966748
Assert.True(trimStartResultString.SequenceEqual(trimStartResultString.TrimStart(chars)));
67976749
Assert.True(trimEndResultString.SequenceEqual(trimEndResultString.TrimEnd(chars)));
67986750

6799-
s1 = new string(a);
6800-
trimResultString = s1.Trim((ReadOnlySpan<char>)chars);
6801-
trimStartResultString = s1.TrimStart((ReadOnlySpan<char>)chars);
6802-
trimEndResultString = s1.TrimEnd((ReadOnlySpan<char>)chars);
6803-
Assert.True(s1.Substring(1, length - 2).SequenceEqual(trimResultString));
6804-
Assert.True(s1.Substring(1).SequenceEqual(trimStartResultString));
6805-
Assert.True(s1.Substring(0, length - 1).SequenceEqual(trimEndResultString));
6806-
6807-
// 2nd attempt should do nothing
6808-
Assert.True(trimResultString.SequenceEqual(trimResultString.Trim((ReadOnlySpan<char>)chars)));
6809-
Assert.True(trimStartResultString.SequenceEqual(trimStartResultString.TrimStart((ReadOnlySpan<char>)chars)));
6810-
Assert.True(trimEndResultString.SequenceEqual(trimEndResultString.TrimEnd((ReadOnlySpan<char>)chars)));
6811-
68126751
ReadOnlySpan<char> span = s1.AsSpan();
68136752
ReadOnlySpan<char> trimResult = span.Trim(chars);
68146753
ReadOnlySpan<char> trimStartResult = span.TrimStart(chars);
@@ -6837,18 +6776,10 @@ public static void TrimCharactersMultipleTimes()
68376776
Assert.True(trimEndStringResultString.SequenceEqual(trimEndStringResultString.TrimEnd(chars)));
68386777

68396778
s2 = "ccedafffffbdaa";
6840-
trimStringResultString = s2.Trim((ReadOnlySpan<char>)chars);
6841-
trimStartStringResultString = s2.TrimStart((ReadOnlySpan<char>)chars);
6842-
trimEndStringResultString = s2.TrimEnd((ReadOnlySpan<char>)chars);
68436779
Assert.True(s2.Substring(5, 5).SequenceEqual(trimStringResultString));
68446780
Assert.True(s2.Substring(5).SequenceEqual(trimStartStringResultString));
68456781
Assert.True(s2.Substring(0, 10).SequenceEqual(trimEndStringResultString));
68466782

6847-
// 2nd attempt should do nothing
6848-
Assert.True(trimStringResultString.SequenceEqual(trimStringResultString.Trim((ReadOnlySpan<char>)chars)));
6849-
Assert.True(trimStartStringResultString.SequenceEqual(trimStartStringResultString.TrimStart((ReadOnlySpan<char>)chars)));
6850-
Assert.True(trimEndStringResultString.SequenceEqual(trimEndStringResultString.TrimEnd((ReadOnlySpan<char>)chars)));
6851-
68526783
ReadOnlySpan<char> stringSpan = s2.AsSpan();
68536784
ReadOnlySpan<char> trimChars = chars.AsSpan();
68546785

@@ -6894,11 +6825,6 @@ public static void MakeSureNoTrimCharactersChecksGoOutOfRange()
68946825
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
68956826
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));
68966827

6897-
s2 = testString.Substring(1, testString.Length - 2);
6898-
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
6899-
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
6900-
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));
6901-
69026828
ReadOnlySpan<char> stringSpan = s2.AsSpan();
69036829
ReadOnlySpan<char> trimChars = chars.AsSpan();
69046830
Assert.True(stringSpan.SequenceEqual(stringSpan.Trim(trimChars)));

src/libraries/System.Private.CoreLib/src/CompatibilitySuppressions.xml

+13-1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,16 @@
1717
<DiagnosticId>CP0002</DiagnosticId>
1818
<Target>F:System.Resources.ResourceSet.Reader</Target>
1919
</Suppression>
20-
</Suppressions>
20+
<Suppression>
21+
<DiagnosticId>CP0002</DiagnosticId>
22+
<Target>M:System.String.Trim(System.ReadOnlySpan{System.Char})</Target>
23+
</Suppression>
24+
<Suppression>
25+
<DiagnosticId>CP0002</DiagnosticId>
26+
<Target>M:System.String.TrimEnd(System.ReadOnlySpan{System.Char})</Target>
27+
</Suppression>
28+
<Suppression>
29+
<DiagnosticId>CP0002</DiagnosticId>
30+
<Target>M:System.String.TrimStart(System.ReadOnlySpan{System.Char})</Target>
31+
</Suppression>
32+
</Suppressions>

src/libraries/System.Runtime/ref/System.Runtime.cs

-3
Original file line numberDiff line numberDiff line change
@@ -5779,15 +5779,12 @@ public void CopyTo(System.Span<char> destination) { }
57795779
public string Trim() { throw null; }
57805780
public string Trim(char trimChar) { throw null; }
57815781
public string Trim(params char[]? trimChars) { throw null; }
5782-
public string Trim(params System.ReadOnlySpan<char> trimChars) { throw null; }
57835782
public string TrimEnd() { throw null; }
57845783
public string TrimEnd(char trimChar) { throw null; }
57855784
public string TrimEnd(params char[]? trimChars) { throw null; }
5786-
public string TrimEnd(params System.ReadOnlySpan<char> trimChars) { throw null; }
57875785
public string TrimStart() { throw null; }
57885786
public string TrimStart(char trimChar) { throw null; }
57895787
public string TrimStart(params char[]? trimChars) { throw null; }
5790-
public string TrimStart(params System.ReadOnlySpan<char> trimChars) { throw null; }
57915788
public bool TryCopyTo(System.Span<char> destination) { throw null; }
57925789
}
57935790
public abstract partial class StringComparer : System.Collections.Generic.IComparer<string?>, System.Collections.Generic.IEqualityComparer<string?>, System.Collections.IComparer, System.Collections.IEqualityComparer

0 commit comments

Comments
 (0)