Commit Graph

752 Commits

Author SHA1 Message Date
Nathan Hawes 9746a284cd Merge pull request #15135 from nathawes/rdar38314383-ignore-llvm-args-for-sourcekit-ast-manager-invocation
Clear any LLVMArgs when initializing the CompilerInvocation for SourceKit's ASTManager
2018-03-13 12:07:12 -07:00
Sho Ikeda 422136e1a2 [gardening][enum class] Replace unsigned char with uint8_t for consistency
Before the changes:

- `git grep -E "enum class .+ : uint8_t \{" | wc -l`: 90
- `git grep -E "enum class .+ : unsigned char \{" | wc -l`: 26
2018-03-12 13:57:36 +09:00
Nathan Hawes 17a6ef5c6e Clear any LLVMArgs when initializing the CompilerInvocation for SourceKit's ASTManager
SourceKit doesn't use them and if any unrecognised LLVM options are
passed to llvm::cl::ParseCommandLineOptions() it calls exit(), bringing
down SourceKit.

Also use fprintf instead of llvm::errs() in Logging.cpp as it uses a
global C++ object that had already been destructed when logging the
above failure.

Resolves rdar://problem/38314383
2018-03-09 18:56:57 -08:00
swift-ci 36b254df94 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-03-08 01:58:15 -08:00
Sho Ikeda cea6c03eb2 [gardening] Use !empty() over size() > 0 2018-03-08 09:21:09 +09:00
swift-ci 1fc9db0035 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-28 22:40:32 -08:00
Xi Ge 2b464c8e61 SwiftSourceKit: Add an API for sending request asynchronously. NFC 2018-02-28 17:11:54 -08:00
swift-ci 78a4e268b3 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-28 11:41:18 -08:00
David Ungar 9cc534a05a Merge pull request #14702 from davidungar/PR-18-7-OutputsInInputs
[Batch mode]: Move SupplementaryOutputs into each InputFile and use the proper supplementary output. (7)
2018-02-28 11:31:47 -08:00
David Ungar 4866df6dfd Move SupplementaryOutputs into each InputFile. 2018-02-28 09:41:49 -08:00
swift-ci 7f99ae6c75 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-27 17:38:25 -08:00
Rintaro Ishizaki 3f232e753b [SourceKit] Add defensive guard for invalid offset
Invalid offset used to cause a inifinite loop in Lexer in some race
condition.

This is a quick fix until we fix underlying problem in SourceKit.
2018-02-27 18:14:52 +09:00
swift-ci e4ad5c4de1 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-22 20:38:46 -08:00
Xi Ge 89fc1302c3 sourcekitd: duplicate sourcekitd UIDs should fail the build. (#14796)
This ensures we can safely add new UIDs.
2018-02-22 20:32:19 -08:00
swift-ci 2cd2bec970 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-21 14:55:39 -08:00
John Fairhurst 677491fc9b [SourceKit] Add syntaxtype for #error/#warning (#14742) 2018-02-21 14:48:18 -08:00
swift-ci eabaa8bcf2 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-16 17:39:11 -08:00
Xi Ge 10eae689bf sourcekid: rename SwiftSourceKitClient to swift-lang. NFC (#14687)
This way the name of the source directory agrees with the module being
built.
2018-02-16 17:24:23 -08:00
swift-ci b45ac7f2c8 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-13 16:37:59 -08:00
Xi Ge 37f352fe41 sourcekitd: build Swift syntax tree more lazily than collecting parsed tokens. (#14578)
Before this patch, we have one flag (KeepSyntaxInfo) to turn on two syntax
functionalities of parser: (1) collecting parsed tokens for coloring and
(2) building syntax trees. Since sourcekitd is the only consumer of either of these
functionalities, sourcekitd by default always enables such flag.
However, empirical results show (2) is both heavier and less-frequently
needed than (1). Therefore, separating the flag to two flags makes more
sense, where CollectParsedToken controls (1) and BuildSyntaxTree
controls (2).

CollectingParsedToken is always enabled by sourcekitd because
formatting and syntax-coloring need it; however BuildSyntaxTree should
be explicitly switched on by sourcekitd clients.

resolves: rdar://problem/37483076
2018-02-13 16:27:12 -08:00
swift-ci 75c8296c99 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-13 13:57:59 -08:00
Xi Ge e970fbe2ff sourcekitd: introduce all sourcekit UIDs to the swift client library. NFC (#14600) 2018-02-13 13:44:08 -08:00
swift-ci 58ba0b5d6f Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-13 12:38:05 -08:00
Huon Wilson 56cf07752d Merge pull request #14554 from huonw/doc-conditional-conformances
[IDE] Teach type checker about conditional conformance extensions.
2018-02-14 07:21:11 +11:00
swift-ci b2eab97286 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-12 22:57:59 -08:00
Xi Ge 69bbf2ba71 sourcekitd: using gyb to generate UIDs instead of a def file. NFC (#14549)
Inspired by the infrastructure of SwiftSyntax, a gyb file can facilitate
cross-language sharing.
2018-02-12 22:48:54 -08:00
Huon Wilson cb60dbeee2 [IDE] Teach type checker about conditional conformance extensions.
Before conditional conformances, the archetypes in conformance
extensions (i.e. extension Foo: SomeProtocol) were equivalent to those
in the type decl, with the same protocol bounds and so on. The code for
printing "synthesized" members relied on this fact. This commit teaches
that code to deal with archetypes in the conditional conformance
extension when required.

Fixes rdar://problem/36553066 and SR-6930.
2018-02-13 17:37:15 +11:00
swift-ci 9e9b3cd3aa Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-11 09:57:54 -08:00
Xi Ge 2e03eac75c [WIP] Re-apply "SwiftSyntax: Teach SwiftSyntax to use SourceKitd to serialize syntax trees. (#14424)" (#14506)
After removing white space changes and attempting to configure dependencies
correctly.
2018-02-11 09:38:53 -08:00
swift-ci c6d31e959a Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-09 08:38:05 -08:00
Doug Gregor 774bee2294 Revert "Re-apply "SwiftSyntax: Teach SwiftSyntax to use SourceKitd to serialize syntax trees. (#14424)" (#14465)"
This reverts commit f8c77e17ce.
2018-02-08 22:58:45 -08:00
swift-ci 4fc58f568f Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-08 15:18:50 -08:00
Xi Ge f8c77e17ce Re-apply "SwiftSyntax: Teach SwiftSyntax to use SourceKitd to serialize syntax trees. (#14424)" (#14465) 2018-02-08 15:11:31 -08:00
swift-ci 92b6a1f625 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-06 10:19:08 -08:00
Ben Langmuir c03533314d Merge pull request #14366 from benlangmuir/sourcekit-driver
[sourcekit] Use the driver to parse command line arguments
2018-02-06 10:16:28 -08:00
Ben Langmuir 72bde687e4 [sourcekit] Use the driver to parse command line arguments
Stop parsing frontend arguments directly and use the driver instead. The
most intersting part of this change is that it forces us to consider
whether our compiler invocation will have inputs or not.  We have
several kinds of requests that need to create a compiler instance, but
not parse any inputs (interface-generation, doc-info, and indexing when
operating on a module instead of source files).

Incidentally, add an error when trying to do doc-info on multiple source
files. This was already very broken (assertion failures and bogus source
locations), so add an error for it.

rdar://problem/17897287
2018-02-05 15:49:17 -08:00
swift-ci 41c8fff778 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-05 13:37:57 -08:00
Nathan Hawes 55d73e97a8 Merge pull request #14355 from nathawes/rdar36077481-crash-in-on-document-update-notification
[sourcekitd] Fix crash in onDocumentUpdateNotification
2018-02-05 13:21:29 -08:00
Nathan Hawes 3d97980e60 [sourcekitd] xpc_retain MainConnection so it remains valid for sending when cancelled from the other end
If a client crashes and we tried to post notifications to the XPC connection,
SourceKitService would go down too, as it never `xpc_retain`ed the connection.

Resolves rdar://problem/36077481
2018-02-02 15:50:47 -08:00
Ben Langmuir 9f3df20dbd [sourcekit] Change fallback module name to match driver
This will reduce test churn when we start using the driver to parse
arguments.  We don't really care what the module name is for these
fallback cases.
2018-02-02 10:26:58 -08:00
swift-ci c8625a1df1 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-01 16:58:10 -08:00
David Ungar 354a76ac4e Merge pull request #14198 from davidungar/PR-18-3c-exp2
[Batch mode] Move frontend main output files to FrontendInputsAndOutputs. (1)
2018-02-01 16:42:10 -08:00
swift-ci 35a2b40d53 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-01-31 02:38:12 -08:00
Rintaro Ishizaki fced748790 [Syntax] Represent missing optioanl nodes as nullptr (#14300)
Allocating RawSyntax/SyntaxData for missing optional node is a waste of
resource.
2018-01-31 19:24:00 +09:00
David Ungar a9819b6e60 Renaming FrontendInputs -> FrontendInputsAndOutputs
Fix comment in ArtsToFrontendOptionsConverter re getOutputFilenamesFromCommandLineOrFilelist
2018-01-30 18:54:38 -08:00
swift-ci 8848cd7540 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-01-30 13:38:06 -08:00
Xi Ge 98570550c3 [SourceKit] Report synthesized protocol conformances for DocSupport request. rdar://36882292 (#14248) 2018-01-30 13:32:50 -08:00
swift-ci 8d00b9ff17 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-01-25 18:38:49 -08:00
Nathan Hawes 7ed4586f01 Merge pull request #14145 from nathawes/rdar35819975-cursor-info-crasher
[CursorInfo] Fix crash on init call of inner NTD with generic outer NTD
2018-01-25 18:35:35 -08:00
Nathan Hawes cbf07dae19 [CursorInfo] Fix crash on init call of inner NTD with generic outer NTD
Resolves rdar://problem/35819975
2018-01-25 13:24:51 -08:00