-
Notifications
You must be signed in to change notification settings - Fork 830
[FS-1081] - Extended fixed bindings #15697
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
Merged
vzarytovskii
merged 62 commits into
dotnet:main
from
jwosty:jw-fs1081-extend-fixed-expressions
Aug 15, 2023
Merged
Changes from all commits
Commits
Show all changes
62 commits
Select commit
Hold shift + click to select a range
3b8bf45
Add compiler tests for currently allowed fixed expressions
jwosty fa02474
Make typechecker accept arbitrary byref pinning in `fixed` expressions
jwosty 819890b
Make typechecker accept GetPinnableReference() in fixed expressions
jwosty c0fca86
Add IL compiler tests for currently allowed fixed expressions
jwosty d523744
Write codegen tests for fixed expressions with byrefs
jwosty 56b9eb0
Write codegen for pinning custom byref type via GetPinnableReference
jwosty c5e9fbd
Make fixed expressions work properly with Span and Span-like types
jwosty 4d00bb5
Make fixed expr work with generic extension GetPinnableReference method
jwosty 53b5920
Reject fixed expressions when used with static GetPinnableReference m…
jwosty 653daca
Write more fixed expression codegen tests
jwosty fda843a
Try to make test pass in CI
jwosty e479305
Merge remote-tracking branch 'upstream/main' into jw-fs1081-extend-fi…
jwosty aadc045
Fix test mistakes - all new tests should be green now
jwosty cd4c932
Create extended-fixed-bindings language switch
jwosty b52e1b4
Update FS3207 error message text to include new criteria
jwosty a202926
Exclude some tests for .net framework, which lacks Span<T>
jwosty 771f021
Fix more CI test issues
jwosty 224bae9
Add a fixed expr struct test that works under .net framework
jwosty 33e595b
Update baselines
jwosty 287caa9
Add more tests to cover original baselines
jwosty 2a1f50a
Attempt more CI test fixes
jwosty e57d48a
Feature-flag fixed expr codegen tests
jwosty cd3d09b
Add missing [<Fact>] to activate a test
jwosty 98d114d
Parameterize all fixed expr tests with feature flags
jwosty 69281a6
Add negative tests for fixed expr feature flagging
jwosty f827244
Make extended fixed bindings obey feature flag
jwosty 2e08260
Add a test case highlighting a new (fixed?) behavior
jwosty 79817ca
Raise FS3350 (feature unavailable) when necessary for fixed bindings
jwosty 1e4b10b
Use GetPinnableReference method on strings when available
jwosty 1ecf841
Prevent method inlining to make tests clearer
jwosty 7647990
Add a generated null check for reference types
jwosty 1ca8485
Refactor
jwosty 2b8e64e
Merge remote-tracking branch 'upstream/main' into jw-fs1081-extend-fi…
jwosty 8cb46a4
Fix baselines
jwosty 71e1146
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty 8445ffd
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty 091684f
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty e55e801
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty e4d552b
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty 6de6e00
Rewrite to increase comprehensibility, and add some clarifying comments
jwosty ba2d08a
Rename fixed binding test files
jwosty 2d13cfc
More renames
jwosty 9b47c4c
Rename all instances of 'fixed expressions' -> 'fixed bindings'
jwosty a3b980f
Extract fixed binding IL test cases to their own files
jwosty 4873ec4
Extract fixed binding Language test cases to their own files
jwosty 01cbd18
Split fixed binding Language test cases
jwosty 8c74b6d
Raise recoverable errors
jwosty bb99236
Add more negative fixed binding tests
jwosty 0c4ea8b
Add test verifying that null guard in fixed bindings against GetPinna…
jwosty 44f1e09
Adjust wording
jwosty cfaf3e3
Split one remaining test case
jwosty 351b155
Small test refactor
jwosty 25a064c
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty 45db0e6
Add an F# style extension method test for GetPinnableReference
jwosty 557ef00
Add some more fixed binding negative tests for sanity
jwosty f39284d
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty ef318f7
Apply fantomas
jwosty ebd143f
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty dbdc459
Change an IL test to hopefully make it compile consistently in CI
jwosty 43d0d5f
Change method name to try to appease CI
jwosty 597e29d
Fix test file name
jwosty 09c38c9
Merge branch 'main' into jw-fs1081-extend-fixed-expressions
jwosty 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
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.