Commit Graph

2971 Commits

Author SHA1 Message Date
Robert Widmann
eac92e3df0 [NFC] Const-Qualify LangOptions Accesses Through ASTContext 2020-05-13 09:13:44 -07:00
swift_jenkins
b63d3e68fb Merge remote-tracking branch 'origin/master' into master-next 2020-05-13 08:58:54 -07:00
Rintaro Ishizaki
ec0c9484ab [CodeCompletion] Inherit options when parsing new buffer
for fast completions. Options may affect the parsing result.
Also, don't collect interface hash tokens inside inactive blocks.
2020-05-12 15:43:24 -07:00
swift_jenkins
101a3b4dce Merge remote-tracking branch 'origin/master' into master-next 2020-05-12 12:59:11 -07:00
Rintaro Ishizaki
7e170ded66 [CodeCompletion] Remove unused parameter from a couple of lambda 2020-05-12 10:42:04 -07:00
Rintaro Ishizaki
ecfd369f35 [CodeCompletion] Typo: 'getAnnnoateResult' -> 'getAnnotateResult' 2020-05-12 10:33:45 -07:00
swift_jenkins
fa28b24695 Merge remote-tracking branch 'origin/master' into master-next 2020-05-11 22:58:52 -07:00
Rintaro Ishizaki
7086ffb79f [CodeCompletion] Annotated result type
Introduced 'TypeAnnotationBegin' chunk kind for grouping the result type
name chunks.

rdar://problem/62617558
2020-05-11 22:56:22 -07:00
Rintaro Ishizaki
75a0c9f819 [CodeCompletion] Add 'IsSystem' flag to code completion result item
'key.is_system: 1' is added if the associated declaration is from a
system module.

rdar://problem/62617558
2020-05-11 12:24:36 -07:00
Anthony Latsis
bfe25fabeb [NFC] AST: Relocate getLocalConformances to IterableDeclContext 2020-05-08 17:43:09 +03:00
Arnold Schwaighofer
e12698d7a0 Merge remote-tracking branch 'origin/master' into master-next 2020-05-08 07:22:20 -07:00
Saleem Abdulrasool
09975d1253 sprinkle llvm_unreachable for covered switches (NFC)
Annotate the covered switches with `llvm_unreachable` to avoid the MSVC
warning which does not recognise the covered switches.  This allows us
to avoid a spew of warnings.
2020-05-07 11:05:35 -07:00
swift_jenkins
8069dd1be9 Merge remote-tracking branch 'origin/master' into master-next 2020-05-07 08:20:47 -07:00
Slava Pestov
b81c0d63d1 AST: Remove SourceFileKind::REPL 2020-05-07 02:04:05 -04:00
swift_jenkins
6af83c13fc Merge remote-tracking branch 'origin/master' into master-next 2020-05-06 20:04:54 -07:00
Slava Pestov
60ce308eba Sema: Only run extension binding once
There's no need to walk all imports of all source files, and bind the
extensions defined therein. The only time that a non-main module
contains source files is when using -enable-source-import, and we
can just explicitly call bindExtensions() in the right place.
2020-05-06 19:19:47 -04:00
swift_jenkins
e6e25df038 Merge remote-tracking branch 'origin/master' into master-next 2020-05-06 14:35:31 -07:00
John McCall
6a0bd67dfb Merge pull request #31052 from apple/unbraced-multiple-trailing-closures
[SE-0279] Add support for an unbraced syntax for multiple trailing closures
2020-05-06 15:54:13 -04:00
Nathan Hawes
709dd35c3f Merge pull request #31589 from nathawes/doc-info-missing-submodule-decls
[IDE][DocSupport] Fix DocInfo missing decls when generated for clang submodules
2020-05-06 12:40:19 -07:00
Nathan Hawes
34098a75f5 [IDE][DocSupport] Fix DocInfo missing decls when generated for clang submodules.
Out handling of clang submodules was handled differently between DocInfo and
InterfaceGen. For InterfaceGen submodules were mapped back to their top-level
clang modules (or their Swift overlay if it had one) before being passed
into printSubmoduleInterface, along with the dot separated name of the submodule.

For DocInfo, they were not, and only the rightmost component of their name was
passed. The call to retrieve the decls from a ModuleDecl doesn't work if the
ModuleDecl wraps a clang submodule, so we were missing these decls.

InterfaceGen for submodules also shouldn't have been mapping the module back to
the overlay of top-level clang module, as that meant we ended up printing
import decls from the Swift overlay in the submodule's interface.

Resolves rdar://problem/57338105
2020-05-06 09:28:00 -07:00
Ben Langmuir
37b98af4e6 [CodeCompletion] Pre-expand closures in argument completion
When completing a single argument for a trailing closure, pre-expand the
closure expression syntax instead of using a placeholder. It's not valid
to pass a non-closure anyway.

rdar://62189182
2020-05-06 01:56:41 -04:00
Nathan Hawes
78b7bce3a0 [IDE][Refactoring] Update syntactic rename to support braceless multiple trailing closures. 2020-05-06 01:56:41 -04:00
Nathan Hawes
58859f5699 [SourceKit/CodeFormat] Update indentation for braceless multiple trailing closures. 2020-05-06 01:56:41 -04:00
Rintaro Ishizaki
c0bf473cb6 [CodeCompletion] Fix a crash regression 2020-05-06 01:56:41 -04:00
Rintaro Ishizaki
7407a8092d [CodeCompletion] Postfix expr completion after trailing closures 2020-05-06 01:56:41 -04:00
Rintaro Ishizaki
1cbb1e76d4 [CodeCompletion] Update for braceless multiple trailing closure 2020-05-06 01:56:41 -04:00
John McCall
a518e759d9 WIP for a different syntax for multiple trailing closures
that allows arbitrary `label: {}` suffixes after an initial
unlabeled closure.

Type-checking is not yet correct, as well as code-completion
and other kinds of tooling.
2020-05-06 01:56:40 -04:00
Rintaro Ishizaki
fd68f092f2 [CodeCompletion] Completion inside multiple trailing closure
rdar://problem/59688477
2020-05-06 01:56:40 -04:00
Nathan Hawes
c5c8c584a1 Add indentation support for multiple trailing closures.
Resolves rdar://problem/60250267
2020-05-06 01:56:40 -04:00
swift_jenkins
de47192c11 Merge remote-tracking branch 'origin/master' into master-next 2020-05-05 13:19:09 -07:00
Rintaro Ishizaki
1d5b70f8e9 Merge pull request #31561 from rintaro/ide-completion-crash-rdar62679517
[CodeCompletion] Make getEquivalentDeclContextFromSourceFile safer
2020-05-05 13:16:08 -07:00
Rintaro Ishizaki
71f4cfc68c Merge pull request #31474 from rintaro/sourcekit-completion-invalidtyperelation-rdar57726512
[CodeCompletion] Dont mark type mismatching items 'not recommended'
2020-05-05 13:14:51 -07:00
Rintaro Ishizaki
5cc47feb71 [CodeCompletion] Make getEquivalentDeclContextFromSourceFile safer
Add nullptr guard.

rdar://problem/62893219
2020-05-05 10:50:20 -07:00
Rintaro Ishizaki
e9c438cdd5 [CodeCompletion] Dont mark type mismatching items 'not recommended'
func foo() {}
let a: Int = #^HERE^#

Previously, we marked 'foo()' as 'NotRecommented' because 'Void' doesn't
have any member hence it cannot be 'Int'. But it wass confusing with
'deprecated'.

Now that we output 'typerelation' which is 'invalid' in this case. So clients
can deprioritize results, or even filter them out.

rdar://problem/57726512
2020-05-05 10:40:05 -07:00
swift_jenkins
e2a5f13755 Merge remote-tracking branch 'origin/master' into master-next 2020-05-04 20:37:17 -07:00
Rintaro Ishizaki
1f6c3be665 Merge pull request #31388 from rintaro/ide-completion-fastcheckdep-rdar62336432
[CodeCompletion] Give up fast-completion if dependent files are modified
2020-05-04 20:18:29 -07:00
Rintaro Ishizaki
af5daed144 [CodeCompletion] Tweak fast completion dependency checking
- Detect same file with bufferID instead of the file name
- Compare virtual in-memory filesystem content with hash value
2020-05-04 16:35:41 -07:00
swift_jenkins
6253fd4753 Merge remote-tracking branch 'origin/master' into master-next 2020-05-04 14:57:15 -07:00
Nathan Hawes
0f132bf75c Merge pull request #31431 from nathawes/rename-with-backticks
[IDE][SourceKit] Support escaped identifiers for the syntactic rename and related idents requests.
2020-05-04 14:50:33 -07:00
Rintaro Ishizaki
05a87e86c4 [CodeCompletion] Give up fast-completion if dependent files are modified
Check if dependencies are modified since the last checking.
Dependencies:

 - Other source files in the current module
 - Dependent files collected by the dependency tracker

When:

 - If the last dependency check was over N (defaults to 5) seconds ago

Invalidate if:

 - The dependency file is missing
 - The modification time of the dependecy is greater than the last check
 - If the modification time is zero, compare the content using the file
   system from the previous completion and the current completion

rdar://problem/62336432
2020-05-04 13:02:09 -07:00
swift_jenkins
eff5d782a3 Merge remote-tracking branch 'origin/master' into master-next 2020-05-04 09:40:15 -07:00
Nathan Hawes
fe9fc260fa Merge pull request #31465 from nathawes/doc-info-availability-catalyst
[IDE] Loosen assertion check in IDE/SyntaxModelWalker
2020-05-04 09:30:23 -07:00
Nathan Hawes
deecb58fe6 [IDE] Loosen assertion check in IDE/SyntaxModelWalker
We were asserting that the attribute range recorded in the AST started at the
same location as the fist unconsumed SyntaxNode in the file. This should be
true in most cases, but isn't for mispelled attributes, corrected in the AST
but not recognised or present in the list of SyntaxNodes. E.g.
@availability(...) comes through as if @available(...) was specified, but
there's no SyntaxNode for it because we don't highlight invalid attributes
(to indicate they're invalid).

Resolves rdar://problem/62201594
Resolves https://bugs.swift.org/browse/SR-12500
2020-05-01 10:33:22 -07:00
swift_jenkins
9b6f01b6d9 Merge remote-tracking branch 'origin/master' into master-next 2020-04-30 20:37:34 -07:00
Daniel Sweeney
ea526c6383 Converting ModuleDecl::ImportedModule from std::pair to a dedicated struct. (#31360) 2020-04-30 20:26:03 -07:00
Nathan Hawes
0f8619b943 [IDE][SourceKit] Support escaped identifiers for the syntactic rename and related idents requests.
Resolves rdar://problem/46409010
Resolves rdar://problem/48256383
2020-04-30 13:08:23 -07:00
swift_jenkins
4dc2e3c785 Merge remote-tracking branch 'origin/master' into master-next 2020-04-29 17:59:15 -07:00
Robert Widmann
1319b53528 Hide the TypeExpr in ClosureExpr 2020-04-29 13:40:39 -07:00
Robert Widmann
19ab68db98 [NFC] Strip UnresolvedSpecializeExpr of its TypeLoc
No caller needed the type
2020-04-28 20:10:10 -07:00
Robert Widmann
5b3060318e [NFC] Strip ClosureExpr of its TypeLoc 2020-04-28 20:10:10 -07:00