Commit Graph

2350 Commits

Author SHA1 Message Date
Rintaro Ishizaki
37bb0492ff [SourceKit] Add trace logging for typecontextinfo request. 2019-01-23 12:10:14 -08:00
Marcelo Fabri
f61751bdcf [SR-9630][SourceKit] Add request to get compiler version 2019-01-20 10:39:25 -08:00
Robert Widmann
d7a406dbc2 Merge pull request #20950 from CodaFi/christmas-declarations
[NFC] Upgrade EnumElementDecl to a DeclContext
2019-01-18 17:25:22 -05:00
Argyrios Kyrtzidis
c7ac859310 [Parse] Optimize syntax parsing: Speed-up Lexer::lexTrivia()
Introduce ParsedTrivia which is a more efficient structure to use during lexing than syntax::Trivia.
2019-01-17 12:10:27 -08:00
Robert Widmann
c5b7230d22 [NFC] Upgrade EnumElementDecl to a DeclContext
Pure plumbing for the sake of default arguments.
2019-01-16 18:39:30 -05:00
Xi Ge
74dd07fa8d Merge pull request #21821 from iKichiemon/enum-case-to-lowercamelcase
enum SourceKitdError case to lower camel case
2019-01-14 16:46:41 -08:00
Rintaro Ishizaki
b446d6b051 Merge pull request #21377 from rintaro/ide-contextinfo
[SourceKit][IDE] New SourceKit request to retrieve context type information
2019-01-15 01:54:16 +09:00
iKichiemon
15f9ddcdb8 change enum SourceKitdError's case to lower camel case
- EditorOpenError to editorOpenError
- EditorCloseError to editorCloseError
2019-01-12 23:50:28 +09:00
Rintaro Ishizaki
3797b7a334 [SourceKit] New request to retrieve context type information
This is a new SourceKit request which receives a position in the source
file, returns possible expected types and their members which can be
referenced by "implicit member expression" syntax.
2019-01-11 00:49:57 +09:00
Parker Schuh
f5859ff46e Rename NameAliasType to TypeAliasType. 2019-01-09 16:47:13 -08:00
Ben Langmuir
db0e2738dc Merge pull request #21605 from DavidGoldman/sourcekit_invocation_error
[SourceKit] Use diagnostics for arg parsing
2019-01-09 08:54:42 -08:00
David Goldman
c2d0b4df6f Add removeConsumer to DiagnosticEngine 2019-01-08 17:28:54 -05:00
David Goldman
4651e14f09 Remove StreamDiagConsumer to prevent crash 2019-01-08 16:20:22 -05:00
Argyrios Kyrtzidis
ab7427723e [Parse/Syntax] Refactoring to decouple the parser from syntax tree creation
Instead of creating syntax nodes directly, modify the parser to invoke an abstract interface 'SyntaxParseActions' while it is parsing the source code.
This decouples the act of parsing from the act of forming a syntax tree representation.
'SyntaxTreeCreator' is an implementation of SyntaxParseActions that handles the logic of creating a syntax tree.
To enforce the layering separation of parsing and syntax tree creation, a static library swiftSyntaxParse is introduced to compose the two.

This decoupling is important for introducing a syntax parser library for SwiftSyntax to directly access parsing.
2019-01-07 19:52:59 -08:00
Brent Royal-Gordon
95e0c6614c [SourceKit] Add SwiftLang API to parse into ByteTree format
Redesigns the `SwiftLang.parse` API to accommodate a format parameter which can be used to request a ByteTree-serialized syntax tree instead of JSON-serialized. This gives us a convenient way to use the fastest currently available combination of tools for parsing a file into a syntax tree.

The new API only accepts paths, not source buffers, and returns JSON as `Data` instead of `String`, which are both better directions in the long run. The format type is extensible so that it can easily be extended to support "direct" parsing into a SyntaxSourceFile.

Deprecated wrapper methods with the old names and signatures are still available for any existing clients.
2019-01-04 10:36:39 -08:00
David Goldman
3c9f3c8815 SourceKit: Use actual diagnostics for arg parsing
With this change, you will no longer receive
"error when parsing the compiler arguments". Instead, you will
receive the underlying error, like
"error: unable to load output file map 'output_file_map.json': No such file or directory"
2019-01-03 11:10:31 -05:00
Argyrios Kyrtzidis
66be4a58b4 [Parser] Introduce ParserUnit::parse() function to avoid duplication of code 2018-12-16 09:52:15 -08:00
Saleem Abdulrasool
522f97da43 build: simplify the blocks handling
`-fblocks` is a core driver option now, so it can be used with both the GCC
style driver as well as the cl style driver.  Simplify the logic for the
handling of this option.
2018-12-07 08:24:19 -08:00
Argyrios Kyrtzidis
9694851c23 Merge pull request #21075 from akyrtzi/syntax-parser-cmake-prep
[CMake] Move cross-platform dispatch/blocks support to the tools level, in preparation for the syntax parser library
2018-12-06 09:35:52 -08:00
Argyrios Kyrtzidis
92377cc145 [CMake] Move cross-platform dispatch/blocks support to the tools level, in preparation for the syntax parser library 2018-12-05 22:41:39 -08:00
Xi Ge
5da65ac704 Merge pull request #21013 from nkcsgexi/doc-support
Sourcekit/DocSupport: include fully annotated generic signatures for extension decls.
2018-12-05 18:31:29 -08:00
swift-ci
39161d5b36 Merge pull request #20600 from adrian-prantl/36032653 2018-12-05 17:01:58 -08:00
Adrian Prantl
d63debeb60 Experimental: Extend ClangImporter to import clang modules from DWARF
When debugging Objective-C or C++ code on Darwin, the debug info
collected by dsymutil in the .dSYM bundle is entirely
self-contained. It is possible to debug a program, set breakpoints and
print variables even without having the complete original source code
or a matching SDK available. With Swift, this is currently not the
case. Even though .dSYM bundles contain the binary .swiftmodule for
all Swift modules, any Clang modules that the Swift modules depend on,
still need to be imported from source to even get basic LLDB
functionality to work. If ClangImporter fails to import a Clang
module, effectively the entire Swift module depending on it gets
poisoned.

This patch is addressing this issue by introducing a ModuleLoader that
can ask queries about Clang Decls to LLDB, since LLDB knows how to
reconstruct Clang decls from DWARF and clang -gmodules producxes full
debug info for Clang modules that is embedded into the .dSYM budle.

This initial version does not contain any advanced functionality at
all, it merely produces an empty ModuleDecl. Intertestingly, even this
is a considerable improvement over the status quo. LLDB can now print
Swift-only variables in modules with failing Clang depenecies, and
becuase of fallback mechanisms that were implemented earlier, it can
even display the contents of pure Objective-C objects that are
imported into Swift. C structs obviously don't work yet.

rdar://problem/36032653
2018-12-05 13:54:13 -08:00
Adrian Prantl
ff63eaea6f Remove \brief commands from doxygen comments.
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

      for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
2018-12-04 15:45:04 -08:00
Xi Ge
d620dfae5e Sourcekit/DocSupport: include fully annotated generic signatures for extension decls. rdar://40906297 2018-12-04 14:29:28 -08:00
Xi Ge
7f7a756ea4 sourcekit: avoid evaluating pound conditions while perform syntactic parsing. rdar://46143404 2018-12-03 14:56:25 -08:00
swift-ci
cf1be5e644 Merge pull request #20427 from rockbruno/sourcekit-operators 2018-11-30 09:02:57 -08:00
Karoy Lorentey
36f048402f [SourceKit] SourceKitdUID: Implement hash(into:) rather than hashValue 2018-11-29 17:57:13 +00:00
Harlan Haskins
245109d909 Merge pull request #20250 from harlanhaskins/accessorizing
[ParseableInterface] Standardize printing for accessors
2018-11-27 10:31:17 -08:00
Harlan Haskins
a64a4e1940 [Sema] Add implicit @_hasStorage attribute for printing 2018-11-26 18:42:02 -08:00
Jordan Rose
6afe77ae98 [CMake] Clean up (somewhat) the generated Xcode project (#20586)
Still to do: have command-only targets that present sources, for things
like copy_shim_headers.
2018-11-26 11:31:41 -08:00
Nathan Hawes
2964b58699 Merge pull request #20055 from nathawes/r45273748-speculative-fix-for-asan-bot-sourcekit-failures
[sourcekit] Fix for Ubuntu 16.04 Swift ASAN bot sourcekitd-test failures
2018-11-08 22:29:27 -08:00
Bruno Rocha
6f1f1bda92 [SourceKit] Recognize static method operators 2018-11-08 12:33:06 -02:00
Nathan Hawes
15dd6f920a [sourcekit] Fix for Ubuntu 16.04 Swift ASAN bot failures
Don't mix and match between the just-built clang and the host clang when
ASAN is enabled.

rdar://problem/45273748
2018-11-07 17:29:13 -08:00
Nathan Hawes
23d461d652 [SourceKit] Expose the data variant sourcekitd apis in the SwiftLang wrapper
These were recently added to support returning the SyntaxTree in the bytetree
from SourceKit but were never added in SwiftLang (the Swift layer wrapping
SourceKit).
2018-11-06 14:27:00 -08:00
Nathan Hawes
fd2c35e757 [SourceKit] Make each Variant keep a strong reference to its SourceKitdResponse context
sourcekitd_variant_t is only safe to use while the sourcekitd_response_t it was
retrieved from is still alive, so keep a strong reference to SourceKitdResponse
(the Swift wrapper of sourcekitd_response_t) in each Variant (the Swift wrapper
of sourcekitd_variant_t).
2018-11-06 13:19:34 -08:00
Argyrios Kyrtzidis
4d7ee807da [sourcekitd] Make sure to put '-resource-dir' argument in front to allow overriding it by the passed in arguments
Otherwise, passing a custom '-resource-dir' option will be ignored.
rdar://45764554
2018-11-03 21:55:50 -07:00
Slava Pestov
9c50867370 Move RemoteAST's RemoteASTTypeBuilder to lib/AST/ASTDemangler.cpp 2018-11-02 18:19:40 -04:00
Michael Gottesman
3f17bb6ddf Carefully split the build's invocation of add_swift_library into host/target variants.
The key thing here is that all of the underlying code is exactly the same. I
purposely did not debride anything. This is to ensure that I am not touching too
much and increasing the probability of weird errors from occurring. Thus the
exact same code should be executed... just the routing changed.
2018-10-27 12:58:51 -07:00
Saleem Abdulrasool
2f8a4dbf4a Merge pull request #19933 from compnerd/micro-opt
SourceKit: micro-optimization of CMake (NFC)
2018-10-19 14:58:20 -07:00
Saleem Abdulrasool
13c83b121e SourceKit: always install headers
Ensure that we install the client header for the InProc sourcekitd. This is
needed to actually make it usable. With this, it is now possible to develop
against SourceKit on Linux and Windows.
2018-10-17 15:01:27 -07:00
Saleem Abdulrasool
8395e355e5 SourceKit: micro-optimization of CMake (NFC)
Set all the target properties in a single shot.  This avoids the multiple string
parsing within CMake.  Although this makes no noticable differnce, it is
slightly more efficient and also colocates all the target properties.
2018-10-17 14:53:24 -07:00
Ben Langmuir
98ceebe6e8 Add dependency on the libdispatch-install step
Libraries in sourcekitd depending on the external libdispatch project
appear to only depend on the *build* step, but really need the install
to happen as well since we are linking to the installed location.
2018-10-16 15:56:00 -07:00
Saleem Abdulrasool
c20a7550d4 build: correct case for compiler id
The STREQUAL would fail as the C in Clang for the compiler ID is capital.
Correct the case.
2018-10-15 16:20:59 -07:00
Saleem Abdulrasool
ed3cb02475 build: use the host compiler if possible (#19888)
Attempt to use the host compiler when building libdispatch for SourceKit.  This
is needed for cross-compiling scenarios (e.g. building the Windows toolchain on
Linux).  However, unfortunately, the Ubuntu 14.04 build bots are using an
ancient compiler, so we cannot use that for building libdispatch.  Add a
fallback to the just built clang.  Ensure that the fallback only activates when
compiling on the same host as the target.
2018-10-15 15:13:45 -07:00
Argyrios Kyrtzidis
f913a239f8 [SourceKit] Avoid the 'error: no input files' diagnostic notification for syntactic-only requests
rdar://44989868
2018-10-13 09:48:00 -07:00
Argyrios Kyrtzidis
feffd2c5d4 [sourcekitd] In the fatal error handler, don't call abort() if gen_crash_diag is false
rdar://44046820
2018-10-13 07:34:56 -07:00
Nathan Hawes
b1c8013701 Merge pull request #19782 from nathawes/incremental-parsing-bug
[incrParse] Fix bug mapping a node's location back to its location in the cached syntax tree
2018-10-12 15:43:11 -07:00
Ross Bayer
c1f17f00c2 Changed the external project build for libdispatch in tools/SourceKit to use the just-build clang and clang++ rather than the system versions (rdar://45148295). (#19845) 2018-10-12 14:53:04 -07:00
Erik Eckstein
7f988f86d7 fix a linker error on the benchmark bot
It looks like removing this dependency (https://github.com/apple/swift/pull/19798) caused the linker error on https://ci.swift.org/view/Pull%20Request/job/swift-PR-osx-perf/
2018-10-11 12:37:27 -07:00