Skip to content
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

[6.0] Add support for sending #73743

Merged
merged 5 commits into from
May 20, 2024

Commits on May 20, 2024

  1. [sending] Change the internals of sending to be based around 'sending…

    …' instead of 'transferring'.
    
    We still only parse transferring... but this sets us up for adding the new
    'sending' syntax by first validating that this internal change does not mess up
    the current transferring impl since we want both to keep working for now.
    
    rdar://128216574
    (cherry picked from commit e3e78ad)
    gottesmm committed May 20, 2024
    Configuration menu
    Copy the full SHA
    b518ee1 View commit details
    Browse the repository at this point in the history
  2. [sending] Change transferring diagnostics to say sending instead of t…

    …ransferring.
    
    Just trying to slice off a larger change where I change these tests to actually
    use 'sending'. This is nice to do now since it is algebraic to do.
    
    rdar://128216574
    (cherry picked from commit 71e95b9)
    gottesmm committed May 20, 2024
    Configuration menu
    Copy the full SHA
    5678526 View commit details
    Browse the repository at this point in the history
  3. [sending] Begin parsing 'sending' while still accepting 'transferring'.

    A few things:
    
    1. Internally except for in the parser and the clang importer, we only represent
    'sending'. This means that it will be easy to remove 'transferring' once enough
    time has passed.
    
    2. I included a warning that suggested to the user to change 'transferring' ->
    'sending'.
    
    3. I duplicated the parsing diagnostics for 'sending' so both will still get
    different sets of diagnostics for parsing issues... but anywhere below parsing,
    I have just changed 'transferring' to 'sending' since transferring isn't
    represented at those lower levels.
    
    4. Since SendingArgsAndResults is always enabled when TransferringArgsAndResults
    is enabled (NOTE not vis-a-versa), we know that we can always parse sending. So
    we import "transferring" as "sending". This means that even if one marks a
    function with "transferring", the compiler will guard it behind a
    SendingArgsAndResults -D flag and in the imported header print out sending.
    
    rdar://128216574
    (cherry picked from commit b780ff6)
    gottesmm committed May 20, 2024
    Configuration menu
    Copy the full SHA
    1ec8c43 View commit details
    Browse the repository at this point in the history
  4. [sending] Rename some tests from transferring -> sending.

    I am doing this after the main transformation to ease commit by commit
    understanding of the change.
    
    rdar://128216574
    (cherry picked from commit 7592842)
    gottesmm committed May 20, 2024
    Configuration menu
    Copy the full SHA
    a6991b6 View commit details
    Browse the repository at this point in the history
  5. [sending] Enable sending whenever region isolation is enabled and mak…

    …e SE-0430 an upcoming feature.
    
    I also added support for expressing suppressable upcoming features.
    
    rdar://128216574
    (cherry picked from commit 20a3589)
    gottesmm committed May 20, 2024
    Configuration menu
    Copy the full SHA
    63bd41d View commit details
    Browse the repository at this point in the history