Skip to content

Conversation

jkotas
Copy link
Member

@jkotas jkotas commented Sep 26, 2025

Reverts #117168

Fixes #120137

@Copilot Copilot AI review requested due to automatic review settings September 26, 2025 06:43
@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Sep 26, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR reverts the functionality introduced in #117168 that added Rune-based APIs to various .NET types. The revert removes support for working with System.Text.Rune objects in StringBuilder, String, TextInfo, TextWriter, and related test infrastructure.

  • Removes Rune-based methods from core .NET types (StringBuilder, String, TextInfo, TextWriter)
  • Eliminates StringBuilderRuneEnumerator class and related enumeration functionality
  • Reverts all associated test cases and test infrastructure for Rune support

Reviewed Changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
StringBuilderTests.cs Removes test cases for Rune operations (Append, Insert, Replace, GetRuneAt, EnumerateRunes)
RuneTests.cs Removes Rune equality comparison tests with StringComparison parameter
StringTests.cs Removes Rune-based String method tests (Contains, EndsWith, StartsWith, IndexOf, LastIndexOf, Replace, Trim)
String.SplitTests.cs Removes Rune-based Split method tests and related test infrastructure
TextWriterTests.cs Removes Rune Write/WriteLine method tests
TestDataProvider.cs Removes RuneData test data infrastructure
TextInfoTests.cs Removes Rune ToLower/ToUpper method tests
System.Runtime.cs Removes Rune-based method signatures from public API surface
StringBuilderRuneEnumerator.cs Completely removes the enumerator class for Rune enumeration in StringBuilder
StringBuilder.cs Removes Rune support methods (Append, Insert, Replace, GetRuneAt, TryGetRuneAt, EnumerateRunes)
Rune.cs Removes AsSpan helper method and Equals overload with StringComparison
String.Searching.cs Removes Rune-based search methods (Contains, IndexOf, LastIndexOf)
String.Manipulation.cs Removes Rune-based manipulation methods (Replace, Split, Trim operations)
String.Comparison.cs Removes Rune-based comparison methods (StartsWith, EndsWith)
TextWriter.cs Removes Rune Write/WriteLine methods (sync and async)
TextInfo.cs Removes Rune ToLower/ToUpper methods and internal helper methods
Char.cs Removes internal Equals overload with StringComparison parameter
System.Private.CoreLib.Shared.projitems Removes StringBuilderRuneEnumerator.cs from compilation

@jkotas jkotas added area-System.Runtime and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Sep 26, 2025
Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-runtime
See info in area-owners.md if you want to be subscribed.

@jkotas jkotas merged commit be80737 into main Sep 26, 2025
145 of 148 checks passed
@jkotas jkotas deleted the revert-117168-rune-overloads branch September 26, 2025 14:03
Joy-less added a commit to Joy-less/runtime that referenced this pull request Sep 26, 2025
tarekgh added a commit that referenced this pull request Sep 27, 2025
…#27912 (Flow System.Text.Rune through more APIs)) (#120145)

* Fix tests from #117168

* Add `SyncTextWriter` overloads as well

* Add missing overloads to BroadcastingTextWriter

* Reapply "Add methods from #27912 (Flow System.Text.Rune through more APIs) (#1…" (#120138)

This reverts commit be80737.

* Override the TextWrite Rune overloads in IndentedTextWriter

---------

Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CreateBroadcasting_AllMethodsOverridden test fails on many legs

2 participants