Commit Graph

4627 Commits

Author SHA1 Message Date
Meghana Gupta
b34791a0a0 Update code as per Apple Style Guide
whitelist -> allowlist
blacklist -> denylist
2020-07-24 11:37:15 -07:00
Ben Langmuir
589b919ad1 Merge pull request #33063 from benlangmuir/racing-edit
[sourcekitd] Fix range shifting vs semantic update timing issues
2020-07-23 08:58:23 -07:00
Mike Ash
771083a014 Merge pull request #32795 from mikeash/swift-inspect-cache-node-dump
[swift-inspect] Add a command for dumping metadata cache nodes.
2020-07-23 11:01:28 -04:00
Ben Langmuir
8e352b8006 [sourcekitd] Fix range shifting "race" with a fast semantic update
If a semantic update finishes fast enough, the token snapshot may be
identical to the edit snapshot, but because of getBufferForSnapshot
consolidating edits into a new buffer, we were not detecting that case
properly, and it could cause an assertion failure (or potentially
incorrect range shifting in a release build). This would have reproduced
very rarely in practice, but I can reproduce it by putting `sleep(2)`
calls right before we read the semantic info in open and edit requests.

Incidentally, fix sourcekit-test and unit tests for the (rare) case
where an open or edit already has updated semantic info.
2020-07-22 17:50:08 -07:00
Artem Chikin
95c8391cd7 Merge pull request #32903 from artemcm/NoImplicitWhenExplicit
[Explicit Module Builds] Prevent SerializedModuleLoader from running in Explicit Module Build mode.
2020-07-22 11:49:08 -07:00
Artem Chikin
140fd73f83 [Explicit Module Builds] Prevent SerializedModuleLoader from running in Explicit Module Build mode.
In order to avoid accidentally implicitly loading modules that are expected but were not provided as explicit inputs.

- Use either SerializedModuleLoader or ExplicitSwiftModuleLoader for loading of partial modules, depending on whether we are in Explicit Module Build or Implicit Module Build mode.
2020-07-22 09:00:40 -07:00
Ben Langmuir
e9c3157ef6 Merge pull request #33020 from benlangmuir/editing-fun
[sourcekitd] Fix annotation range-shifting after edit
2020-07-21 09:11:05 -07:00
Ben Langmuir
01b5cf7c6f [sourcekitd] Fix annotation range-shifting after edit
When performing an insertion (replacement length = 0) inside an existing
annotation, we were forming a closed range instead of a half-open range,
causing us to shift the effected token instead of throwing it out. There
were also no tests for this functionality, so add a bunch of annotations
tests.

One area thing that is not tested is what if there have been multiple
edits since the tokens were created. This is difficult to engineer,
because right now making an edit immediately removes the semantic tokens
and returns them. It could happen if the AST build takes longer than the
edits, but there is no way to guarantee that in the current API.

rdar://65748892
2020-07-20 16:56:49 -07:00
Suyash Srijan
58a84ea4c1 [NFC] Cleanup some code to use 'swift::getParameterList(ValueDecl)' to fetch parameter lists (#32979) 2020-07-20 19:50:37 +01:00
Hamish Knight
3401f3c2cf [SILLLVMGen] Fix a stack-use-after-scope
The PSPs need to live long enough for the call
to OptimizedIRRequest.

rdar://65724385, rdar://65712583
2020-07-17 12:07:40 -07:00
Hamish Knight
4ddb7f88ca Use OptimizedIRRequest in SILLLVMGen 2020-07-15 16:46:43 -07:00
Hamish Knight
d05bfa09d6 [IRGen] Lift call to performLLVM out of IRGenRequest
Remove the side-effecting call from IRGenRequest,
instead requiring callers to handle the optimization
and emission of the LLVM module.
2020-07-15 16:46:42 -07:00
Mike Ash
5347179739 [swift-inspect] Consolidate options into OptionGroups shared between subcommands. 2020-07-15 14:01:49 -04:00
Mike Ash
b65d2b5f99 [Reflection][swift-inspect] Add a command for dumping metadata cache nodes. 2020-07-15 14:01:49 -04:00
Ben Langmuir
209a7b3813 Revert "Merge pull request #32628 from benlangmuir/sema-repeat"
This reverts commit 35eab3e3a8, reversing
changes made to d5a549a9e4.

This caused an unexpected regression.

rdar://65554791
2020-07-14 17:00:02 -07:00
Hamish Knight
09bc359139 Merge pull request #32862 from hamishknight/linked-in 2020-07-14 13:46:09 -07:00
Hamish Knight
db7fea4665 Sink linker directive computation into IRGen
With an inverted pipeline, IRGen needs to be able
to compute the linker directives itself, so sink
it down such that it can be computed by the
`IRGenDescriptor`.
2020-07-13 20:42:54 -07:00
Mike Ash
5eb226557b [swift-inspect] Support DLQ_GetPtrAuthMask. While we're in there, fix an snprintf warning in ReflectionContext.h 2020-07-10 12:34:25 -04:00
Rintaro Ishizaki
185317f722 Merge pull request #32779 from rintaro/ide-completion-closureplaceholder-rdar63607976
[PlaceholderExpansion] Omit return type in closure signature
2020-07-09 21:20:25 -07:00
Rintaro Ishizaki
28e7bc6e81 Merge pull request #32801 from rintaro/ide-completion-test-reusingastcontext
[swift-ide-test] Add indicator of "reusing ASTContext" to the result
2020-07-09 21:17:14 -07:00
Rintaro Ishizaki
0b5dbb111a [swift-ide-test] Add indicator of "reusing ASTContext" to the result 2020-07-09 16:48:45 -07:00
Rintaro Ishizaki
17be66c3d6 [PlaceholderExpansion] Omit return type in closure signature
Return type in the closure signature is often redundant when expanding
placeholders, because the type of the clossures are usually inferred
from the context (i.e. calling function), users don't need to write the
return type explicitly.

They are not only redundant, but also sometimes harmful when the return
type is a generic parameter or its requirement. Actually, there is no
correct spelling in such cases.

So omit the return type and the parentheses around the parameter clause.

rdar://problem/63607976
2020-07-09 14:37:17 -07:00
Nathan Hawes
244dc4a768 [AST] Rename PlatformKind::OSX to PlatformKind::macOS
Because the names are coming from a .def file used for printing too, this
simplifies the printing logic as well.
2020-07-08 16:29:31 -07:00
Hamish Knight
241c5d95e3 Merge pull request #32461 from hamishknight/its-all-linked 2020-07-08 11:07:17 -07:00
Mishal Shah
6336b14db4 [Apple Silicon] [In-process memory reader] Adjust low-bits computation for arm64 macOS 2020-07-02 18:32:23 -07:00
Hamish Knight
b3dcef9796 Avoid unnecessary linking in SIL tools
Previously we were linking in all SIL entities
if the input was a serialized non-SIB AST, and
`-disable-sil-linking` wasn't specified. However
none of the tests appear to want this behaviour.

Stop calling `SerializedSILLoader::getAll`, and
remove the `-disable-sil-linking` option, as this
is now the default behaviour.
2020-07-01 23:14:01 -07:00
Hamish Knight
5792a72b95 Always link SIL for partial modules in SILGen
Previously we would only link `.sib` partial
modules in SILGen, with other kinds of serialized
ASTs being linked just before the SILOptimizer if
`-sil-merge-partial-modules` was specified.
However linking them always seems to be the desired
behaviour, so adjust SILGen to link SIL for all
serialized AST inputs.
2020-07-01 23:14:01 -07:00
Ben Langmuir
35eab3e3a8 Merge pull request #32628 from benlangmuir/sema-repeat
[sourcekit] Retain semantic annotations across queries
2020-07-01 09:54:53 -07:00
Ben Langmuir
a86eaccdf2 [sourcekit] Retain semantic annotations across queries
Do not remove semantic annotations, so that if a client sends multiple
magic replacetext 0, 0, "" requests they will all return the same
result. This makes sourcekitd more robust around providing semantic
highlighting if the editor may make multiple queries for document
update.

rdar://64904029
2020-06-30 13:47:48 -07:00
Rintaro Ishizaki
30ccb52948 Merge pull request #32572 from rintaro/sourcekit-fast-completionlikereq-rdar64782333
[SourceKit] Enable ASTContext caching in other completion-like requests
2020-06-30 09:21:17 -07:00
Rintaro Ishizaki
33336dfb45 [SouceKit] Make "ASTContext reusing" optional
for 'ConformingMethodList' and 'TypeContextInfo'
2020-06-29 15:09:42 -07:00
Nathan Hawes
1c58abf6a3 Merge pull request #32575 from nathawes/fix-no-quickhelp-for-shorthand-arguments
[SourceKit/CursorInfo] Still print implicit decls in cursorinfo to handle compiler synthesized decls
2020-06-29 11:35:02 -07:00
Rintaro Ishizaki
8307c6a95c [SourceKit] Report 'key.reusingastcontext' in completion like requests
'TypeContextInfo' and 'ConformingMethodList'
2020-06-29 10:21:32 -07:00
Saleem Abdulrasool
2a200b2089 SourceKit: silence as -Wmisleading-indent warning (NFCI)
Undent the code that was mis-indended leading to a warning with clang.
2020-06-28 15:06:59 -07:00
Rintaro Ishizaki
bbec1ebfbf [SourceKit] Enable ASTContext caching in other completion-like requests
TypeContextInfo and ConformingMethodList

rdar://problem/64782333
2020-06-26 12:50:49 -07:00
Nathan Hawes
a1f0155525 [SourceKit/CursorInfo] Still print implicit decls in cursorinfo to handle compiler synthesized decls
We weren't printing memberwise inits, shorthand arguments (e.g. $0, $1), and
other implicit decls, so cursor info would give empty annotated decl and fully
annotated decl fields for them.

Resolves rdar://problem/58929991
2020-06-26 11:12:10 -07:00
David Zarzycki
55517d2f4a [CMake] Fix unified builds after #28003 2020-06-24 05:52:05 -04:00
Doug Gregor
d49e4a2185 [Build] Don't install swift-frontend twice, incorrectly 2020-06-23 14:13:51 -07:00
Doug Gregor
bb2d6c59e4 Install swift-frontend executable 2020-06-23 13:00:26 -07:00
Doug Gregor
6c0d957ffe [Driver] Execute the frontend when invoked via swift-frontend.
This obviates the need for "-frontend", although we still accept it
for backward compatibility. Switch lit's %target-swift-frontend et al
over to calling swift-frontend.
2020-06-23 13:00:26 -07:00
Doug Gregor
f71f6207b5 [CMake] Make swift-frontend the primary Swift binary.
Build swift-frontend as the primary Swift binary, and have
swift/swiftc/etc. symlink over to it. This is a step toward allowing
swift-driver to replace the swift and swiftc binaries.
2020-06-23 13:00:26 -07:00
Robert Widmann
0da060e95e Merge pull request #32447 from martinboehme/option-set-initializer-list
Give OptionSet an initializer_list constructor
2020-06-23 10:36:57 -07:00
Martin Boehme
d806ba53f6 Give OptionSet an initializer_list constructor.
This makes it easier to specify OptionSet arguments.

Also modify appropriate uses of ModuleDecl::ImportFilter to take
advantage of the new constructor.
2020-06-22 06:57:29 +02:00
Michael Gottesman
da797fef7d [sil-opt] Add EnablePrettyStackTraceOnSigInfoForThisThread like we do in the Frontend. 2020-06-18 21:40:07 -07:00
Rintaro Ishizaki
2f89469eac Merge pull request #28946 from rintaro/ide-completion-batchtest-rdar16025703
[CodeCompletion] Batch code completion test
2020-06-18 20:38:42 -07:00
Rintaro Ishizaki
f99fa56f9d [CodeCompletion] Add batch ocompletion test utility
Utilize fast-completion in swift-ide-test
2020-06-18 16:26:41 -07:00
Xi Ge
c05d4bfb75 Merge pull request #32355 from nkcsgexi/json-for-explicit-swift-modules
ExplicitModuleLoader: take a JSON file that specifies details of explicit Swift modules
2020-06-17 18:17:38 -07:00
Xi Ge
1cb4eda4b6 test: add an IDE test for loading modules from explict module map 2020-06-17 14:02:50 -07:00
Mike Ash
c925ce502b Merge pull request #32388 from mikeash/swift-inspect-tag-names
[Reflection][swift-inspect] Show tag names when dumping raw metadata allocations.
2020-06-17 16:14:20 -04:00
Xi Ge
d51ac72791 Merge pull request #32414 from nkcsgexi/64373983
ABI-checker: include Swift symbols only when ABI checking is enabled
2020-06-17 09:40:15 -07:00