Commit Graph

4362 Commits

Author SHA1 Message Date
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
Vlasov Anton
b52a0929c4 SR-5741 Refactoring action to convert from field initialization to computed property 2019-12-08 21:17:39 +03: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
Varun Gandhi
12bda79e23 [NFC] Remove dependency on clang APINotes headers for IDE test. (#28497) 2019-12-03 12:46:02 -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
9dfac63ae8 [Parse] Adjust skipBracedBlock()
- Stop using skipBracedBlock() in parseDeclPrecedenceGroup(),
  skipUntilDeclRBrace() is better at this context.
- Disable 'SyntaxParsingContext' inside skipBracedBlock()
- Removed unsound recovery logic in consumeAbstractFunctionBody(). This
  doesn't match with the parser bahavior in the delayed parsing.
- Expose 'skipBracedBlock()' as a Parser instance method so it's usable
  from other files.
2019-11-21 15:18:13 +09: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
Nathan Hawes
43523df08a [IDE] Remove call to getFormalAccess() in inferAccessSyntactically()
It should have been recursing into inferAccessSyntactically() to avoid
any chance of triggering name lookup.
2019-11-18 11:25:50 -08:00
Nathan Hawes
11d20b8c92 [IDE] Avoid name binding in sourcekitd's syntactic requests
It looks like we recently started binding extensions to their nominals in order
to continue to compute access levels via ValueDecl::getFormalAccess() after an
assertion was added to enforce that bindExtensions had been called before
anything tried to call ExtensionDecl::getBoundNominal() - which
getFormalAccess() depends on. Sourcekitd's syntactic requests are made on every
keypress in the editor though, so we shouldn't do any name binding (which may
require module loading) to keep them as fast as possible.

This patch restores the old inferAccessLevel() functions we used prior to the
switch to ValueDecl::getFormalAccess() (plus a few fixes) that does as much as
it can syntactically, without any name binding, and simply doesn't report the
access level in cases where it couldn't be computed without name-binding.

This also fixes an assertion hit we were getting trying to bind extensions in
inactive ifconfig clauses, which ASTScope doesn't support.

Resolves rdar://problem/57202584
2019-11-16 13:41:20 -08:00
swift_jenkins
f3e744db42 Merge remote-tracking branch 'origin/master' into master-next 2019-11-15 17:39:49 -08:00
Gwen Mittertreiner
46e2e5e694 Merge pull request #28250 from drodriguez/windows-sourcekit-vfs-tests
[windows] SourceKit tests with VFS fixes
2019-11-15 17:24:43 -08:00
Hamish Knight
2853615880 Add type to package inputs to UnqualifiedLookupRequest
This allows us use an OptionSet parameter for
the request (as currently we can't directly use it
as a parameter due to not having an == definition
for it). It also allows us to regain default
arguments for the source loc and flag parameters.
2019-11-15 16:35:14 -08:00
swift_jenkins
b9f998ffa4 Merge remote-tracking branch 'origin/master' into master-next 2019-11-15 15:56:48 -08:00
Daniel Rodríguez Troitiño
a1a891e47a [windows] Use the temporal directory for root of VFS tests.
The VFS tests were using Unix absolute paths, which does not play well
when Windows see them as relative to the current drive letter.

By using the temporal directory, both Windows and Unix can use the same
paths and avoid the problem.

Additionally, a couple of inputs have to be transformed into the native
path format, because sourcekitd-test compares the inputs as strings, and
they need to match exactly. So the source file and the name of the VFS
entries are transformed into native using the helper from LLVM support.
2019-11-15 15:20:01 -08:00
Hamish Knight
3aa7158d6c Switch UnqualifiedLookup callers over to UnqualifiedLookupRequest 2019-11-15 14:25:42 -08:00
Saleem Abdulrasool
724ff1ea0a Merge pull request #28262 from compnerd/sourcekit-link-libraries
SourceKit: convert `LINK_LIBS` to `target_link_libraries`
2019-11-15 08:18:18 -08:00
Rintaro Ishizaki
815bf31bda [IDE] Enable 'IgnoreSwiftSourceInfo' in code completion
Get source locations from '.swiftsourceinfo' is currently expensive.
Since they are not necessary for code completion, set
'IgnoreSwiftSourceInfo' to 'true'.

rdar://problem/57194358
https://bugs.swift.org/browse/SR-11767
2019-11-15 15:45:47 +09:00
Xi Ge
2fbb0c1170 Merge pull request #28272 from nkcsgexi/let-var-is-file
ABI/API checker: don't complain about changing var to let or vice versa
2019-11-14 18:22:21 -08:00
Saleem Abdulrasool
5268ce46e6 Merge pull request #28270 from compnerd/sourcekit-simplify
Simplify SourceKit CMake
2019-11-14 15:43:50 -08:00
Xi Ge
c8ce5b304c ABI/API checker: don't complain about changing var to let or vice versa
The tool diagnoses the removal of getter/setter for properties, so complaining about the keyword change can be redundant.

rdar://problem/57201030
2019-11-14 13:59:26 -08:00
Saleem Abdulrasool
717c4d3ebf SourceKit: remove LINK_LIBS (NFC)
This removes the custom `LINK_LIBS` in favour of
`target_link_libraries`.  This simplifies the custom functions that we
have for adding libraries, makes it easier to query the information from
ninja and will allow us to slowly remove more of the custom logic for
building the products.
2019-11-14 13:41:01 -08:00
Saleem Abdulrasool
7722d43291 build: simplify source file handling for sourcekitdAPI
Avoid unnecessary list handling for the sources for sourcekitdAPI,
inline the single use of the list and appending of the sources.
2019-11-14 13:24:22 -08:00
Doug Gregor
ec70b62d5e Merge pull request #28107 from allevato/emit-pcm
Add driver flag to precompile Swift-compatible explicit Clang modules.
2019-11-14 10:25:53 -08:00
Alex Lorenz
2f78afa4a2 Merge pull request #28214 from francisvm/bitstream-changes/master
Cherry-pick LLVM Bitstream changes
2019-11-14 10:14:29 -08:00
Saleem Abdulrasool
df27954b2a build: inline a number of single-use variables (NFC)
Inline a number of single use variables in the swift-lang build.
2019-11-14 09:39:15 -08:00
Saleem Abdulrasool
ff601ad06d SourceKit: inline single-use variable (NFC)
Inline the unnecessary use of the variable for creating the
SourceKitSupport library.
2019-11-14 09:39:15 -08:00
swift-ci
5fc88311d0 Merge remote-tracking branch 'origin/master' into master-next 2019-11-13 10:09:52 -08:00
Saleem Abdulrasool
d092f967d4 Merge pull request #26702 from gmittert/NTNoMore
Convert NT paths to DOSPath when resolving Symlinks
2019-11-13 09:51:55 -08:00
swift-ci
5fc1d17bf9 Merge remote-tracking branch 'origin/master' into master-next 2019-11-13 09:10:56 -08:00
Robert Widmann
f4d333d066 Sink a bunch of semantic options into TypeCheckerOptions
Sink
- DebugConstraintSolver
- DebugConstraintSolverAttempt
- DebugConstraintSolverOnLines
- DebugGenericSignatures
- DebugForbidTypecheckPrefix
- SolverMemoryThreshold
- SolverBindingThreshold
- SolverShrinkUnsolvedThreshold
- SolverDisableShrink
- EnableOperatorDesignatedTypes
- DisableConstraintSolverPerformanceHacks
- SolverEnableOperatorDesignatedTypes
2019-11-12 22:39:49 -08:00
Gwen Mittertreiner
e587c3255c Convert NT paths to DOSPath when resolving Symlinks
GetFinalPathNameByHandleW returns NTPaths (\\?\ Paths) which is an issue
as they don't match the paths stored in the internal dictionaries which
are DOS paths.
2019-11-12 19:57:11 -08:00
swift-ci
9b98492953 Merge remote-tracking branch 'origin/master' into master-next 2019-11-12 17:30:10 -08:00
swift-ci
39fb55b616 Merge pull request #28156 from marcrasi/diff-fn-ty-ast-bits 2019-11-12 17:28:47 -08:00
Marc Rasi
6413f4341a [AutoDiff upstream] AST bits for @differentiable fn ty 2019-11-12 15:19:03 -08:00