Commit Graph

2331 Commits

Author SHA1 Message Date
Brent Royal-Gordon
0c478b6be6 Revert "Merge pull request #28665 from CodaFi/the-phantom-menace"
This reverts commit 43a3ab7e35, reversing
changes made to 4f39d9c749.

# Conflicts:
#	include/swift/AST/Attr.def
#	lib/AST/Attr.cpp
#	lib/Serialization/Deserialization.cpp
#	lib/Serialization/ModuleFormat.h
#	lib/Serialization/Serialization.cpp
2020-01-15 15:28:42 -08:00
Rintaro Ishizaki
951b85359a [SourceKit] Disable module system headers validation
in all SourceKit requests.
This validation may call many stat(2). Since we don't expect system files
are edited. Disable it for SourceKit requests. Even if they are edited,
manual builds can validates and updates them.

rdar://problem/58550697
2020-01-14 13:06:57 -08:00
swift-ci
bc5eca8388 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-10 16:43:42 -08:00
Shoaib Meenai
e606f52ae8 [build] Check for unicode functions in libedit
Some versions of libedit may have histedit.h but not the Unicode
functions. Explicitly check for the Unicode functions in the found
libedit to ensure the check is accurate.

I considered making this a component of the LibEdit package in our find
module, but CMake's documentation [1] says "Packages that find multiple
semi-independent parts (like bundles of libraries) should search for the
components...", and the "multiple semi-independent parts" definitely
isn't the case here; we're just interested in determining if the found
library supports a particular feature.

[1] https://cmake.org/cmake/help/v3.16/manual/cmake-developer.7.html#find-modules
2020-01-10 09:40:18 -08:00
Arnold Schwaighofer
43c24be5cd Merge remote-tracking branch 'upstream/master' into master-next 2020-01-08 06:41:34 -08:00
Varun Gandhi
022314a640 Merge pull request #28643 from kitaisreal/using-located-instead-of-pair
[Compiler]: Using Located<T> instead of std::pair<SourceLoc, T>
2020-01-06 14:22:29 -08:00
swift_jenkins
615101cbb5 Merge remote-tracking branch 'origin/master' into master-next 2020-01-02 16:39:11 -08:00
Saleem Abdulrasool
dbc3b433ad build: synchronise with LLDB's version of FindLibEdit
The current FOUND_VAR for FindLibEdit is libedit_FOUND but wasn't set by
find_package_handle_standard_args. However this isn't valid for the
package name.

  The argument for FOUND_VAR is "libedit_FOUND", but only
  "LibEdit_FOUND" and "LIBEDIT_FOUND" are valid names.

This fixes all the variables set by FindLibEdit to match the desired
naming scheme.

Thanks to Jonas for fixing the variable names!
2020-01-02 14:16:58 -08:00
swift_jenkins
81c0ed297a Merge remote-tracking branch 'origin/master' into master-next 2020-01-02 10:19:08 -08:00
Saleem Abdulrasool
1b850a2afd build: improve libedit handling for builds
Use the FindLibEdit.cmake module from LLDB to properly control where
the libedit libraries are searched for and linked from as well as where
the headers come from. This uses the standard mechanisms which allows
users to control where libedit is pulled from (which is important for
cross-compilation).

This second version is more aggressive about pruning the libedit
handling.  The Ubuntu 14.04 version of libedit does not have
`histedit.h`, and the intent is to rely on that to determine if we have
unicode support or not.
2019-12-29 16:32:49 -08:00
Kita, Maksim
c88ac85b3f SR-11889: Fixed code review issues
1. Removed two braces {{ usage of Located initialization
2. Wrapped documentation into 80 characters
2019-12-20 17:18:59 +03:00
Kita, Maksim
b7cb3b67bf SR-11889: Using Located<T> instead of std::pair<SourceLoc, T> 2019-12-20 17:18:58 +03:00
swift_jenkins
29b0fb925e Merge remote-tracking branch 'origin/master' into master-next 2019-12-19 14:40:17 -08:00
Rintaro Ishizaki
eebcbf6564 [SourceKit] Pass 'EnableASTCaching' flag as an argument
so that it is associated with a specific completion.
2019-12-19 12:20:20 -08:00
Rintaro Ishizaki
044477e7a3 [SourceKit/CodeCompletion] Use callback function to run the second pass
To controls the lifetime of CompilerInstance within CompletionIntance.

- Prevent from using the same CompilerInstance from multiple completion
  requests
- Separate the stacktrace between "fast" and "normal" completions
- Further code consolidation between various completion-like requests
2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
fcb50d6354 [SourceKit] Add more test cases for fast completions 2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
0f45267927 [CodeCompletion] Use the arguments to check the equality of the invocation
Checking "selected" properties of CompilerInvocation is hard to keep it
up to date. If the arguments are the same, the invocations are the same.
2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
c5b1ada982 [SourceKit] Hold CompletionInstance with std::shared_ptr
So we can pin it on the threads.
2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
fcc7e411f8 [SourceKit] Add a test case for fast code completion 2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
c1530eedca [SourceKit] Add option to enable ASTContext reusing for code completion 2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
62c44126b6 [SourceKit] Reuse compiler instance between multiple completion
- Introduce ide::CompletionInstance to manage CompilerInstance
- `CompletionInstance` vends the cached CompilerInstance when:
-- The compiler arguments (i.e. CompilerInvocation) has has not changed
-- The primary file is the same
-- The completion happens inside function bodies in both previous and
   current completion
-- The interface hash of the primary file has not changed
- Otherwise, it vends a fresh CompilerInstance and cache it for the next
  completion

rdar://problem/20787086
2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
cd284d127f [CodeCompletion] Align swiftCodeCompleteImpl() with other similar funcs
Specifically, align with swiftTypeContextInfoImpl() and
swiftConformingMethodListImpl()
2019-12-18 21:52:20 -08:00
Rintaro Ishizaki
f51f3b884d [SourceKit] Support VFS in 'typecontextinfo' and 'conformingmethods' req
Align with code completion.
2019-12-18 21:52:20 -08:00
swift_jenkins
3f73124ef5 Merge remote-tracking branch 'origin/master' into master-next 2019-12-18 12:39:58 -08:00
Michael Gottesman
8d712af965 [cmake] Add support for exporting frameworks/libraries into cmake export files.
I think this was just an oversight. The new cmake 3.16 seems to choke if we do
not add SourceKit to the exports file since there are dependencies upon it in
other swift libraries.
2019-12-18 10:44:55 -08:00
swift_jenkins
ac5af153b2 Merge remote-tracking branch 'origin/master' into master-next 2019-12-16 10:20:30 -08:00
Rintaro Ishizaki
c35c9ecc3d [SourceKit/CodeCompletion] Remove unnecessary sorting in completion
codeCompleteOpen() has own sorting algorithm, codeComplete() calls this
sortCompletionResults() in its callback. So this pre-sorting is
completely unnecessary.
2019-12-13 14:30:07 -08:00
swift_jenkins
6b53fd184c Merge remote-tracking branch 'origin/master' into master-next 2019-12-11 11:00:08 -08:00
Brent Royal-Gordon
6a8598a99c [NFC] Remove DeclNameRef staging calls 2019-12-11 00:55:18 -08:00
Brent Royal-Gordon
da88512eda [NFC] Take DeclNameRef in UnqualifiedLookup and lookupQualified() 2019-12-11 00:55:17 -08:00
swift_jenkins
3140acc993 Merge remote-tracking branch 'origin/master' into master-next 2019-12-10 21:20:05 -08:00
Robert Widmann
06d27f08fd Define @_implicitly_synthesizes_nested_requirement
State the previously unstated nested type requirement that CodingKeys adds to the witness requirements of a given type. The goal is to make this member cheap to synthesize, and independent of the expensive protocol conformance checks required to append it to the member list.

Further, this makes a clean conceptual separation between what I'm calling "nested type requirements" and actual type and value requirements.

With luck, we'll never have to use this attribute anywhere else.
2019-12-10 16:28:50 -08:00
Joe Groff
fb34044408 Merge remote-tracking branch 'origin/master' into master-next 2019-12-10 12:46:41 -08:00
Butta
14cc620016 [android] A few tweaks for native compilation and to get more tests working
Now that CMAKE_HOST_SYSTEM_NAME and CMAKE_SYSTEM_NAME are set by default to
Android in the Termux app, make the needed tweaks. Some tests were adapted
to work natively on Android too, adds sys/cdefs.h to the Bionic modulemap,
and includes the start of native Android platform support in the build-script.
2019-12-07 01:01:59 +05:30
Nathan Hawes
b9d5672ca1 [SourceKit] Add a global-configuration request to control SourceKit's behavior around .swiftsourceinfo files
SwiftSourceInfo files provide source location information for decls coming from
loaded modules. For most IDE use cases it either has an undesirable impact on
performance with no benefit (code completion), results in stale locations being
used instead of more up-to-date indexer locations (cursor info), or has no
observable effect (live diagnostics, which are filtered to just those with a
location in the primary file).

For non-IDE clients of SourceKit though, cursor info providing declaration
locations for symbols from other modules is useful, so add a global
configuration option (and a new request to set it) to control whether
.swiftsourceinfo files are loaded or not based on use case (they are loaded by
default).
2019-12-03 13:15:20 -08:00
Rintaro Ishizaki
5c60af3ab1 Merge pull request #28403 from rintaro/parse-skipbracedblock-adjust
[Parse] Adjust skipBracedBlock()
2019-12-02 13:44:02 -08:00
Rintaro Ishizaki
3e1de28c85 [complete-test] Stop inserting \0 in complete-test
Using \0 as a representation of the cursor position is a implementation
detail and is done by SourceKit. Client including complete-test should
not do it.

This inserted test used to be treated as EOF in compiler so the code
after the completion position is completely ignored.
2019-11-21 14:14:22 +09:00
swift_jenkins
f60eec9290 Merge remote-tracking branch 'origin/master' into master-next 2019-11-20 13:20:27 -08:00
Saleem Abdulrasool
1d5947b3bd build: remove SWIFT_NEEDS_EXPLICIT_LIBDISPATCH
Restore the previous commit which somehow passed the buildbot given a
missing condition on the sub-configure for libdispatch.  This makes it
more explicit as to what the desire is; the variable was being used to
serve as a proxy for whether the build is not on a Darwin target.
2019-11-20 08:27:30 -08:00
swift_jenkins
71872d5dbe Merge remote-tracking branch 'origin/master' into master-next 2019-11-20 05:40:00 -08:00
David Zarzycki
475f7c1e63 Revert "build: remove SWIFT_NEED_EXPLICIT_LIBDISPATCH (NFC)"
This reverts commit 18570c723f because it
breaks building on platforms that do not want or need libdispatch.
2019-11-20 08:14:03 +02:00
swift_jenkins
014d56a156 Merge remote-tracking branch 'origin/master' into master-next 2019-11-19 11:59:49 -08:00
Saleem Abdulrasool
8a9f53594e Merge pull request #28338 from compnerd/explictly-explicit
build: remove `SWIFT_NEED_EXPLICIT_LIBDISPATCH` (NFC)
2019-11-19 11:46:59 -08:00
swift_jenkins
f69e40db09 Merge remote-tracking branch 'origin/master' into master-next 2019-11-19 09:59:26 -08:00
Nathan Hawes
7b33254b68 Merge pull request #28226 from nathawes/assertion-fixes
Fix some SourceKit assertion hits
2019-11-19 09:50:41 -08:00
Saleem Abdulrasool
18570c723f build: remove SWIFT_NEED_EXPLICIT_LIBDISPATCH (NFC)
This flag was being used as an alias for whether or not the host is
non-Darwin.  Rather than adding custom checks for this, use the explicit
check that CMake supports.  This simplifies the logic and avoids the
proliferation of custom variables which can become confusing for others
who are not familiar with the custom build infrastructure.
2019-11-19 08:24:53 -08:00
swift_jenkins
2a8c94a938 Merge remote-tracking branch 'origin/master' into master-next 2019-11-18 18:19:58 -08:00
Robert Widmann
a5d8f7fcd3 Merge pull request #28294 from hamishknight/disqualified
[NameLookup] Add UnqualifiedLookupRequest
2019-11-18 18:15:29 -08:00
swift_jenkins
8398bff0dd Merge remote-tracking branch 'origin/master' into master-next 2019-11-18 17:19:31 -08:00
Rintaro Ishizaki
dc0cbd35df Merge pull request #28282 from rintaro/ide-completion-rdar57194358
[IDE] Enable 'IgnoreSwiftSourceInfo' in code completion
2019-11-19 10:05:52 +09:00