Commit Graph

45907 Commits

Author SHA1 Message Date
Anthony Latsis
2771f36ced LangOptions: Refactor feature state and API to account for adoption mode 2025-03-04 13:43:28 +00:00
Anthony Latsis
2a88419f5c Frontend: Do not suggest mode correction if adoption is not supported 2025-03-04 13:43:28 +00:00
Anthony Latsis
756abb9284 Frontend: Warn if adoption mode is requested but not supported 2025-03-04 13:43:28 +00:00
Anthony Latsis
8dab67bcee Basic: Adjust feature macros for adoption mode 2025-03-04 13:43:28 +00:00
Anthony Latsis
2abf67872c Frontend: Parse a feature mode specifier 2025-03-04 13:43:28 +00:00
Gabor Horvath
d0c167762c [cxx-importer] Do not import pointers to non-escapable types
Unfortunately, Unsafe*Pointer types do not support non-escapable
pointees so we do not really have anything to map these types to at the
moment. Previously, importing such code resulted in crashes.

rdar://145800679
2025-03-04 12:27:34 +00:00
Andrew Trick
5783b497e5 Merge pull request #79758 from atrick/addressable-deps
Support enforcement of '@'_addressable under -enable-address-dependencies
2025-03-03 23:51:56 -08:00
Allan Shortlidge
a7de6ec0a3 Merge pull request #79761 from tshortli/availability-context-trailing-objects
AST: Reimplement `AvailabilityContext` storage using `TrailingObjects`
2025-03-03 23:40:31 -08:00
Doug Gregor
6f6b8dd071 [Diagnostics] Provide category name + documentation path
Bridge the category name and educational note computed for the Swift
compiler's diagnostics to the newly-introduced category field for
the swift-syntax diagnostics. This lets the swift-syntax renderer
introduce the category name and (optionally) link to the
documentation.
2025-03-03 22:49:33 -08:00
John Hui
98f4c1d263 [NFC] inline hasDomain into assertion (#79755) 2025-03-03 22:12:08 -08:00
Holly Borla
fdd7402bbf [Educational Notes] Add an explanation for sending closure arguments. 2025-03-03 21:44:30 -08:00
Holly Borla
0f7c991eec [Educational Notes] Add an explanation for actor-isolated calls from
synchronous nonisolated contexts.
2025-03-03 21:44:30 -08:00
Holly Borla
cf437719fa [Educational Notes] Add an explanation for captures in a @Sendable
closure.
2025-03-03 21:40:59 -08:00
Holly Borla
4353c5a2fe [Educational Notes] Add an explanation for the unsafe global variable
errors.
2025-03-03 21:22:33 -08:00
Holly Borla
72eab9f02a [Educational Notes] Add an explanation for `sending 'x' risks causing
data races`.
2025-03-03 21:22:33 -08:00
Holly Borla
8be41edf6f [Concurrency] Add a macro for wrapping a function body in a new task. 2025-03-03 20:51:14 -08:00
Allan Shortlidge
c6a5e6f745 AST: Reimplement AvailabilityContext storage using TrailingObjects.
This makes more efficient use of the permanent memory allocated for
`AvailabilityContext` representations and also fixes a leak that was introduced
in https://github.com/swiftlang/swift/pull/79718 where the small vector for
unavailable domain storage was not being cleaned up on `ASTContext`
deallocation.

Resolves rdar://145929932.
2025-03-03 18:29:34 -08:00
Doug Gregor
064e0c6264 Ensure that isolated conformances originate in the same isolation domain
This is the missing check for "rule #1" in the isolated conformances proposal,
which states that an isolated conformance can only be referenced within
the same isolation domain as the conformance. For example, a
main-actor-isolated conformance can only be used within main-actor code.
2025-03-03 17:47:50 -08:00
Andrew Trick
fa64a362a2 Add -Xfrontend -enable-address-dependencies
Temporary option to bootstrap '@'_addressable enforcement.

Once all the SILGen cases are handled, we won't need this option.
2025-03-03 16:21:48 -08:00
Meghana Gupta
cf6c4c9422 Merge pull request #79699 from meg-gupta/prboundscheck
Add support for bounds check optimization of Span and InlineArray
2025-03-03 14:32:27 -08:00
Konrad `ktoso` Malawski
92ead521b8 [Concurrency] Fix swift-inspect and remote mirror build (#79715) 2025-03-04 07:04:42 +09:00
Andrew Trick
bc6200e592 SwiftCompilerSources: bridge '@'_addressable dependencies 2025-03-03 11:56:37 -08:00
Andrew Trick
c937aa079e Merge pull request #79736 from atrick/fix-address-walk
Add verification to catch many incorrect liveness checks
2025-03-03 11:54:40 -08:00
Alexis Laferrière
eb148b1d37 Merge pull request #79713 from xymus/index-while-building-allow-errors
Index: Accept more deserialization inconsistencies during index-while-building
2025-03-03 11:33:31 -08:00
Adrian Prantl
a1724891ec Merge pull request #79700 from adrian-prantl/getinstancetypeinfo
[reflection] Generalize the implementation of getInstanceTypeInfo()
2025-03-03 09:02:44 -08:00
Andrew Trick
d73a081fe7 Add pointer escape and dependent use tracking to InteriorLiveness
Rig TransitiveAddressWalker to keep track of enough information for passes to
correctly check for pointer escapes and dependence uses. Requires for precise
bail-outs and asserts.
2025-03-02 23:51:34 -08:00
Allan Shortlidge
dc2fe53089 AST: Rename a couple of AvailabilityConstraint::Reason cases.
Choose names that don't imply availability is versioned, since custom
availability will support domains that are version-less (they are simply
available or unavailable).
2025-03-02 15:08:37 -08:00
Allan Shortlidge
b630fe5479 AST: Rename Range to PlatformRange in AvailabilityContext::Info. 2025-03-02 14:45:50 -08:00
Allan Shortlidge
866db542a3 Gardening: Use const consistently for ASTContext parameters. 2025-03-02 14:45:50 -08:00
Allan Shortlidge
dc3df46dd5 Merge pull request #79730 from tshortli/availability-comparisons
AST: Consolidate availability version remapping
2025-03-02 14:41:57 -08:00
Andrew Trick
6975663581 Merge pull request #79731 from atrick/fix-markdep-walk
Fix TransitiveAddressWalker with mark_dependence
2025-03-02 08:51:31 -08:00
Andrew Trick
45cac09728 Fix TransitiveAddressWalker with mark_dependence
This utility was simply ignoring the dependent value. But the
dependent value logically uses the base address. Until this is
correctly implemented, conservatively consider it a pointer-escape.
2025-03-01 22:25:42 -08:00
Allan Shortlidge
3b9ca2f397 AST: Consolidate availability version remapping.
Introduce `SemanticAvailableAttr` conveniences to compute the deprecated and
obsoleted ranges for an attribute and ensure they remap versions when needed.
2025-03-01 20:23:11 -08:00
Doug Gregor
ee2450f212 Merge pull request #79724 from DougGregor/isolated-conformances-constraint-system
Prohibit isolated conformances with Sendable(Metatype) constraints
2025-03-01 13:16:32 -08:00
Allan Shortlidge
a0010cbf05 Merge pull request #79718 from tshortli/multiple-unavailable-domains
AST: Allow multiple unavailable domains in `AvailabilityContext`
2025-03-01 09:24:11 -08:00
Doug Gregor
6a4d1a41c4 Prohibit isolated conformances with Sendable(Metatype) constraints
Within the constraint system, introduce a new kind of conformance constraint,
a "nonisolated conforms-to" constraint, which can only be satisfied by
nonisolated conformances. Introduce this constraint instead of the normal
conforms-to constraint whenever the subject type is a type parameter that
has either a `Sendable` or `SendableMetatype` constraint, i.e., when the type
or its values can escape the current isolation domain.
2025-03-01 08:19:42 -08:00
Kuba Mracek
71a5e397e4 [embedded][Concurrency] Fix missing swift_deletedAsyncMethodError 2025-03-01 06:48:39 -08:00
Allan Shortlidge
fc41265d4d Merge pull request #79711 from tshortli/availability-diagnostics
AST/Sema: Adopt `AvailabilityDomain` arguments in diagnostics
2025-02-28 22:30:09 -08:00
Allan Shortlidge
f34e135cfa AST: Add verification for AvailabilityContext. 2025-02-28 19:09:34 -08:00
Allan Shortlidge
9455a0fece AST: Track multiple unavailable domains in AvailabilityContext. 2025-02-28 19:09:34 -08:00
Allan Shortlidge
b02d44352e AST: Introduce StableAvailabilityDomainComparator. 2025-02-28 19:09:33 -08:00
Alexis Laferrière
302d6f1dcf Index: Accept compiler errors during index-while-building
Force allowing reading from modules with compiler errors during
index-while-building as a way to recover from more deserialization
issues.
2025-02-28 14:56:26 -08:00
Allan Shortlidge
309db1c220 Sema: Update feature availability diagnostics to take AvailabilityDomain. 2025-02-28 14:46:34 -08:00
Allan Shortlidge
bc982097b9 AST/Sema: Adopt AvailabilityDomain arguments in even more diagnostics.
Update potential unavailability diagnostics to take `AvailabilityDomain`
instead of a platform string.
2025-02-28 14:13:24 -08:00
Allan Shortlidge
c89df2fc38 AST/Sema: Adopt AvailabilityDomain arguments in more diagnostics.
Update explicit unavailability and deprecation diagnostics to take
`AvailabiiltyDomain` instead of a platform string.
2025-02-28 13:57:00 -08:00
Pavel Yaskevich
3032add0ad [Sema] Allow associated type inference to skip @Sendable on ObjC witnesses
Witness checking itself is allowed to skip `@Sendable` mismatch in this
situation. This is a narrow fix for `SendableCompletionHandlers` feature
to make sure that the behavior doesn't change for non-ObjC witnesses
2025-02-28 13:24:00 -08:00
Doug Gregor
ffca6968ed [Isolated conformances] Diagnose conflict with isolated conformances and Sendable 2025-02-28 13:08:35 -08:00
Adrian Prantl
58c01bef79 [reflection] Generalize the implementation of getInstanceTypeInfo()
This is being indirectly tested by the LLDB testsuite.
2025-02-28 12:35:59 -08:00
Mike Ash
beba678f04 Merge pull request #79302 from mikeash/singleton-metadata-pointer
[IRGen] Emit a pointer from nominal type descriptor to concrete metadata.
2025-02-28 15:24:36 -05:00
nate-chandler
f8b60bb6d2 Merge pull request #79685 from nate-chandler/general-coro/20250227/1
[CoroutineAccessors] Use swiftcorocc if available.
2025-02-28 12:06:54 -08:00