Rintaro Ishizaki
533ae2b994
Merge pull request #80928 from kntkymt/kntk-trailing-comma-string-interpolation
...
[Parser] Fix String interpolation accepts invalid argument label syntax without expression
2025-04-22 01:38:50 +09:00
kntkymt
af6b4ad7a1
[Parser] fix parse trailing commna in string interpolation at the end of parseListItem flow instead
2025-04-19 14:36:11 +09:00
Becca Royal-Gordon
25bf069ce3
[Legacy parser] No freestanding macros in @abi
...
SwiftSyntaxParser is already doing this, and we already diagnosed it in Sema anyway, so we’re just moving that diagnostic earlier so the ASTGen testing mode is happy. Also adding compiler tests for it.
Macro-related tests are not included in this commit; they require matching swift-syntax changes which are being negotiated.
2025-04-18 14:50:01 -07:00
Alexis Laferrière
a6beaf8deb
Merge branch 'main' into cdecl-global-function-checking
2025-04-16 11:19:37 -07:00
Doug Gregor
3380331e7e
[SE-0470] Enable isolated conformances by default
...
The IsolatedConformances feature moves to a normal, supported feature.
Remove all of the experimental-feature flags on test cases and such.
The InferIsolatedConformances feature moves to an upcoming feature for
Swift 7. This should become an adoptable feature, adding "nonisolated"
where needed.
2025-04-13 15:41:53 -07:00
Pavel Yaskevich
f00d8082db
[Parse] Tighten constraints in canParseNonisolatedAsTypeModifier
...
Accept it only if it's spelled `nonisolated(nonsending)` and nothing
else to minimize any possible source compatibility impact.
2025-04-11 15:59:25 -07:00
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