-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Allow unsafe blocks in iterators #73046
Merged
jjonescz
merged 21 commits into
dotnet:features/RefInAsync
from
jjonescz:RefInAsync-03-UnsafeInIterators
May 2, 2024
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
badd0a9
Allow unsafe blocks in iterators
jjonescz a21bde7
Drop duplicate long diagnostic verifications
jjonescz 47c3887
Use `nint` in tests to simplify
jjonescz ef59fea
Add more tests
jjonescz 8fc5539
Handle more iterator kinds
jjonescz ce43691
Make unsafe affect only signature, not iterator body
jjonescz c1672a8
Fix comments
jjonescz 739d04b
Rename method setting or clearing unsafe region
jjonescz a79647a
Improve code
jjonescz c5f7770
Fix accessors
jjonescz ce0140b
Remove asserts that can fail for invalid code
jjonescz c482508
Improve tests
jjonescz f848432
Avoid some langversion errors that would still be errors in newer lan…
jjonescz cb4f1f7
Refactor tests
jjonescz 4817390
Document a breaking change
jjonescz d0977cb
Fix theory conditions
jjonescz 14e508c
Test non-iterator unsafe contexts in older language versions as well
jjonescz 81ef3aa
Fix tests demonstrating unsafe context in iterators in C# 12
jjonescz 2fd98b5
Improve naming of tests verifying safe context of setters
jjonescz 974722e
Clarify comment
jjonescz 9c48d31
Fix test name
jjonescz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Clarify comment
- Loading branch information
commit 974722ebfc91f75bc1a19e52f84a5a200215f662
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Aren't iterator bodies defined in a safe context, regardless of language version? #Resolved
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.
Directly in iterators it might appear so because using any unsafe constructs is an error anyway, but if we use local functions for example, it can be seen that in C# 12 iterators do not define safe context, for example:
This is a pre-existing spec violation.