Pavel Yaskevich
07ff063ae3
[AST/ASTGen/Sema/Serialization] Remove @execution attribute
...
Complete the transition from `@execution` to `@concurrent` and `nonisolated(nonsending)`
2025-04-11 15:59:25 -07:00
Pavel Yaskevich
54b62ae983
[AST/Parse] Implement nonisolated(nonsending) type modifier
2025-04-11 15:59:25 -07:00
Pavel Yaskevich
b1ffa063b6
[AST/Sema] Intoduce nonisolated(nonsending) as a replacement for @execution(caller)
2025-04-11 15:57:11 -07:00
Pavel Yaskevich
4b8c8e7d72
[AST/Sema] Replace @execution(concurrent) with @concurrent
2025-04-11 12:08:29 -07:00
Pavel Yaskevich
e3cbdaa863
[Parse] Remove warning about @concurrent being alternative to @Sendable
2025-04-11 12:08:29 -07:00
Alexis Laferrière
02b5998536
Parser: Intro @cdecl attribute and gate it behind feature flag CDecl
2025-04-11 11:34:39 -07:00
Michael Gottesman
77a86a525b
Merge pull request #79891 from gottesmm/pr-9df6772bb44656cbd85cad72ee5c3637caab8956
...
Make Feature a struct enum so we can put methods on it.
2025-04-07 10:32:23 -07:00
Meghana Gupta
2d9217bb4f
Merge pull request #80541 from meg-gupta/inoutreland
...
Reland #80452
2025-04-07 10:20:10 -07:00
Allan Shortlidge
c5e5311cc8
Merge pull request #80560 from tshortli/member-import-visibility-diags-implicit
...
Parse/Sema: Add source locations to implicit code for `MemberImportVisibility` diagnostics
2025-04-05 18:07:55 -07:00
Allan Shortlidge
703126a3ce
Parse: Improve MemberImportVisibility diags for appendLiteral(_:) calls.
...
Ensure compiler generated calls to `appendLiteral(_:)` have source locations for
diagnostics.
Partially resolves rdar://144535697.
2025-04-05 09:48:20 -07:00
Anthony Latsis
3c3dd54f39
AST: Cut down on DescriptiveDeclKind usage in DiagnosticsParse.def
2025-04-05 12:31:20 +01:00
Anthony Latsis
08d46d2542
Merge pull request #80473 from AnthonyLatsis/diag_type_attr
...
DiagnosticEngine: Support `TypeAttribute` diagnostic arguments
2025-04-05 12:25:45 +01:00
Michael Gottesman
3ff9463957
Make Feature a struct enum so we can put methods on it.
...
Just noticed this as I was looking at making other changes.
2025-04-05 10:08:29 +01:00
Meghana Gupta
ef1e94577f
Revert "Merge pull request #80540 from swiftlang/revert-80452-lifetimeinout"
...
This reverts commit 6eaa07a880 , reversing
changes made to e75ee3f4cf .
2025-04-04 09:50:13 -07:00
Artem Chikin
39e1791b67
Revert "Add support for inout lifetime dependence"
2025-04-04 09:00:09 -07:00
Meghana Gupta
50ea777936
Merge pull request #80452 from meg-gupta/lifetimeinout
...
Add support for inout lifetime dependence
2025-04-04 02:04:53 -07:00
Meghana Gupta
d87a2b2ada
Rename ParsedLifetimeDependenceKind::Scope -> ParsedLifetimeDependenceKind::Borrow
2025-04-03 17:22:13 -07:00
Meghana Gupta
cfacd25df4
Add support for @lifetime(&arg)
2025-04-03 17:22:06 -07:00
Anthony Latsis
99f63ed933
DiagnosticEngine: Support TypeAttribute diagnostic arguments
2025-04-03 01:52:38 +01:00
Hamish Knight
2e1c37f1ab
[ASTScope] Allow try in unfolded sequence to cover following elements
...
Rather than fixing-up in the parser, adjust the ASTScope logic such
that a `try` element in a SequenceExpr is considered as covering all
elements to the right of it. Cases where this isn't true are invalid,
and will be diagnosed during sequence folding. e.g:
```
0 * try foo() + bar()
_ = try foo() ~~~ bar() // Assuming `~~~` has lower precedence than `=`
```
This ensures we correctly handle `try` in assignment sequences, and
allows ASTGen to get the behavior for free.
rdar://132872235
2025-04-02 12:46:21 +01:00
Artem Chikin
66334f8f1b
Merge pull request #79290 from artemcm/ConstProtoSIL
...
[Compile Time Values] Implement a mandatory SIL pass to verify '@const' values
2025-04-01 00:12:27 -07:00
Artem Chikin
281f84da0f
[Compile Time Values] Rewrite the 'Diagnose Unknown Compile Time Values' diagnostic pass in Swift
2025-03-28 10:30:07 -07:00
Anthony Latsis
fffa8c2f51
Diag: Abstract away some calls to DeclAttribute::getAttrName
2025-03-28 02:01:27 +00:00
Hamish Knight
42e554ef7d
[Parse] Set AttrRange for @nonisolated
...
Make sure we set the `AttrRange` in cases where `@` is present, but
`unsafe` isn't present.
rdar://147965036
2025-03-27 18:48:55 +00:00
Becca Royal-Gordon
d2276362a4
Support @abi on subscripts
...
And make sure we reject it on `deinit`s and accessors.
2025-03-26 10:47:57 -07:00
Becca Royal-Gordon
b4d545f873
[NFC] Fix AllowFeatureSuppressionAttr atLoc
2025-03-26 10:47:12 -07:00
Nate Chandler
317a379693
[DefaultOverrides] SIL printing/parsing.
2025-03-25 07:22:14 -07:00
Hamish Knight
f8ab391737
Introduce type sugar for InlineArray ( #80087 )
...
* [CS] Decline to handle InlineArray in shrink
Previously we would try the contextual type `(<int>, <element>)`,
which is wrong. Given we want to eliminate shrink, let's just bail.
* [Sema] Sink `ValueMatchVisitor` into `applyUnboundGenericArguments`
Make sure it's called for sugar code paths too. Also let's just always
run it since it should be a pretty cheap check.
* [Sema] Diagnose passing integer to non-integer type parameter
This was previously missed, though would have been diagnosed later
as a requirement failure.
* [Parse] Split up `canParseType`
While here, address the FIXME in `canParseTypeSimpleOrComposition`
and only check to see if we can parse a type-simple, including
`each`, `some`, and `any` for better recovery.
* Introduce type sugar for InlineArray
Parse e.g `[3 x Int]` as type sugar for InlineArray. Gated behind
an experimental feature flag for now.
2025-03-23 15:31:37 -07:00
Rintaro Ishizaki
92a6fece48
[ASTGen] ObjC improvements
...
* Generate `#selector(...)` expression
* Generate `#keyPath(...)` expression
* Implicit `@objc` attribute for `@_objcImplementation` attribute
2025-03-20 05:04:58 -07:00
Hamish Knight
b1adb78579
Merge pull request #80143 from hamishknight/add-loc
2025-03-20 10:02:35 +00:00
Amritpan Kaur
3c30d68d2e
Merge pull request #78823 from amritpan/method-keypaths
...
[Sema/SILGen/IRGen] Implement method & initializer keypaths.
2025-03-19 18:59:17 -07:00
Hamish Knight
6942c9bfc7
[IDE] Add pretty stack trace entry for IDE inspection location
...
Make it easier to reproduce e.g completion crashes by logging the
location the inspection was done at.
2025-03-19 22:11:17 +00:00
Amritpan Kaur
0c614e09d1
[Expr/AST] Add unresolvedApply component to handle method arguments.
2025-03-19 08:56:03 -07:00
Amritpan Kaur
811d54901b
[NFC] Rename unresolvedProperty to unresolvedMember
...
to generalize for both properties and method members.
2025-03-19 08:53:18 -07:00
Joe Groff
24a91bba5d
Merge pull request #80038 from jckarter/addressable-for-deps-lowering
...
SIL: Lower fields that are conditionally addressable because of a dependency.
2025-03-17 21:28:33 -07:00
Alex Hoppen
829e03c104
Merge pull request #79974 from a7medev/feature/complete-single-option-decl-attrs
2025-03-17 15:40:00 -07:00
Joe Groff
c949e6295f
SIL: Lower fields that are conditionally addressable because of a dependency.
...
Parameters of generic type need to be treated as potentially
addressable-for-dependencies, but we don't want callers using the generic
function with concrete types that are known not to be addressable-for-
dependencies to be overconstrained. In SILFunctionType lowering, lower
these dependencies distinctly as conditionally addressable, meaning that
the dependency on an argument depends on whether the concrete type of
that argument is (potentially) addressable-for-dependencies or not.
2025-03-15 16:07:03 -07:00
Ahmed Mahmoud
78990ffe3f
[IDE] Pass ParameterizedDeclAttributeKind to parseSingleAttrOption rather than completion callback
2025-03-14 13:19:53 +02:00
Ahmed Mahmoud
a340dca4b5
[IDE] Add parameter label comment for HasLabel
2025-03-14 04:48:22 +02:00
Ahmed Mahmoud
704e9fcc35
[IDE] Fix access control set completion as a declaration item
2025-03-14 04:45:07 +02:00
Ahmed Mahmoud
3bb2da0d0d
[IDE] Remove unnecessary code complete checks
2025-03-14 04:44:26 +02:00
Ahmed Mahmoud
ab6ad401b3
[IDE] Consume identifier and ')' after parenthesized modifier
...
This fixes an issue where valid parenthesized modifiers like nonisolated(unsafe) get misinterpreted as function calls.
2025-03-14 02:34:04 +02:00
Ahmed Mahmoud
9767cc1158
[IDE] Remove duplicate code & add parameter label
2025-03-13 21:45:40 +02:00
Doug Gregor
0cfa048c0a
[Isolated conformances] Start parsing 'nonisolated' on conformances
...
It doesn't mean anything yet, but parse it and make sure it reproduces
in the module interface.
2025-03-12 23:18:31 -07:00
Ahmed Mahmoud
c871e4962f
[IDE] Recover from incomplete unowned and nonisolated in isStartOfSwiftDecl
2025-03-13 02:19:18 +02:00
Ahmed Mahmoud
951988c100
[IDE] Return Code Completion Status in Access Control Completion
2025-03-13 02:19:18 +02:00
Ahmed Mahmoud
78b4e851a7
[IDE] Complete unowned, nonisolated, access-control parameter
2025-03-13 02:19:18 +02:00
Ahmed Mahmoud
673d6a1d9f
[IDE] Rename CustomSyntaxAttributeKind to ParameterizedDeclAttributeKind
2025-03-13 02:19:17 +02: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