Commit Graph

709 Commits

Author SHA1 Message Date
Kavon Farvardin
0420310623 NCGenerics: it's no longer "experimental"
resolves rdar://127701059
2024-05-08 10:49:12 -07:00
nate-chandler
bcd08c0c9a Merge pull request #73235 from nate-chandler/bitwise-copyable/enable
[BitwiseCopyable] Promote to feature.
2024-05-04 10:16:40 -07:00
Doug Gregor
406346b4ba Merge pull request #73425 from DougGregor/task-group-next-public 2024-05-04 00:09:28 -07:00
Doug Gregor
32cf39aa11 Update API expectations for (Throwing)TaskGroup.next() 2024-05-03 13:24:20 -07:00
Holly Borla
43681259e9 Merge pull request #73310 from hborla/async-stream-sendable-error
[Concurrency] Stage in new `Async{Throwing}Stream.init(unfolding:)` errors as warnings.
2024-04-30 19:23:19 -07:00
Holly Borla
7f5e47eb6f [NFC] Update api-digester concurrency test. 2024-04-30 16:25:17 -07:00
Nate Chandler
b1fbe4ea91 [BitwiseCopyable] Remove underscore. 2024-04-25 11:44:15 -07:00
Slava Pestov
feea84dc6c Sema: Ban uncallable protocol member operators
Member operators of concrete nominal types must declare at least
one parameter with that type, like

```
struct S {
  static func +(lhs: S, rhs: Int) -> S {}
}
```

For protocol member operators, we would look for a parameter of type
`Self`, or an existential type `any P`. While the latter was
consistent with the concrete nominal type case, it was actually
wrong because then the resulting interface type does not give the
type checker any way to bind the `Self` type parameter.

There were two existing test cases that now produce errors, which I
believe is now correct. While this is technically a source break,
because these bogus operators seemingly cannot be witnessed or called,
such a protocol probably had no conforming types.

Fixes https://github.com/apple/swift/issues/73201.
2024-04-23 15:28:16 -04:00
Karoy Lorentey
1b89293029 [api-digester] Update ceremonial confessions 2024-04-17 07:57:11 -07:00
Karoy Lorentey
a681a3d45e [api-digester] Ritually confess our sins 2024-04-16 11:21:08 -07:00
Konrad `ktoso` Malawski
dfcf1054dd [Concurrency] Remove _unsafeInheritExecutor from public APIs, use #isolation (#72578) 2024-04-05 03:57:54 -07:00
Konrad `ktoso` Malawski
3295ddd200 [Concurrency] waitForAll and next of TaskGroups must inherit isolation (#72794) 2024-04-04 23:49:05 -07:00
Stephen Canon
a381589524 SE-0425 implementation (#72139) 2024-04-02 16:24:41 -04:00
Kavon Farvardin
554fa49a1f Test: clean-up noncopyable_generics lit usage
There no longer is a lit feature called `noncopyable_generics`, it's
just always on now.
2024-04-01 12:28:08 -07:00
Allan Shortlidge
a1dacc12d7 stdlib: Make typed throws ABI placeholders properly @usableFromInline.
Functions that are used in public `@inlinable` function bodies can't be marked
`@_spi` nor can they be made obsolete. Also, they must retain `rethrows` so
that use of these entry points from other `rethrows` functions is accepted.

Builds on https://github.com/apple/swift/pull/72365. Once we no longer have to
support pre-`$TypedThrows` compilers, all of this can be reverted.

Part of rdar://125138945
2024-03-27 14:57:56 -07:00
Karoy Lorentey
c2f8d733dc [test] Update api-digester false positives lists 2024-03-21 13:53:58 -07:00
Karoy Lorentey
f24e18cb01 Merge pull request #71688 from lorentey/noncopyable-primitives
[stdlib] Start adopting noncopyable generics in the stdlib
2024-03-18 20:45:24 -07:00
Karoy Lorentey
74bd1e385c [test] Fix mismerge in old ABI checker’s expectation list 2024-03-18 15:27:29 -07:00
Karoy Lorentey
bd39c35026 [test] Un-xfail tests that are passing now that NoncopyableGenerics is a suppressible feature 2024-03-18 12:32:33 -07:00
Kavon Farvardin
f72a9a1f68 re-disable test on non-x86 2024-03-18 11:24:10 -07:00
Karoy Lorentey
68a8c41e81 [test] Temporarily XFAIL tests that expect swiftinterface files to work when using Optional and other stdlib features 2024-03-18 11:09:08 -07:00
Karoy Lorentey
6e77f85f92 [abi] Update false positives list for api-digester based ABI/source stability tests 2024-03-18 11:09:07 -07:00
Kavon Farvardin
cc709d676d Test: update baseline for NoncopyableGenerics 2024-03-14 23:10:44 -07:00
Kavon Farvardin
11220bb3d0 ABI Tests: include Copyable/Escapable in baseline 2024-03-14 23:10:44 -07:00
Kavon Farvardin
3b02f306ee APIDigester: Stringify inverses in GenericSigs
The presence of Copyable/Escapable conformances doesn't affect ABI. Only
their absence in terms of suppressed requirements like `~Copyable` need
to be output for diffing by the APIDigester.
2024-03-14 23:10:44 -07:00
Guillaume Lessard
78273b2390 Merge pull request #72089 from glessard/toplevel-withUMP-typed-throws
[stdlib] convert `withUnsafeMutablePointer()` to typed throws
2024-03-08 13:52:23 -08:00
Guillaume Lessard
3f9d93df76 [api-digester] fix exception omission
Update test/api-digester/stability-stdlib-abi-without-asserts.test
2024-03-08 09:01:11 -08:00
Guillaume Lessard
805dd70cfe Merge pull request #72074 from glessard/toplevel-withbytes-typed-throws
[stdlib] convert `withUnsafeBytes()` to typed throws
2024-03-08 08:55:08 -08:00
Slava Pestov
41df661160 AST: Use a builtin conformance for unconditional Copyable/Escapable
This generalizes what we were already doing for classes.
2024-03-07 15:07:47 -05:00
Guillaume Lessard
578a058797 Merge pull request #72052 from glessard/toplevel-withpointer-typed-throws
[stdlib] convert `withUnsafePointer()` to typed throws
2024-03-06 15:01:45 -08:00
Nate Chandler
73231b185b [BitwiseCopyable] Don't apply to FixedWidthInteger.
Per LWG feedback.

This reverts commit c8119e3c01.
2024-03-06 08:12:54 -08:00
Guillaume Lessard
fd726ccac3 [abi-digester] fix an exception
Update test/api-digester/stability-stdlib-abi-without-asserts.test
2024-03-05 09:24:13 -08:00
Guillaume Lessard
72e26f2d87 [api-digester] add more exceptions for typed throws 2024-03-05 03:06:42 -08:00
Guillaume Lessard
95c07e4688 [api-digester] add more exceptions for typed throws 2024-03-05 02:31:23 -08:00
Guillaume Lessard
e02d8ab799 [api-digester] add more exceptions for typed throws 2024-03-05 02:25:52 -08:00
Pavel Yaskevich
79a71c13de Merge pull request #71971 from xedin/ncgenerics-swiftpm-circularity-issue
[AST/Serialization] Fix circularity issue with deserialized protocols and composition types
2024-02-29 17:18:28 -08:00
Pavel Yaskevich
bf599b70f4 [Serialization] Form protocol's inherited types based on deserialized protocols 2024-02-29 11:20:05 -08:00
Karoy Lorentey
a35741f4eb [test] Expect the phantom removal of _get*RetainCount functions 2024-02-27 13:18:28 -08:00
Doug Gregor
8c452b5cf5 Fix accidental ABI break with AsyncSequence.flatMap
At the type that I introduced type throws into AsyncSequence and its
algorithms, I accidentally dropped a `@preconcurrency` on the ABI
entrypoint, leading to a mangled name change.

Fixes rdar://123639030.
2024-02-26 12:38:56 -08:00
Slava Pestov
6939740db2 Adjust XFAILs 2024-02-24 07:25:59 -05:00
Slava Pestov
dde28e96a2 AST: Don't call getDirectlyInheritedNominalTypeDecls() on a protocol in ConformanceLookupTable 2024-02-24 07:25:59 -05:00
Slava Pestov
7909d83229 AST: Refactor directReferencesForTypeRepr() to track inverses 2024-02-24 07:25:59 -05:00
Kavon Farvardin
f296d8e158 NCGenerics: mass XFAIL tests
It's easier to get a handle on regressions while working through
failures if the tests that are known to not pass are XFAIL'd for
NoncopyableGenerics.
2024-02-20 18:26:05 -05:00
Guillaume Lessard
71640be109 Merge pull request #71363 from glessard/rdar115296219
[stdlib] properly rename validatingUTF8 to validatingCString
2024-02-07 14:37:23 -08:00
Guillaume Lessard
16af5e6a28 [test] silence api-digester false alarm 2024-02-03 16:19:05 -08:00
Nate Chandler
c8119e3c01 [stdlib] FixedWidthInteger is BitwiseCopyable. 2024-01-30 14:38:07 -08:00
Doug Gregor
b0029b24f5 Add AsyncThrowingFlatMapSequence.nextElement() 2024-01-25 16:04:45 -08:00
Doug Gregor
3e726ebc55 Add nextElement() and explicit Failure types for a number of asynchronous iterators 2024-01-25 16:04:44 -08:00
Doug Gregor
239f8d8a78 Rename AsyncIteratorProtocol._nextElement -> nextElement 2024-01-25 16:04:43 -08:00
Doug Gregor
b2a5ebe1bd Always emit AsyncIteratorProtocol._nextElement into the client
... this allows us to use the entrypoint when back-deploying code that
uses the async for..in loop.
2024-01-25 16:04:43 -08:00