Pavel Yaskevich
570eedbdc7
[ConstraintSystem] Update closure inference to support @execution(...) attribute
...
- Update `ClosureEffectsRequest` to make sure that closure is
marked as `async` when `@execution(...)` attribute is present.
- Update `inferClosureType` to set isolation based on an explicit
`@execution(...)` attribute attached to a closure.
2025-03-12 18:08:53 -07:00
Pavel Yaskevich
e9fd369824
[Sema] Allow use of @execution(...) attribute on closures
2025-03-12 17:29:40 -07:00
Becca Royal-Gordon
7c867ca1da
[NFC] Split DeclAttrOptions into two types
...
We’re running out of bits in DeclAttrOptions, so split it in two: DeclAttrRequirements contains all the `On*` options that describe the declarations allowed to have the attribute, while the other options are now DeclAttrBehaviors.
This commit also sorts the entries in DeclAttr.def by serialization code and improves the formatting of the file.
2025-03-12 14:14:16 -07:00
Tony Allevato
68876a6d4a
Merge pull request #76636 from allevato/rich-identifiers
...
Support raw identifiers (backtick-delimited identifiers containing non-identifier characters).
2025-03-12 14:56:14 -04:00
Anthony Latsis
ae0936f178
Merge pull request #79934 from AnthonyLatsis/no-карри
...
TypeCheckType: Do not fail after emitting a warning
2025-03-12 18:35:16 +00:00
Pavel Yaskevich
1bd0cd7b94
Merge pull request #79928 from xedin/support-debug-constraints-on-line-for-result-builders
...
[ResultBuilders] NFC: Support `-debug-constraints{-on-line=}` for dec…
2025-03-12 00:29:41 -07:00
eeckstein
47b449372e
Merge pull request #79917 from eeckstein/rename-opened-archetype-type
...
AST: rename OpenArchetypeType -> ExistentialArchetypeType
2025-03-12 06:01:10 +01:00
Slava Pestov
9e721a35f2
Merge pull request #79914 from slavapestov/retry-removing-one-way-equal
...
Sema: Mostly remove one-way constraints
2025-03-11 21:24:57 -04:00
Anthony Latsis
89f5066fb4
TypeCheckType: Do not fail after emitting a warning
...
Also remove the redundant diagnosis altogether. This case is already
handled by the existential syntax checker just fine.
2025-03-12 00:33:18 +00:00
Pavel Yaskevich
6197aab467
[ResultBuilders] NFC: Support -debug-constraints{-on-line=} for declaration transforms
2025-03-11 15:13:58 -07:00
Tony Allevato
a68347f299
[Sema] Validate names of @objc declarations with raw identifiers.
...
If a decl is exported to Objective-C (explicitly or implicitly), it
must be given an explicit name that is a valid Objective-C identifier.
2025-03-11 17:18:44 -04:00
Erik Eckstein
d225c47d25
AST: rename OpenArchetypeType -> ExistentialArchetypeType
...
NFC
2025-03-11 20:21:46 +01:00
Slava Pestov
4c60e036ac
Merge pull request #79882 from slavapestov/sizeof-constraint
...
Sema: Optimize Constraint layout to save 24 bytes
2025-03-11 14:30:44 -04:00
Doug Gregor
fed1a74848
Merge pull request #79904 from DougGregor/unsafe-concurrency-cycle
...
[Strict memory safety] Eliminate false cycle when checking nonisolated(unsafe)
2025-03-11 11:01:09 -07:00
Slava Pestov
6d8b55a9f6
Sema: Split up gatherConstraints() into gatherAllConstraints() and gatherNearbyConstraints()
...
The two GatherKinds no longer share any implementation, so there's
no point keeping the logic together. Doing this also allows removing
the acceptConstraintFn from gatherAllConstraints(), which further
simplifies depthFirstSearch().
2025-03-11 13:55:40 -04:00
Slava Pestov
2500c83332
Sema: Simplify depthFirstSearch() a bit now that it only has one caller
2025-03-11 13:55:39 -04:00
Slava Pestov
94eff70b1d
Sema: Remove DependentComponentSplitterStep
2025-03-11 13:55:39 -04:00
Slava Pestov
917173c7f4
Sema: Remove one-way constraint handling from computeConnectedComponents()
2025-03-11 13:55:39 -04:00
Allan Shortlidge
e68d8edb03
Merge pull request #79902 from tshortli/result-builder-member-import-visibility
...
Sema: Adjust result builder operation lookup for MemberImportVisibility
2025-03-11 10:45:46 -07:00
Slava Pestov
e48d00d26c
Merge pull request #79876 from jameesbrown/pack-generic-param
...
[CS] Deep-equality match OpenedArchetypeTypes
2025-03-11 10:02:15 -04:00
Anthony Latsis
5a92bc5e12
Merge pull request #79897 from AnthonyLatsis/danaus-plexippus-3
...
Small adjustments to adoption mode modeling
2025-03-11 11:47:18 +00:00
Doug Gregor
733dd86c92
Merge pull request #79896 from DougGregor/strict-memory-safety-cleanups
...
Strict memory safety cleanups
2025-03-11 01:26:30 -07:00
Doug Gregor
81e8f75f93
[Strict memory safety] Eliminate false cycle when checking nonisolated(unsafe)
...
Whenc hecking for nonisolated(unsafe), don't evaluate the full isolation
of the entity, because doing so causes a reference cycle.
2025-03-10 22:59:50 -07:00
Michael Gottesman
04bb69f426
Merge pull request #79727 from gottesmm/pr-025c1133954b74e7b4eda77e1a6f3bcafd4eb6cf
...
[concurrency] Add initial support for SwiftSettings to control defaultIsolation at the file level.
2025-03-10 22:35:00 -07:00
Allan Shortlidge
7a514c99e2
Sema: Adjust result builder operation lookup for MemberImportVisibility.
...
To avoid spurious diagnostics about unavailable operations when checking uses
of functions that take result builder closures, lookup of result builder
operations needs to ignore the restrictions of the `MemberImportVisibility`
feature. The result builder transform should simply use the operations that are
found and allow later checks to diagnose the use of inaccessible builder
operations.
Resolves rdar://144100445.
2025-03-10 20:54:41 -07:00
Anthony Latsis
b3df0dcd08
[NFC] Basic: Do not return true in LangOptions::hasFeature if adoption mode
...
This check is used to enact features, whereas adoption mode should not
change behavior.
2025-03-11 01:14:39 +00:00
Anthony Latsis
6b12faf5c1
[NFC] TypeCheckType: Compute language mode to limit diagnostic behavior for ExistentialAny
2025-03-11 01:14:39 +00:00
Michael Gottesman
f64dd5a8d5
[concurrency] Add initial support for SwiftSettings to control defaultIsolation at the file level.
...
We introduce a new macro called #SwiftSettings that can be used in conjunction
with a new stdlib type called SwiftSetting to control the default isolation at
the file level. It overrides the current default isolation whether it is the
current nonisolated state or main actor (when -enable-experimental-feature
UnspecifiedMeansMainActorIsolated is set).
2025-03-10 17:33:45 -07:00
Pavel Yaskevich
1e88bc6849
Merge pull request #79828 from xedin/rdar-145103149
...
[CSBindings] Don't delay inferred loeading-dot base inference if sour…
2025-03-10 17:29:23 -07:00
James Brown
edb0fa7b3d
[CS] Deep-equality match OpenedArchetypeTypes
...
When we have two distinct OpenedArchetypeTypes that have the same
interface type and UUID, we need to match their generic arguments.
2025-03-10 19:19:53 -04:00
Doug Gregor
f404c8a58c
[Distributed] Inject "unsafe" expression for synthesized unsafe code
2025-03-10 15:42:25 -07:00
Slava Pestov
83118a73ed
Sema: Shave another 8 bytes off of Constraint
2025-03-10 14:53:48 -04:00
Slava Pestov
ada6f77655
Sema: Track solver arena size in statistics
2025-03-10 14:03:05 -04:00
Slava Pestov
a7a19a0915
Sema: Optimize Constraint layout to save 16 bytes
...
The largest union member was for SyntacticElement constraints;
let's tail-allocate the ContextualTypeInfo instead of storing
one in every constraint.
2025-03-10 13:28:17 -04:00
Rintaro Ishizaki
accd108e4a
Merge pull request #79857 from rintaro/retire-pound-diagnostics-decl
...
[Parse/AST] Remove PoundDiagnosticDecl
2025-03-09 21:23:16 -07:00
Hamish Knight
deac7012cb
[AST] Avoid setting questionLoc for implicit OptionalSomePatterns
...
Instead fix `getSourceRange` to handle cases where the question
location is missing.
2025-03-08 18:45:39 +00:00
Rintaro Ishizaki
5eac58e1e0
[AST] SwitchStmt only hold CaseStmt
...
Now that there is no way SwitchStmt to hold AST nodes other than
CaseStmt.
2025-03-08 09:14:40 -08:00
Allan Shortlidge
56f7ffd26c
Merge pull request #79858 from tshortli/spi-available-attr-diagnostics
...
Sema: Diagnose `@_spi_available` on declarations that cannot be unavailable
2025-03-08 03:48:56 -08:00
Hamish Knight
a596f23fbf
Merge pull request #79850 from hamishknight/key-hack
...
[Sema] Apply CodingKeys hack to `TypeChecker::lookupUnqualifiedType`
2025-03-08 10:35:16 +00:00
Rintaro Ishizaki
002d7d7cdf
[Parse/AST] Remove PoundDiagnosticDecl
...
There is no reson to make a AST node for '#error' and '#warning'
directives. Parser knows the diagnostics should be emitted or not.
2025-03-07 21:48:01 -08:00
Allan Shortlidge
0fd2f3fc1c
Sema: Diagnose @_spi_available on declarations that cannot be unavailable.
...
The attribute makes the declaration unavailable from the perspective of clients
of the module's public interface and was creating a loophole that admitted
inappropriate unavailability.
2025-03-07 19:44:48 -08:00
Allan Shortlidge
396e8f033b
Merge pull request #79849 from tshortli/allow-unavailable-proto-requirements-in-swiftinterface
...
Sema: Downgrade diagnostics about unavailable requirements in swiftinterfaces
2025-03-07 18:02:26 -08:00
Allan Shortlidge
4276771252
Sema: Consolidate diagnostics for decls that cannot be unavailable.
2025-03-07 17:43:51 -08:00
Evan Wilde
28f96411c9
Merge pull request #79778 from etcwilde/ewilde/yo-dawg-heard-you-liked-swift
...
CMake: option to disable swift in swift
2025-03-07 13:12:00 -08:00
Hamish Knight
7ae3ccf0bf
[Sema] Apply CodingKeys hack to TypeChecker::lookupUnqualifiedType
...
Currently we handle CodingKeys synthesis in
`TypeChecker::lookupUnqualified`, make sure we do the same in
`TypeChecker::lookupUnqualifiedType`.
rdar://146055457
2025-03-07 21:03:33 +00:00
Allan Shortlidge
6284dd4895
Sema: Downgrade diagnostics about unavailable requirements in swiftinterfaces.
...
Historically, we've allowed protocol requirements to be written with
`@_spi_available` which makes them unavailable to clients of the public
`.swiftinterface`. Don't diagnose this when checking a `.swiftinterface` since
there's nothing the client can do about it.
Resolves rdar://146334181.
2025-03-07 12:02:42 -08:00
Anthony Latsis
5d92f7953c
Merge pull request #79792 from AnthonyLatsis/danaus-plexippus-2
...
Introduce adoption mode for Swift features (take 2)
2025-03-07 19:47:44 +00:00
nate-chandler
38c8cc8ff4
Merge pull request #77661 from nate-chandler/general-coro/20241115/1
...
[CoroutineAccessors] Default implementations are transparent.
2025-03-07 11:39:21 -08:00
Pavel Yaskevich
87e3e3d8a1
[CSBindings] Don't delay inferred loeading-dot base inference if source is a contextual type
...
Transitively inferring a protocol type binding from a contextual
type means that the binding set for a leading-dot member reference
is complete because there could be no other sources of bindings
when expression is connected directly to a contextual type.
Resolves: rdar://145103149
2025-03-06 14:58:21 -08:00
Doug Gregor
0ec13f9a90
Build compiler and runtimes without Swift
...
Remove dependency on macros from compiler and stdlib build when
bootstrapping the compiler without Swift available.
2025-03-06 13:32:52 -08:00