Commit Graph

6321 Commits

Author SHA1 Message Date
Kk Shinkai
d2bbdb8743 Fix a misspelling 2021-01-03 17:28:27 +08:00
Doug Gregor
3c38ffe0ea [Concurrency] await try -> try await
The `try await` ordering is both easier to read and indicates the order
of operations better, because the suspension point occurs first and
then one can observe a thrown error.
2020-12-23 13:21:59 -08:00
Slava Pestov
e675bee26c AST: Split off DependencyCollector.h from EvaluatorDependencies.h
Also remove some unnecessary #includes from DependencyCollector.h,
which necessitated adding #includes in various other files.
2020-12-23 00:00:25 -05:00
Kavon Farvardin
463003194e add warning that 'await' will become contextual keyword 2020-12-22 15:46:24 -08:00
Rintaro Ishizaki
31595e3b2b [Parse] Adjust diagnostics message for duplicated effects specifiers 2020-12-14 14:58:30 -08:00
Rintaro Ishizaki
c72f9e5c92 [Parse] Adjust diagnostics for effects specifiers in closure signature 2020-12-14 12:43:50 -08:00
Rintaro Ishizaki
1c791d345d [Parse] Factor out 'isEffectsSpecifier()' 2020-12-14 12:43:50 -08:00
Rintaro Ishizaki
ed82d1828e [CodeCompletion] Complete effects specifiers in closure signature position 2020-12-14 12:43:50 -08:00
Rintaro Ishizaki
4284a51589 [Parse/CodeCompletion] Implement effects specifier completion
Rewrote and rename 'parseAsyncThrows' to 'parseEffectsSpecifiers'.
Implemented 'CodeCompletionCallbacks::completeEffectsSpecifier()'
2020-12-14 12:38:15 -08:00
Evan Wilde
85810277f2 [Concurrency] Fix fix-it for async after ->
The `async` was being incorrectly consumed in `parseType` and as a
result, was not getting propagated back up to `parseFunctionSignature`
to be emitted as an error. Unless the next token is an arrow or a
throws, we don't consume it.
2020-12-11 15:12:26 -08:00
Doug Gregor
18ef1869f3 [Concurrency] Diagnose "try await" with a Fix-It 2020-12-04 00:57:18 -08:00
Anthony Latsis
413352b77c Merge pull request #34620 from AnthonyLatsis/parse-misc
Parse: Only diagnose dollar-prefixed identifiers that are Swift declarations
2020-12-04 09:09:45 +03:00
Arnold Schwaighofer
8346bf7e90 Pre-specialization: This is an experimental feature
Only enable if explicitly required.
2020-11-20 09:13:16 -08:00
Xiaodi Wu
59f1f10b77 Merge pull request #34799 from kkshinkai/main
Fix misspellings
2020-11-20 08:25:54 -05:00
Anthony Latsis
47ce1529f0 Parse: Only diagnose dollar-prefixed identifiers that are Swift declarations 2020-11-19 20:30:53 +03:00
Nathan Hawes
1eb05b7760 Merge pull request #34733 from nathawes/migrate-unresolved-completion
[CodeCompletion][Sema][Parse] Migrate unresolved member completion to the solver-based completion implementation
2020-11-19 01:26:43 -08:00
Robert Widmann
883902411b Migrate loadFingerprint onto ModuleDecl and Friends 2020-11-18 12:20:14 -08:00
Robert Widmann
27d29262b0 [NFC] Traffic in Fingerprints 2020-11-18 12:20:14 -08:00
Kk Shinkai
a0f0747283 Fix misspellings 2020-11-18 11:47:16 +08:00
Slava Pestov
5808d9beb9 Parse: Remove parse-time name lookup 2020-11-16 22:39:44 -05:00
Slava Pestov
0a9a6405ab Parse: Create a trailing where clause even if it was incomplete
Also, store the end location of the where clause explicitly, so that
we can recover it even if there are no requirements.

This fixes one of the failing tests when parser lookup is disabled in
swift-ide-test by ensuring that the source range of the function
extends to the end of the 'where' clause, even though the 'where'
clause has a code completion token in it.
2020-11-16 16:52:50 -05:00
Slava Pestov
1a6f86be71 Parse: Use InInactiveClauseEnvironment instead of looking at the Scope
We have two ways of knowing if we're inside of an inactive #if clause.
Refactor the only two places that called getScopeInfo().isInactiveConfigBlock()
to check InInactiveClauseEnvironment instead.

This removes the last remaining usage of Scope that's not related to
parse-time name lookup.
2020-11-16 15:35:55 -05:00
Nathan Hawes
ca7fb37aba [CodeCompletion][Sema][Parse] Migrate unresolved member completion to the solver-based completion implementation
Following on from updating regular member completion, this hooks up unresolved
member completion (i.e. .<complete here>) to the typeCheckForCodeCompletion API
to generate completions from all solutions the constraint solver produces (even
those requiring fixes), rather than relying on a single solution being applied
to the AST (if any). This lets us produce unresolved member completions even
when the contextual type is ambiguous or involves errors.

Whenever typeCheckExpression is called on an expression containing a code
completion expression and a CompletionCallback has been set, each solution
formed is passed to the callback so the type of the completion expression can
be extracted and used to lookup up the members to return.
2020-11-13 15:37:14 -08:00
Alexis Laferrière
b72b0c30fa Merge pull request #34612 from xymus/dont-skip-nested-types
[Sema] Add flag to optimize building swiftmodule files preserving type info for LLDB
2020-11-12 19:16:21 -08:00
Alexis Laferrière
02c134372f [Sema] Add option to skip non-inlinable functions without types
This frontend flag can be used as an alternative to
-experimental-skip-non-inlinable-function-bodies that doesn’t skip
functions defining nested types. We want to keep these types as they are
used by LLDB. Other functions ares safe to skip parsing and
type-checking.

rdar://71130519
2020-11-12 14:28:09 -08:00
Robert Widmann
cdd54f1a51 Unconditionally Record Type Body Fingerprints
We used to disable these for extensions, which meant changes to
extensions would pessimistically cause every decl in the file to be
considered dirty.
2020-11-11 19:48:04 -08:00
pi1024e
1406932fd0 Streamline ParseType Logic 2020-11-07 16:47:42 -05:00
Pavel Yaskevich
51bd8d93d6 Merge pull request #34510 from maustinstar/sr-11711
[SR-11711]  [Parse] Single-expression implicit returns within #if declarations
2020-11-05 21:14:44 -08:00
Doug Gregor
7f738778b8 [Concurrency] Parse 'async let' declarations.
Perform very basic semantic analysis for their well-formedness.
2020-11-04 17:31:31 -08:00
maustinstar
d0f8c96f43 [SR-11711] Check active clause element is last expression. 2020-11-04 18:57:48 -05:00
Rintaro Ishizaki
5b8e514818 Merge pull request #34534 from mininny/fix-dollar-identifier
[Parse] Move standalone_dollar_identifier diagnosis to Parser.
2020-11-04 15:16:38 -08:00
Minhyuk Kim
028594b740 [Parse] Move standalone_dollar_identifier diagnosis to Parser. Resolves SR-13092. 2020-11-04 21:26:54 +09:00
maustinstar
f6c9769bf0 Statement setter for last element 2020-11-03 22:20:23 -05:00
maustinstar
037edf3a8c [SR-11711] Refactor shared parser code for single-expression returns 2020-11-03 22:03:11 -05:00
Rintaro Ishizaki
5ebb884a61 Merge pull request #34530 from rintaro/parse-eliminate-syntaxresult
[Parse] Cleanup libSyntax type parsing
2020-11-03 13:05:37 -08:00
maustinstar
3913c31688 [SR-11711] Single-expression returns for #if declarations within closures 2020-11-03 12:48:05 -05:00
maustinstar
37b17338e5 [SR-11711] Single-expression returns for #if declarations within functions 2020-11-03 12:47:39 -05:00
Rintaro Ishizaki
d985ee9458 [Parse] Cleanup libSyntax type parsing
Using Parsed*SyntaxBuilder interface and SyntaxParserResult was
unnecessarily complicated. Use SyntaxParsingContext based node creation.

No behavior change.
2020-10-31 01:33:28 -07:00
Rintaro Ishizaki
4ad8efcd0c [Parse] Remove unused HandleCodeCompletion param in parseType()
NFC
2020-10-31 00:27:48 -07:00
Ben Barham
eff5fc9225 [Parse] Remove unused declaration and diagnostic message 2020-10-29 09:18:39 +10:00
Rintaro Ishizaki
9269c5cb8c Merge pull request #34414 from maustinstar/sr-10011
[SR-10011] [Lexer] Raw Strings escape character sequence resembling multiline delimiter
2020-10-27 15:41:04 -07:00
maustinstar
e53290de0e Remove redundant false delimiter check 2020-10-23 23:16:00 -04:00
maustinstar
1d2c426239 Distinguish raw stringd from multiline delimiters [SR-10011] 2020-10-23 17:07:56 -04:00
John McCall
223d7b9ea3 Fix isStartOfSwiftDecl to allow qualified types and generic arguments in attributes.
Fixes rdar://70158735
2020-10-22 17:28:15 -04:00
Doug Gregor
3b6fd4ece8 Merge pull request #34374 from DougGregor/se-0289-result-builders-rename
[SE-0289] Rename "function builders" to "result builders"
2020-10-21 09:08:46 -07:00
Doug Gregor
0d568a93d4 [SE-0289] Update diagnostics & many other strings to "result builders" 2020-10-20 21:44:09 -07:00
Doug Gregor
6a40a3a8aa [SE-0289] Add support for @resultBuilder.
"Function builders" are being renamed to "result builders". Add the
corresponding `@resultBuilder` attribute, with `@_functionBuilder` as
an alias for it, Update test cases to use @resultBuilder.
2020-10-20 13:24:51 -07:00
Kavon Farvardin
34d22105b8 implemented parsing and typechecking for @actorIndependent(unsafe)
[broken] first impl of @actorIndependent in the type checker.

[broken] fixed mistake in my parsing code wrt invalid source range

[broken] found another spot where ActorIndependent needs custom handling

[broken] incomplete set of @actorIndependent(unsafe) tests

updates to ActorIndependentUnsafe

[fixed] add FIXME plus simple handling of IndependentUnsafe context

finished @actorIndependent(unsafe) regression tests

added wip serialization / deserialization test

focus test to just one actor class

round-trip serialize/deserialize test for @actorIndependent

serialize -> deserialize -> serialize -> compare to original

most of doug's comments

addressed robert's comments

fix printing bug; add module printing to regression test

[nfc] update comment for ActorIsolation::IndependentUnsafe
2020-10-19 15:20:24 -07:00
Arnold Schwaighofer
fd3e3cfdb8 Merge pull request #32657 from aschwaighofer/wip_prespecialize_exported
Preliminary support for `_specialize(exported: true, ...)`
2020-10-13 07:57:51 -07:00
Slava Pestov
0b456ba795 Merge pull request #34283 from slavapestov/small-parser-cleanup
Parse: Remove AlreadyHandledDecls set
2020-10-12 20:12:36 -04:00