Pavel Yaskevich
dd1be8f6d4
[Frontend] Hide @execution attribute behind an experimental feature ExecutionAttribute
...
Since the proposal has not been approved yet we cannot expose
`@execution` attribute.
2025-02-20 00:05:03 -08:00
Allan Shortlidge
ff17263e56
Merge pull request #79480 from tshortli/exclude-parser-diags
...
Parse: Avoid including `DiagnosticsParse.h` in `Parser.h`
2025-02-19 18:19:29 -08:00
Allan Shortlidge
7492e961dc
Merge pull request #79494 from tshortli/type-check-availability-spec
...
Parse/Sema: Move some `AvailabilitySpec` diagnostics from Parse to Sema
2025-02-19 17:07:24 -08:00
Rintaro Ishizaki
e5d5026992
Merge pull request #79456 from rintaro/astgen-paramdecl
...
[ASTGen] ParamDecl generation improvements
2025-02-19 14:05:55 -08:00
Allan Shortlidge
e90530990a
Parse/Sema: Move some AvailabilitySpec diagnostics from Parse to Sema.
...
Eventually, querying the `AvailabilityDomain` associated with an
`AvailabilitySpec` will require invoking a request that takes a `DeclContext`.
This means that any diagnostics related to the domain identified by an
`AvailabilitySpec` need to be emitted during type-checking rather than parsing.
This change migrates several `AvailabilitySpec` diagnostics from Parse to Sema
to unblock further work.
2025-02-19 11:40:56 -08:00
Allan Shortlidge
e8329d292b
Parse: Avoid including DiagnosticsParse.h in Parser.h.
...
This prevents the include of DiagnosticsParse.h from leaking into `.cpp` files
in libraries besides Parse.
2025-02-19 07:56:38 -08:00
Allan Shortlidge
efab3ff0a0
Parse: Broaden an availability spec diagnostic.
...
The "can't be combined with shorthand specification" diagnostic doesn't need to
be specific to platform availability attributes.
2025-02-18 21:31:48 -08:00
Rintaro Ishizaki
6980509f8c
[ASTGen] Generate DefaultArgumentInitializer
...
Rework ParamDecl contextualization.
2025-02-18 11:13:39 -08:00
Becca Royal-Gordon
5c28f1d73d
Merge pull request #78313 from beccadax/llvm_reachable
2025-02-18 01:04:55 -08:00
Rintaro Ishizaki
b729746629
[AST] Make LifetimeDescriptor hold Identifier instead of StringRef
...
No reason to keep the name as a StringRef
2025-02-17 08:59:18 -08:00
Joe Groff
f778170cfb
Merge pull request #79351 from jckarter/lifetime-dependence-lowering
...
SIL: Lower lifetime dependencies when lowering function types.
2025-02-17 07:51:20 -08:00
Hamish Knight
d11f7c9ed6
Merge pull request #79422 from hamishknight/remove-init-ty
...
[AST] NFC: Remove `InitRetType`
2025-02-17 00:56:12 +00:00
Rintaro Ishizaki
6d85bb58c5
Merge pull request #79412 from rintaro/astgen-typeattrs
...
[ASTGen] Generate OpaqueReturnTypeOfTypeAttr
2025-02-16 13:55:39 -08:00
Hamish Knight
1e8dc55b7f
[AST] NFC: Remove InitRetType
...
This is no longer used.
2025-02-16 18:52:23 +00:00
Rintaro Ishizaki
0ced6e06b4
[ASTGen] Generate CaptureListExpr
...
Move the capture list entry construction logic to
CaptureListEntry::createParsed() so that ASTGen can use it.
2025-02-16 05:22:46 -08:00
Rintaro Ishizaki
6184367492
[Parse] Post-process parsed AST to register decls with opaque result
...
Move the logic out of `Paser` so `ASTGen` can use it.
2025-02-14 18:51:22 -08:00
Joe Groff
c65475628f
SIL: Lower lifetime dependencies when lowering function types.
...
Map the lifetime dependencies described in terms of the formal AST-level parameters
to the correct parameter(s) in the lowered SIL function type. There can be 0, 1,
or many SIL parameters per formal parameter because of tuple exploding. Also,
record which dependencies are on addressable parameters (meaning that the dependency
includes not only the value of the parameter, but its specific memory location).
2025-02-14 09:47:53 -08:00
Allan Shortlidge
06030d66aa
AST: Introduce AvailabilityDomainOrIdentifier.
...
It provides a common way to represent either a parsed domain identifier or the
resolved domain.
NFC.
2025-02-13 21:18:05 -08:00
Allan Shortlidge
670084a9ac
AST: Retire PlatformVersionConstraintAvailabilitySpec.
2025-02-12 22:46:58 -08:00
Allan Shortlidge
0722efe97e
AST: Retire PlatformAgnosticVersionConstraintAvailabilitySpec.
2025-02-12 20:41:00 -08:00
Allan Shortlidge
6844cfe714
AST: Retire OtherPlatformAvailabilitySpec.
2025-02-12 19:39:30 -08:00
Guillaume Lessard
c7af9a701b
Merge pull request #79294 from Azoy/bye-bye-slab
...
[stdlib] Rename Slab to InlineArray
2025-02-12 12:03:25 -08:00
Allan Shortlidge
09f8622b1b
AST: Simplify AvailabilitySpec subclasses further.
...
Remove methods that are specific to AvailabilitySpec subclasses and replace
them with methods on the superclass if necessary.
NFC.
2025-02-11 22:45:43 -08:00
Allan Shortlidge
3142803d2f
AST: Remove runtime version from AvailabilitySpec.
...
Instead of canonicalizing platform versions during parsing and storing two
versions, just canonicalize the parsed version on-demand when its requested.
2025-02-11 20:10:07 -08:00
Allan Shortlidge
6daea78ccf
AST: Remove AvailabilitySpec.h include from Stmt.h.
...
Include it where it's actually used instead to improve compile times.
2025-02-11 20:03:01 -08:00
Alejandro Alonso
e4fb1f6761
Rename Slab to InlineArray
2025-02-11 10:26:44 -08:00
Rintaro Ishizaki
04b2174c52
Merge pull request #79232 from rintaro/astgen-closure-anonparam
...
[ASTGen] Generate anonymous closure parameters
2025-02-10 11:44:12 -08:00
Rintaro Ishizaki
1c1570b5f6
Merge pull request #79203 from rintaro/astgen-miscavailableattr
...
[ASTGen] Generate miscellaneous availability related nodes
2025-02-07 20:14:17 -08:00
Rintaro Ishizaki
cb049d8ed1
[ASTGen] Generate anonymous closure parameters
...
E.g. '$0'
2025-02-07 19:39:57 -08:00
Rintaro Ishizaki
333a1eb6d3
Merge pull request #79192 from rintaro/ifconfig-allactive-postfixexpr
...
[Parse] Adjust assertions for ParsingFlags::PoundIfAllActive mode
2025-02-07 16:28:05 -08:00
Rintaro Ishizaki
c56dd2efca
[ASTGen] Generate miscellaneous availability related nodes
...
* `@_specialize` with `availability:` arguments
* `@backDeployed` attributes
* `@_originallyDefinedIn` attributes
* `#available()` and `#unavailable()` statement conditions
2025-02-07 10:01:07 -08:00
Michael Gottesman
d33371a51a
Merge pull request #79178 from xedin/execution-attr-in-type-context
...
[AST/Parse] Initial implementation of `@execution(concurrent | caller)` in type context
2025-02-06 18:44:00 -08:00
Rintaro Ishizaki
635494df39
[Parse] Adjust assertions for ParsingFlags::PoundIfAllActive mode
...
In this mode, multiple #if clauses are active. For now, just use the
first clause as the result.
2025-02-06 12:07:04 -08:00
Rintaro Ishizaki
00985697c6
[Parse] Return 'const' pointer from AvailabilityMacroArgumentsRequest
...
Because it shouldn't be modified.
2025-02-05 11:36:08 -08:00
Pavel Yaskevich
84fb4967cb
[Parse] Add parsing for @execution(concurrent | caller) attribute in type context
2025-02-05 00:20:58 -08:00
Rintaro Ishizaki
df2ada37df
[ASTGen] Generate AvailableAttr
...
* Move `AvailabilitySpec` handling logic to AST, so they can be shared
between libParse and ASTGen
* Requestify '-define-availability' arguments parsing and parse them
with 'SwiftParser' according to the 'ParserASTGen' feature flag
* Implement 'AvailableAttr' generation in ASTGen
2025-02-04 23:40:01 -08:00
Allan Shortlidge
4d94d55fc8
Merge pull request #79098 from tshortli/consolidate-unexpected-available-versions-diagnostic
...
Parse/Sema: Consolidate diagnostics for unexpected versions
2025-02-04 10:05:58 -08:00
Rintaro Ishizaki
694e815f07
[Parser] Include all AST nodes from every #if region in ParserUnit
...
'ParserUnit' is used for analyzing syntax structures _mainly_ in
SourceKit.
Since we removed IfConfigDecl from AST, ParserUnit didn't
inclue any AST in #if ... #endif regions even for active region because
it used to consider all inactive. Instead, consider every region
"active" and include all the AST nodes.
rdar://117387631
2025-02-03 16:22:11 -08:00
Allan Shortlidge
427c8affef
Parse/Sema: Consolidate diagnostics for unexpected versions.
...
Since resolving the domain of an `@available` attribute is done during type
checking now, diagnostics about unexpected versions for a domain need to be
emitted at that point instead of during parsing. It doesn't make sense to
maintain the special version of this diagnostic that is emitted during parsing
for the universal availability domain only.
2025-02-02 09:57:43 -08:00
Allan Shortlidge
4d2a1ba479
Parse: Accept @available(DomainName).
...
For now `-enable-experimental-feature CustomAvailability` is required to accept
this spelling, though.
2025-01-28 13:47:42 -08:00
Allan Shortlidge
1284001e45
Sema: Canonicalize platform versions in SemanticAvailableAttrRequest.
...
This should really be done on-demand during version remapping, but for now the
goal of this change is to be as NFC as possible.
2025-01-26 13:50:56 -08:00
Allan Shortlidge
bd79424039
Sema: Move domain-specific @available attr diagnostics to type checking.
...
Since the domain is now resolved by SemanticAvailableAttrRequest, diagnosing
attributes with invalid combinations of fields for a specific domains needs to
be delayed.
2025-01-26 13:50:56 -08:00
Allan Shortlidge
a5d60ce35e
AST/Sema: Resolve AvailabilityDomain in SemanticAvailableAttrRequest.
...
Look up the AvailabilityDomain given its name during type checking, instead of
parsing.
2025-01-26 13:50:56 -08:00
Allan Shortlidge
7b8cbd7109
AST: Store unresolved domain strings in AvailableAttr.
...
This is the first step towards resolving the AvailabilityDomain associated with
an AvailableAttr during type checking instead of parsing.
2025-01-26 13:50:56 -08:00
Pavel Yaskevich
82e111a276
Merge pull request #78704 from xedin/rdar-142920095
...
Implement experimental`@execution(concurrent | caller)` attribute
2025-01-21 09:04:39 -08:00
Allan Shortlidge
691f6fc646
AST: Model Embedded Swift availability with a domain.
...
Remove the bit on AvailableAttr that previously modeled this.
Resolves rdar://138802876.
2025-01-19 08:52:53 -08:00
Pavel Yaskevich
0445e5af5f
[Parse] Implement parsing of @execution(...) decl attribute
2025-01-17 15:40:01 -08:00
Alejandro Alonso
09d122af7c
Merge pull request #76438 from Azoy/vector
...
[stdlib] Slab
2025-01-12 10:36:25 -08:00
Allan Shortlidge
393ad9872a
Merge pull request #78541 from tshortli/available-attr-remodel
...
AST: Refactor `AvailableAttr` representation to use `AvailabilityDomain`
2025-01-11 02:39:27 -08:00
Allan Shortlidge
cfb4b8f99b
Parse: Adopt new AvailableAttr constructor.
2025-01-10 18:43:12 -08:00