Rintaro Ishizaki
30be52db35
Merge pull request #79821 from rintaro/astgen-available-domain-or-identifier
...
[ASTGen] Adopt AvailabilityDomainOrIdentifier scheme
2025-03-07 12:16:11 -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
6581fec9e1
[CoroutineAccessors] PtrAuth.
2025-03-07 11:46:51 -08:00
Nate Chandler
f5d03a6d11
[CoroutineAccessor] Remove old ABI support.
...
This was useful during bringup. Now that retcon.once.dynamic coroutine
splitting is available, it's no longer needed.
2025-03-07 11:40:38 -08: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
Alexis Laferrière
e814b3f66c
Serialization: Intro enableExtendedDeserializationRecovery
...
Introduce a new deserialization mode `enableExtendedDeserializationRecovery`
for use when we can afford inconsistent information from a swiftmodule
file. It's enabled automatically in debugger mode, when user errors are
allowed and during index-while-building.
2025-03-07 10:55:00 -08:00
Rintaro Ishizaki
a506bae136
[ASTGen] Generate 'IsExpansionPattern' generic requirements
...
E.g. `where repeat each T: Comparable`
2025-03-07 10:28:47 -08:00
susmonteiro
51357a952c
[cxx-interop] Prevent usage in Swift of C++ move constructor with default args
2025-03-07 16:02:38 +00:00
Rintaro Ishizaki
c669004e4c
[ASTGen] Clone expanded AvailabilitySpec to set macro location
2025-03-07 07:18:39 -08:00
Rintaro Ishizaki
0a56198879
[ASTGen] Remove BridgedAvailabilityDomain
2025-03-07 07:18:23 -08:00
Erik Eckstein
26c7310a9a
Swift AST: Fix debug description of Type
...
Don't get the swift source version string, but the debug dump string
2025-03-07 15:59:35 +01:00
Erik Eckstein
77dab77702
Swift SIL: make isLegalFormalType available in AST.Type
2025-03-07 15:59:34 +01:00
Erik Eckstein
431401c0dd
Swift AST: add an initializer to SubstitutionMap
...
And let it conform to `NoReflectionChildren` to make it's debug dump in lldb nicer
2025-03-07 15:59:34 +01:00
Erik Eckstein
67925ea27e
Swift AST: add GenericSignature
...
and add `var Type.invocationGenericSignatureOfFunctionType`
2025-03-07 15:59:34 +01:00
Erik Eckstein
810064b7dc
Cleanup and additions to AST and SIL Type/CanonicalType
...
* factor out common methods of AST Type/CanonicalType into a `TypeProperties` protocol.
* add more APIs to AST Type/CanoncialType.
* move `MetatypeRepresentation` from SIL.Type to AST.Type and implement it with a swift enum.
* let `Builder.createMetatype` get a CanonicalType as instance type, because the instance type must not be a lowered type.
2025-03-07 15:59:33 +01:00
Erik Eckstein
eadfbf6842
Swift AST: add some APIs to Type and CanonicalType
2025-03-07 15:59:33 +01:00
Rintaro Ishizaki
ff6cb11bb0
[ASTGen] Introduce 'AvailableAttr::createUnavailableInEmbedded()'
2025-03-07 04:14:50 -08:00
Rintaro Ishizaki
d60f1986a8
[ASTGen] Adopt AvailabilityDomainOrIdentifier scheme
...
Aligning with libParse
2025-03-07 04:14:50 -08:00
Allan Shortlidge
35fed04aa1
Merge pull request #79807 from tshortli/availability-context-available-custom-domains
...
AST: Teach AvailabilityContext to represent version-less availability
2025-03-07 03:25:40 -08:00
Allan Shortlidge
0462cfda11
AST: Teach AvailabilityContext to represent version-less availability.
...
This enables potential unavailability diagnostics to be emitted for decls that
are only available in version-less domains.
2025-03-06 22:29:50 -08:00
Allan Shortlidge
6ab32cff94
Sema: Parameterize potential unavailability diagnostics to allow no version.
...
This allows `X is only available in` diagnostics to be emitted for potential
unavailability in domains that do not support versioning.
2025-03-06 13:04:18 -08:00
Allan Shortlidge
0bf464b272
AST: Return optional AvailabilityRange from SemanticAvailableAttr queries.
...
Introduction, deprecation, and obsoleteion ranges should only be returned by
the accessors on `SemanticAvailableAttr` when the attribute actually has an
affect on the corresponding kind of availability.
2025-03-06 13:02:19 -08:00
Rintaro Ishizaki
017c0d98ec
[ASTGen] Generate AutoDiff attributes
...
`@differentiable`, `@derivative` and `@transpose`
2025-03-06 10:36:13 -08:00
Artem Chikin
148fb369fe
[Dependency Scanning] Unique collected cross-import overlay files with a set
...
Resolves rdar://146141228
2025-03-05 15:13:07 -08:00
Anthony Latsis
6a3903bb53
Revert "Revert "Introduce adoption mode for Swift features""
...
This reverts commit 393c59c078 .
2025-03-05 15:21:01 +00:00
Allan Shortlidge
cad1ee75d5
AST: Optimize the layout of AvailabilityRange.
...
`AvailabilityRange` is now being used as a currency type in more of the
compiler, and some of those uses are in permanent `ASTContext` allocations. The
class wraps the `VersionRange` utility, which is itself a wrapper around
`llvm::VersionTuple` with some additional storage for representing sentinel
values. Even though the two sentinel values can be be represented with just a
single bit of additional storage on top of the 16 bytes required to represent
`VersionTuple`, because of alignment requirements the sentinel values end up
bloating the layout of `VersionRange` by many bytes.
To make `AvailabilityRange` and `VersionRange` more efficient to store, we can
instead reserve two unlikely `llvm::VersionTuple` bit patterns as the sentinel
values instead. The values chosen are the same ones LLVM uses to represent
version tuple tombstones and empty keys in a `DenseMap`.
2025-03-05 07:15:15 -08:00
Allan Shortlidge
6eab842e7a
Merge pull request #79777 from tshortli/potential-unavailability-diagnostics
...
AST/Sema: Decouple potential unavailability diagnostics from platform version
2025-03-05 00:35:23 -08:00
Allan Shortlidge
b5954e114b
Merge pull request #79782 from tshortli/semantic-availability-spec-request
...
AST: Request-ify retrieval of `SemanticAvailabilitySpec`
2025-03-04 23:12:31 -08:00
Allan Shortlidge
a9707786eb
IRGen: Update diagnostics to take AvailabilityRange instead of VersionTuple.
2025-03-04 19:41:04 -08:00
Allan Shortlidge
437382507e
IDE: Update diagnostics to take AvailabilityRange instead of VersionTuple.
2025-03-04 19:41:04 -08:00
Allan Shortlidge
fe0688c40e
Sema: Update diagnostics to take AvailabilityRange instead of VersionTuple.
2025-03-04 19:41:04 -08:00
Allan Shortlidge
1409cb1a30
AST: Teach DiagnosticEngine to accept AvailabilityRange arguments.
2025-03-04 19:41:04 -08:00
Allan Shortlidge
b64df7384e
AST: Simplify AvailabilityRange construction.
...
Introduce a constructor that takes an `llvm::VersionTuple` directly, instead of
needing to spell out `VersionRange::allGTE(<tuple>)` which is unnecessarily
verbose.
2025-03-04 19:41:04 -08:00
Allan Shortlidge
cb778b7ce4
AST/Sema: Expand potential unavailability diagnostics to arbitrary domains.
...
When emitting potential unavailability diagnostics, don't assume that they can
only apply to the target platform `AvailabilityDomain`.
2025-03-04 19:41:04 -08:00
Rintaro Ishizaki
393c59c078
Revert "Introduce adoption mode for Swift features"
2025-03-04 19:13:05 -08:00
Allan Shortlidge
3ea979f712
AST: Request-ify retrieval of SemanticAvailabilitySpec.
...
Introduced `SemanticAvailabilitySpecRequest` to retrieve the semantic spec for
an `AvailabilitySpec`. Add an `isInvalid` bit to `AvailabilitySpec` to track
whether the request failed. Unfortunately, there aren't any easily accessible
spare bits in the layout of `AvailabilitySpec` so it had to be a new field.
2025-03-04 17:46:18 -08:00
Anthony Latsis
43b00af490
Merge pull request #79649 from AnthonyLatsis/danaus-plexippus
...
Introduce adoption mode for Swift features
2025-03-04 23:16:28 +00:00
Artem Chikin
6da529f098
Merge pull request #79753 from artemcm/NewConstFeatureDefinition
...
[Compile Time Values] Add a new experimental feature and the parsing of the `@const` attribute
2025-03-04 12:26:04 -08:00
Holly Borla
3a744d2116
Merge pull request #79509 from hborla/educational-notes
...
[Educational Notes] Start adding educational notes for data-race safety.
2025-03-04 11:22:11 -08:00
Pavel Yaskevich
157e71a791
Merge pull request #79478 from xedin/sendable-completion-handler-fixes
...
[TypeChecker/NameLookup] SE-0463: A few fixes for `SendableCompletionHandlers` feature
2025-03-04 09:34:10 -08:00
Pavel Yaskevich
eb7b76525c
Merge pull request #79651 from xedin/sendability-checks-for-function-conversions
...
[Concurrency] Implement sendability checking for `@Sendable` function…
2025-03-04 09:33:59 -08:00
Gábor Horváth
3b412ae0c6
Merge pull request #79697 from swiftlang/gaborh/do-not-import-nonesc-pointees
...
[cxx-importer] Do not import pointers to non-escapable types
2025-03-04 17:26:38 +00:00
Doug Gregor
c169f8850b
Merge pull request #79760 from DougGregor/isolated-conformances-checking
...
Ensure that isolated conformances originate in the same isolation domain
2025-03-04 07:49:53 -08:00
Artem Chikin
13a8d4b88e
[Compile Time Values] Add a new experimental feature and the parsing of the '@const' attribute
2025-03-04 07:30:57 -08:00
Artem Chikin
de26e960e2
Rename '_const' attribute to 'CompileTimeLiteral'
...
To pave the way for the new experimental feature which will operate on '@const' attribute and expand the scope of what's currently handled by '_const' without breaking compatibility, for now.
2025-03-04 07:30:02 -08:00
Holly Borla
f0446d0271
Merge pull request #79729 from hborla/concurrency-sugar
...
[Concurrency] Add an experimental macro for wrapping a function body in a new task.
2025-03-04 06:14:15 -08: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
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