Hamish Knight
105ab3149a
[Parse] Re-allow prefix operators containing /
2022-05-12 11:49:09 +01:00
Anton Korobeynikov
a1e138b2af
[AutoDiff] Implement cross-file lookup of derivatives ( #58644 )
...
Look-up for functions with @derivative attributes defined in non-primary source files
Fixes #55170
2022-05-11 08:18:51 -07:00
Alex Hoppen
9dbd5829de
[CodeCompletion] Support type checking attributes even if they are not part of the AST
...
The code completion might occur inside an attriubte that isn’t part of the AST because it’s missing a `VarDecl` that it could be attached to. In these cases, record the `CustomAttr` and type check it standalone, pretending it was part of a `DeclContext`.
This also fixes a few issues where code completion previously wouldn’t find the attribute constructor call and thus wasn’t providing code completion inside the property wrapper.
rdar://92842803
2022-05-07 08:58:52 +02:00
Alex Hoppen
17fc634bf6
[Syntax] Classify contextual keywords used as decl attribute as contextual keyword
...
Previously, we classified e.g. final as an identifier, but it should be qualified as a contextual keyword.
rdar://92463926 [apple/swift-syntax#387 ]
2022-05-02 17:36:55 +02:00
Josh Soref
4721852fcb
Spelling parse ( #42469 )
...
* spelling: appear
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: availability
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: available
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: coerce
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: collection
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: condition
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: conditional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: delimiter
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: derived
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: diagnostics
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: disambiguation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dropped
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: escaped
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: existence
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: expression
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: expressions
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: extended
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: furthermore
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: identifier
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: indentation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: inspect
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: miscellaneous
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: multiline
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: offset
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: passthrough
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: precede
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: prefix
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: receiver
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: reference
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: registered
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: representing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: returned
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: sequence
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: should
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: successfully
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: that
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: trivia
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: unsupported
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: whitespace
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-21 09:31:40 -07:00
Luciano Almeida
90c5dfa9ed
[Parse] Track whether an let _: pattern is an async let pattern
2022-04-17 14:06:39 -03:00
Hamish Knight
5a8dff0a76
[Parse] Emit error on prefix operator containing /
...
When forward slash regex is enabled, start emitting
an error on prefix operators containing the
`/` character.
2022-04-12 16:03:48 +01:00
Slava Pestov
1bf248e374
Enable parameterized protocols by default, and add new staging flag for parameterized existentials
2022-04-06 17:30:10 -04:00
Alex Hoppen
9456fa12ed
Merge pull request #41922 from ahoppen/pr/migrage-accessorbeginning-solver-based
...
[CodeCompletion] Migrate AccessorBeginning to solver-based
2022-04-05 17:50:48 +02:00
Slava Pestov
8c47cd75fd
Sema: The primary associated type list references existing associated types instead of declaring new ones
2022-04-03 22:03:49 -04:00
Alex Hoppen
8cd5bbd5e6
[CodeCompletion] Migrate AccessorBeginning to solver-based
2022-04-03 16:46:23 +02:00
Evan Wilde
aa51bdf17a
Add noasync availability kind to available attr
...
This patch adds the `noasync` availability kind to `@available`. The
spelling is `@available(*, noasync)`.
2022-03-22 15:12:51 -07:00
Allan Shortlidge
0c5cc38615
Parse: Add fix-its for 'before:' label parse errors in the @_backDeploy attribute.
2022-03-18 12:28:19 -07:00
Allan Shortlidge
2a646dc438
Parse: Require a "before: " label in the first item of the list in the @_backDeploy attribute in order to match the pitched syntax for the attribute. Refactor existing comma separated list parsing code to take advantage of part of it in the attribute parsing.
2022-03-18 11:31:34 -07:00
Robert Widmann
aa82a857f0
Merge pull request #41848 from CodaFi/parse-tial-credit
2022-03-17 15:35:11 -07:00
Robert Widmann
cc0bc22dcb
Correct The Parsing of Primary Associated Type Clauses in Protocols
...
The prior syntax tree did not take into account that the clause itself should own the angle brackets.
2022-03-16 17:28:45 -07:00
Robert Widmann
363954a416
Put Variadic Generics Behind a Flag
2022-03-16 14:22:03 -07:00
Konrad `ktoso` Malawski
13cc8b3157
[Distributed] Enable no-longer-experimental distributed by default
2022-03-11 22:14:49 +09:00
Allan Shortlidge
b29251219a
Parse: Add availability macro support to @_backDeploy attribute parsing. Consolidate parsing code shared between @_originallyDefinedIn and @_backDeploy.
2022-03-08 14:13:10 -08:00
Xi Ge
3ca3e05377
Share string literal for spi_available attribute name
2022-03-05 19:23:00 -08:00
Xi Ge
ce07ce2dbc
frontend: add basic support for @_spi_available
2022-03-04 21:26:56 -08:00
Slava Pestov
a013cd2076
AST: Replace PrimaryAssociatedTypeAttr with AssociatedTypeDecl::isPrimary() flag
2022-03-03 10:15:02 -05:00
Slava Pestov
7dfc2a20fb
Parse: New syntax for primary associated types
2022-03-03 00:08:00 -05:00
Allan Shortlidge
24613134de
SILGen: Add a SILGen test for the @_backDeploy attribute and fix parsing for the attribute so that -verify-syntax-tree passes. The SILGen test doesn't verify anything special yet since we're not emitting thunks yet at call sites.
2022-02-11 14:47:48 -08:00
Allan Shortlidge
ebfb94e710
Parse: Refactor platform version tuple list parsing for @_backDeploy into a separate function and improve diagnostics.
2022-02-08 10:36:41 -08:00
Allan Shortlidge
b860e762b2
AST: Introduce the @_backDeploy function attribute:
...
- Parse the attribute and diagnose parsing issues
- Serialize the attribute
2022-02-08 10:11:04 -08:00
Doug Gregor
7149702d12
Rename @_predatesConcurrency to @preconcurrency.
...
Introduce the `@preconcurrency` attribute name for `@_predatesConcurrency`,
which has been the favored name in the pitch thread so far. Retain the
old name for now to help smooth migration.
2022-01-26 08:39:01 -08:00
Erik Eckstein
beb2bd2a96
AST: support @_effects attribute with custom strings.
...
In addition to the predefined cases, like "readnone", "readonly", etc. support providing a custom string, which will be parsed later.
Also, allow multiple effects attributes to be put onto a function.
2022-01-25 11:29:23 +01:00
Erik Eckstein
5fd941eb67
Add the @exclusivity attribute.
...
The `@exclusivity(unchecked)` attribute can be used on variables to selectively disable exclusivity checking.
For completeness, also the `@exclusivity(checked)` variant is supported: it turns on exclusivity checking for specific variables if exclusivity enforcement is disabled by the command line option.
This new attribute is a missing implementation part of SE-0176 (https://github.com/apple/swift-evolution/blob/main/proposals/0176-enforce-exclusive-access-to-memory.md ).
rdar://31121356
2022-01-25 08:06:45 +01:00
Angela Laar
54a738b0bb
Merge branch 'main' into smooth_operator
2022-01-20 12:17:09 -08:00
Angela Laar
3eb2b1c67b
Fix error definition
2022-01-13 13:53:50 -08:00
Angela Laar
68ec09b7e2
[Parser] Check for postfix operator in import paths
...
Add diagnostic and remove operator from path
Fixes rdar://87159294
2022-01-12 18:18:16 -08:00
Luciano Almeida
91966deeb7
Merge pull request #40705 from LucianoPAlmeida/SR-15657-diag-enum-cp
...
[Sema] Avoid misleading diagnostics for incomplete enum computed properties
2022-01-11 09:25:19 -03:00
Doug Gregor
43324e8130
Merge pull request #40710 from DougGregor/structural-opaque-result-types
2022-01-04 20:51:14 -08:00
LucianoAlmeida
29879ea822
[Parser] Improving wording for invalid empty computed properties and subscripts
2022-01-04 23:46:09 -03:00
Doug Gregor
b2aa85183d
Use TypeRepr::hasOpaque() consistently.
...
Replace shallow checks for `OpaqueReturnTypeRepr` with calls to
`hasOpaque`, which ensures that we consider opaque result types in
structural positions.
2021-12-27 20:11:40 -08:00
Evan Wilde
319672d084
Merge pull request #40668 from etcwilde/ewilde/an-actor-for-your-thoughts
...
Fix miss-parse diagnostic to say "actor"
2021-12-22 08:16:59 -08:00
Rintaro Ishizaki
7c92a8e555
[SourceKit] Add a request to generate object files in SourceKit
...
Add 'request.compile'
2021-12-21 14:35:38 -08:00
Evan Wilde
c61ae352b1
Fix miss-parse diagnostic to say "actor"
...
Diagnostic for miss-parsing actors for missing '{' and '}' would say
"class" instead of "actor". This patch fixes it.
2021-12-21 14:00:14 -08:00
Evan Wilde
b15adeab4f
Merge pull request #40601 from etcwilde/ewilde/no-main-in-sil
...
Don't emit `@main` into SIL
2021-12-17 07:21:22 -08:00
Evan Wilde
86d4f83de9
Make @main non-simple
...
We want to control when the attribute gets emitted so we need to make
the attribute non-simple.
2021-12-16 16:31:15 -08:00
Robert Widmann
6f8f19e17f
Use Recovery-Provided Variable When Parsing 'async'
2021-12-13 12:26:03 -08:00
Evan Wilde
aa9085a3d8
Handle attr parse failures
...
Adding nice error messages for when things go wrong.
2021-12-08 09:39:24 -08:00
Evan Wilde
3a13721eae
Add optional message to unavailablefromasync
...
Adding the ability to add an optional message to the unavailable from
async attribute. This can be used to indicate other possible API to use,
or help explain why it's unavailable.
2021-12-08 09:39:24 -08:00
Saleem Abdulrasool
349af3707d
Merge pull request #40305 from compnerd/semitruck
...
gardening: make c++98-compat-extra-semi an error
2021-11-30 08:18:36 -08:00
Saleem Abdulrasool
910fbee14e
gardening: make c++98-compat-extra-semi an error
...
This cleans up 90 instances of this warning and reduces the build spew
when building on Linux. This helps identify actual issues when
building which can get lost in the stream of warning messages. It also
helps restore the ability to build the compiler with gcc.
2021-11-27 11:40:17 -08:00
Xi Ge
06e63896cd
ModuleInterface: consume _const keyword at var and parameter decls and keep them in textual/binary modules
...
This is to ensure users can start adding these annotations. Type checker supports will come in later commits.
Related to pitch: https://forums.swift.org/t/pitch-compile-time-constant-values/53606
rdar://85268028
2021-11-19 22:13:23 -08:00
Doug Gregor
5cc00c289d
Remove the @_unsafeSendable/@_unsafeMainActor attributes.
...
These have been subsumed by @_predatesConcurrency. Leave in minimal
parser support that warns about the removal, so we don't fully break
existing source code.
2021-11-18 11:21:03 -08:00
Ellie Shin
89fb5ff3fc
Merge branch 'main' into es-param
2021-11-08 17:55:25 -08:00
Ellie Shin
06683cda43
Add module alias lookup option enum
...
Pass the enum param to ASTContext::getRealModuleName
2021-11-08 17:51:27 -08:00