-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add S.R.CompilerServices.InterpolatedStringBuilder #51086
Conversation
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
40b87de
to
9174fd8
Compare
Well of course the +1294 line change will be the one that passes CI flawlessly. :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Outdated
Show resolved
Hide resolved
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Outdated
Show resolved
Hide resolved
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Show resolved
Hide resolved
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Show resolved
Hide resolved
I didn't see any problems in the implementation, BTW. Also skimmed the unit tests and they looked fine. My feedback was mainly a bunch of questions. |
I don't think they need to be tied together. We have a lot of things in System.Runtime.InteropServices and System.Runtime.CompilerServices that are effectively unsafe; this is just one more. That said, if we ever did want to mark this type as non-copyable, that would have a significant impact on the shape of the APIs in part 2, and what the compiler needs to allow (which I think it doesn't as currently proposed), in particular adding a string.Format method. This also ties in with the discussion I want to have in API review around IDisposable. |
Thanks for reviewing!
I tried to make them exhaustive. But CoreLib code coverage is currently broken (#51058), so it's harder to validate that. |
9174fd8
to
826a3f1
Compare
Updated with @GrabYourPitchforks's feedback as well as changes from today's API review. Marked as ready for review. |
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Outdated
Show resolved
Hide resolved
...ries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InterpolatedStringBuilder.cs
Outdated
Show resolved
Hide resolved
826a3f1
to
5764223
Compare
5764223
to
5c0940c
Compare
What happens to the rented array when |
No. It simply won't be pooled. But this type is also in CompilerServices and is intended to be used by the compiler, which should use it correctly. |
Closes #50601
Closes #28945
Closes #30547
Closes #26374
Contributes to #14484 (second half of this will close it)
Draft PR as the API should be reviewed on Tuesday and so may be tweaked as a result of that.
This also includes a few Create overloads in support of #50635, but that made sense to include in the implementation and testing here.
cc: @333fred, @GrabYourPitchforks, @tannergooding, @pgovind