Commit Graph

13 Commits

Author SHA1 Message Date
Doug Gregor
c76dac7155 Banish @asyncHandler to a hidden flag.
We don't want @asyncHandler to be part of the concurrency model, so put
it behind a different flag.
2021-03-25 16:45:21 -07:00
Doug Gregor
508274c90e Update "non-concurrent-value" diagnostics to say "non-sendable" 2021-03-18 23:14:47 -07:00
Doug Gregor
5b2afec56a Only produce ConcurrentValue-related diagnostics under -warn-concurrency. 2021-03-15 12:13:44 -07:00
Doug Gregor
2f2c194272 Adopt 'nonisolated' in many tests, make sure its a modifier 2021-03-07 11:37:57 -08:00
Doug Gregor
ecf36ba6bc Enable ConcurrentValue checking as part of Concurrency mode.
Drop the separate flag guarding this checking.
2021-02-22 00:29:56 -08:00
Kavon Farvardin
9342540661 add fix-it to note for "add 'async' to function"
resolves rdar://72313654
2021-02-11 14:44:49 -08:00
Evan Wilde
8b80331c3d Updating tests to use actor
This patch updates the `actor class` spelling to `actor` in almost all
of the tests. There are places where I verify that we sanely handle
`actor` as an attribute though. These include:

 - test/decl/class/actor/basic.swift
 - test/decl/protocol/special/Actor.swift
 - test/SourceKit/CursorInfo/cursor_info_concurrency.swift
 - test/attr/attr_objc_async.swift
 - test/ModuleInterface/actor_protocol.swift
2021-02-10 08:09:13 -08:00
Kavon Farvardin
e8dcc979a0 fix-it regression coverage for notes suggesting 'async', '@asyncHandler' and '@GlobalActorType'
Currently, we don't have a fix-it to insert 'async', so I've marked those places
as not expecting a fix-it, until someone goes and implements that (rdar://72313654)
2020-12-14 15:21:27 -08:00
Doug Gregor
72bf83653a [Concurrency] Allow actor classes to inherit from NSObject.
NSObject is guaranteed to have no state and no Swift vtable, and is
necessary for Swift classes to implement the NSObject protocol. Allow
it (and only it) as the superclass of an actor class, so that actor
classes can be exposed to Objective-C.
2020-09-30 00:02:17 -07:00
Doug Gregor
e5c1491c6a [Concurrency] Ban actor-isolated operations from being @objc.
Actor-isolated operations must not be directly accessible from anywhere
that is not already guaranteed to be running within the actor context.
Prevent such operations from being `@objc`, because that would allow
Objective-C code to violate actor isolation.
2020-09-30 00:02:17 -07:00
Doug Gregor
8dc8532965 [Concurrency] Ban asynchronous methods returning 'Self' from being @objc 2020-09-08 10:15:24 -07:00
Doug Gregor
0f18948bd5 [Concurrency] Allow @objc async methods.
Allow the declaration of @objc async methods, mapping them to a
completion-handler API in Objective-C. This covers most of the
checking and semantics within the type checker:
* Declaring @objc async methods and checking their parameter/result types
* Determining the default Objective-C selector by adding
completionHandler/WithCompletionHandler as appropriate
* Determining the type of the completion handler parameter
* Inferring @objc from protocol requirements
* Inferring @objc from an overridden method
2020-09-08 10:15:24 -07:00
Doug Gregor
191a4f8029 [Concurrency] Split @objc checking into a separate test file. 2020-09-04 21:13:17 -07:00