Commit Graph

6321 Commits

Author SHA1 Message Date
Ellie Shin
b294fe94f2 Merge pull request #39929 from apple/es-src
Module Aliasing: do not allow module real names to appear in source files (only allow module aliases).
Resolves rdar://83592084
2021-11-01 17:50:49 -07:00
Karoy Lorentey
8ea88b7582 [Parse] Register a syntax context while parsing availability macros 2021-10-31 17:14:35 -07:00
Ellie Shin
66d64b610d Updates params to ASTContext::getRealModuleName 2021-10-29 01:52:33 -07:00
elsh
daf07c0306 Update getRealModuleName
Assert map is empty in setModuleAliases
Update doc comments
2021-10-28 23:43:16 -07:00
Ellie Shin
470fbc7223 Update lib/Parse/ParseDecl.cpp
Co-authored-by: Becca Royal-Gordon <beccadax@apple.com>
2021-10-28 23:03:33 -07:00
elsh
257ae1bbf9 Update comments 2021-10-28 03:02:24 -07:00
elsh
10a96dff57 Module Aliasing: do not allow module real names to appear in source files / only allow aliases
Resolves rdar://83592084
2021-10-28 02:36:59 -07:00
Becca Royal-Gordon
354f3470a0 Add @_nonSendable decl attribute
This attribute creates an unavailable extension with a `Sendable` conformance so that the type is explicity marked as not being `Sendable`.

We also fully suppress diagnostics about unavailable Sendable conformances in Swift 5 mode code. (This is not fully developed yet—it should return to being a warning in concurrent contexts.)

The behavior when a @_nonSendable and a Sendable conformance are both on the same type is also not right yet.
2021-10-14 12:14:46 -07:00
Becca Royal-Gordon
19f15fffdf [NFC] Refactor attribute option parsing 2021-10-13 14:13:46 -07:00
Arnold Schwaighofer
c2b2f1331f SIL representation 2021-10-06 04:54:49 -07:00
Arnold Schwaighofer
71f46a4f25 Add support to syntax tree 2021-10-06 04:54:41 -07:00
Arnold Schwaighofer
8840ea6b5b Add support for parsing an availability argument in @_specialize 2021-10-05 14:46:17 -07:00
Meghana Gupta
f458d9b490 Fix unnecessary one-time recompile of stdlib with -enable-ossa-flag (#39516)
* Fix unnecessary one-time recompile of stdlib with -enable-ossa-flag

This includes a bit in the module format to represent if the module was
compiled with -enable-ossa-modules flag. When compiling a client module
with -enable-ossa-modules flag, all dependent modules are checked for this bit,
if not on, recompilation is triggered with -enable-ossa-modules.

* Updated tests
2021-10-04 18:46:40 -07:00
Hamish Knight
e3e9ef90da [Parse] Properly reject labeled yield
Instead of asserting, emit a diagnostic with a
fix-it to remove the label.

SR-15066
rdar://82132821
2021-09-30 11:00:29 +01:00
Hamish Knight
21e686e478 [Parse] Remove dead condition
We used to avoid parsing labels for yield stmts
by passing in `SyntaxKind::YieldStmt` and relying
on this condition. However we no longer do so, we
pass `SyntaxKind::ExprList` instead.
2021-09-30 11:00:28 +01:00
Hamish Knight
ce334afea8 Merge pull request #39444 from hamishknight/import-regulations
[Parse] Fix empty platform condition crash
2021-09-29 18:00:58 +01:00
Robert Widmann
12b7d90c93 Merge pull request #39443 from Huddie/remove-dyanmic-type-diagnostic
Remove dynamic type diagnostic suggesting using type(of: instead
2021-09-24 13:22:02 -07:00
Hamish Knight
628dcd6eb1 [Parse] Improve diagnostic for no platform condition argument
Drop the "only one" in the message in this case,
as that should only apply for too many args.
2021-09-24 16:38:30 +01:00
Hamish Knight
e3257fd0fa [Parse] Fix empty platform condition crash
Handle the empty argument case in `getSingleSubExp`,
otherwise we'd crash with an index out of bounds.

rdar://83017601
2021-09-24 16:38:29 +01:00
Hamish Knight
dc60996f89 Merge pull request #38836 from hamishknight/toil-and-tuple 2021-09-04 19:30:04 +01:00
Rintaro Ishizaki
42bc8fbbb3 Merge pull request #38260 from JiarenWang/wjr
[Parse] give more useful errors for forget 'do' keyword.
2021-09-02 15:14:47 -07:00
Hamish Knight
3e28bbbd2c Update for review feedback
- Remove OriginalArguments in favor of storing the
pre-rewritten argument list, which simplifies things
nicely
- Adopt llvm::indexed_accessor_iterator
2021-09-01 18:40:29 +01:00
Hamish Knight
a5775482ee [Parser] Adopt ArgumentList
Split up the expr list parsing members such that
there are separate entry points for tuple and
argument list parsing, and start using the argument
list parsing member for call and subscripts.
2021-09-01 18:40:24 +01:00
jiaren wang
d8780d33e9 [Parse] give more useful errors for forget 'do' keyword. 2021-09-01 21:18:56 +08:00
Minhyuk Kim
3e8b076fef PR Review 2021-08-31 23:48:13 +09:00
Ehud Adler
a7a826a0e2 Removes dynamicType diagnostic. Fixes SR-14667 2021-08-30 10:59:16 -04:00
Minhyuk Kim
51176d4c5d Fix diagnostics to produce valid rename fixit for SubscriptExpr 2021-08-30 00:27:17 +09:00
Rintaro Ishizaki
49547a5378 [NFC][Basic] Import llvm::isa_and_nonnull to 'swift' namespace
Just for convenicence.

* Replace `llvm::isa_and_nonnull` with imported `isa_and_nonnull`
* Repalce some `EXPR && isa<T>(EXPR)` with `isa_and_nonnull<T>(EXPR)`
2021-08-27 11:36:21 -07:00
Frederick Kellison-Linn
c305cb01a8 [Sema] Re-enable placeholder type parsing and folding 2021-08-19 14:53:21 -04:00
Hamish Knight
71fb1691af [Frontend] Add -warn-on-editor-placeholder
This hidden frontend option lets us be more lax
when type-checking in the presence of editor
placeholders by treating them as holes during
constraint solving.
2021-08-18 13:21:05 +01:00
Konrad `ktoso` Malawski
fbd66e2b87 [Distributed] Only parse distributed when experimentla mode enabled 2021-08-16 18:11:06 +09:00
Kavon Farvardin
89629fe06f Generalize BodyKind::MemberwiseInitializer
We'd like to support factor initializers
for distributed actor types that are
synthesized by SILGen.

We already do something similar for
memberwise initializers for structs.
Thus, this patch generalizes that
concept into a new BodyKind for
AbstractFunctionDecls called
BodyKind::SILSynthesize.

In addition, to help differentiate the
kinds of AFDs that are SILSynthesized
into different families for SILGen to
recognize, we also have a new enum
SILSynthesizeKind to indicate whether it
is a memberwise init, etc.
2021-08-12 14:05:31 +09:00
willtunnels
d2138d089e Rename --enable-experimental-opaque-return-types and gate structural … (#38780)
* Rename --enable-experimental-opaque-return-types and gate structural opaque types with a flag

* Separate out structural opaque type result builder tests
2021-08-09 17:27:59 -04:00
willtunnels
319b3e64aa Add support for opaque result types in structural positions (#38392)
* [TypeResolver][TypeChecker] Add support for structural opaque result types

* [TypeResolver][TypeChecker] Clean up changes that add structural opaque result types
2021-08-03 23:45:02 -04:00
Becca Royal-Gordon
627ecbdfff Rip designated types out of the AST
Designated types were removed from the constraint solver in #34315, but they are currently still represented in the AST and fully checked. This change removes them as completely as possible without breaking source compatibility (mainly with old swiftinterfaces) or changing the SwiftSyntax tree. Designated types are still parsed, but they are dropped immediately and a warning is diagnosed. During decl checking we also still check if the precedence group is really a designated type, but only so that we can diagnose a warning and fall back to DefaultPrecedence.

This change also fixes an apparent bug in the parser where we did not diagnose operator declarations that contained a `:` followed by a non-identifier token.
2021-08-03 16:13:59 -07:00
Hamish Knight
ebdae7ca00 Merge pull request #38504 from hamishknight/construction-site 2021-07-29 13:43:12 +01:00
Ben Barham
e7e9b57051 Replace @completionHandlerAsync with @available(*, renamed:)
Instead of a new attribute `@completionHandlerAsync`, allow the use of
the existing `renamed` parameter of `@available` to specify the
asynchronous alternative of a synchronous function.

No errors will be output from invalid names as `@completionHandlerAsync`
had, but if a function is correctly matched then it will be used to
output warnings when using the synchronous function in an asynchronous
context (as before).

Resolves rdar://80612731
2021-07-29 09:14:44 +10:00
Hamish Knight
72d4d9f1e9 [AST] Add some 'create' factory methods
This provides consistency with other AST nodes,
and will be useful for implementing ArgumentList
construction in the future.
2021-07-28 23:14:44 +01:00
Hamish Knight
c70f280e4a [AST] Add CallExpr::createImplicitEmpty
Add a convenience constructor for an implicit
nullary call. This will become more useful when
the argument parameter starts taking an
ArgumentList.
2021-07-28 23:14:43 +01:00
Alex Hoppen
77cb4b639c Merge pull request #38559 from ahoppen/pr/dont-add-members-twice
[CodeCompletion] Fix issue causing the completion status to not be set correctly for pattern completion
2021-07-28 18:22:42 +02:00
Alex Hoppen
fb8730637f Merge pull request #38561 from ahoppen/pr/generic-args-on-nested-type
[CodeCompletion] Fix crasher and missing completion for generic arguments to nested type
2021-07-26 20:58:52 +02:00
Alex Hoppen
fec7f6c3c0 [CodeCompletion] Fix issue causing the completion status to not be set correctly for pattern completion
We weren’t setting the code completion token status correctly when parsing patterns with code completion tokens.

Because of this, in the added test case, the `searchSubject` gets added as a member of `Foo` twice - once in the first pass and once in the second pass, causing an assertion failure.

Fixes rdar://80575116 [SR-14687]
2021-07-26 20:50:10 +02:00
Alex Hoppen
27bec7ae7d [CodeCompletion] Fix crasher and missing completion for generic arguments to nested type
Completing a generic parameter to a nested type `Outer.Nested<#^COMPLETE^#>` crashed when used to initialize a local variable and returned no results when initializing a global variable.

This is because the generic argument parsing logic for nested types inside `parseExprPostfixSuffix` didn’t match that of global types in `parseExprIdentifier`. Make sure they do the same thing semantically.

Fixes rdar://77909679 [SR-14627]
2021-07-22 18:37:32 +02:00
Robert Widmann
6828b30ed9 [NFC] Drop An Unused Name Parsing Entrypoint 2021-07-21 14:54:25 -07:00
Kavon Farvardin
5ffe8e0878 fix parsing of isolated as an argument label
With the introduction of `isolated` as
a type modifier for actor types, the
parsing of a parameter regressed such
that `isolated` was no longer accepted
as an ordinary argument label. This patch
fixes that and adds a little lookahead
utility to clean-up the code that
disambiguates the uses of `isolated`
as either a label or a type modifier.

Resolves rdar://80300022
2021-07-15 17:49:33 -07:00
Varun Gandhi
db35cab089 Merge pull request #33932 from rockbruno/negative-aval
[SE-0290] Add #unavailable (Negative platform checks)
2021-07-13 16:17:17 -07:00
Doug Gregor
06bbc70b3e Module printing and serialization support for @unchecked Sendable 2021-07-11 12:29:54 -07:00
Bruno Rocha
1fe3857735 [SE-0290] Add #unavailable 2021-07-02 13:35:11 +02:00
Victoria Mitchell
85fabb23ed include comments on SPI symbols when they're in symbol graphs 2021-06-30 16:13:08 -06:00
Alex Hoppen
39e92db1b1 Merge pull request #38049 from ahoppen/pr/keypath-completion
[CodeCompletion] Migrate key path completion to be solver based
2021-06-30 22:03:44 +02:00