Commit Graph

1043 Commits

Author SHA1 Message Date
Mark Lacey
1c00ac4c6d Merge remote-tracking branch 'origin/master' into master-next
Conflicts:
	lib/IRGen/IRGen.cpp
	test/DebugInfo/parent-scope.swift
2016-07-15 19:23:53 -07:00
Dave Abrahams
18406900ba Name and label changes for closure parameters (for review only) (#2981)
Implement SE-0118 Name and label changes for closure parameters

[SE-0118](https://github.com/apple/swift-evolution/blob/master/proposals/0118-closure-parameter-names-and-labels.md)
2016-07-15 15:31:48 -07:00
Xi Ge
3cc0b1df61 [libIDE] When printing type interface, ensure we translate 'Self' to the type under printing. rdar://27306890 (#3514) 2016-07-14 15:50:49 -07:00
Ben Langmuir
2682ab2068 Merge pull request #3503 from benlangmuir/concurrent-cursor-crash
[sourcekit] Synchronize cursor-info requests on generated interfaces
2016-07-14 09:26:00 -07:00
Xi Ge
8cfefd35ce [libide] Finish related lib-ide work on generating type-interface, rdar://27306890. (#3501) 2016-07-14 08:48:28 -07:00
Ben Langmuir
18be066651 [sourcekit] Synchronize cursor-info requests on generated interfaces
Cursor info requires access to the underlying AST, which is not
thread-safe. This manifest as crashes when performing concurrent
cursor-info requests on the same generated interface. We already
prevented concurrent cursor-infos on regular Swift files by using the
ASTManager, but generated interfaces use the InterfaceGenContext which
may use either an ASTUnit or its own internal CompilerInstance.

rdar://problem/27311624
2016-07-13 16:35:23 -07:00
Robert Widmann
c39da37525 Merge pull request #3474 from CodaFi/postminimalist-abstract-expressionism
[SE-0115] Rename *LiteralConvertible protocols to ExpressibleBy*…
2016-07-12 21:08:52 -07:00
Devin Coughlin
1a77dee0ca [ClangImporter] Update AvailAttr import for "macosx" to "macos" rename.
This resolves a number of failing tests caused by availability attributes
not getting imported for macOS.

(cherry picked from commit 4b566df9f3)

I've also reverted a bunch of master-next-only commits related to this issue
that disabled tests and made availability changes:

Revert "Disable test harder by fixing typo. REQUIRE => REQUIRES. = /."
This reverts commit 4dc1be4b95.

Revert "Disable more tests that are hit by upstream availability issues until Devin looks at them."
This reverts commit 8e0fcda35c.

Revert "[SourceKit] Narrow the test-disabling in cursor_info.swift"
This reverts commit 79f6d1d492.

Revert "[upstream-update] Work around availability issue."
This reverts commit f140a62cfb.
2016-07-12 18:24:20 -07:00
Xi Ge
b665de844c Merge pull request #3472 from nkcsgexi/type-interface
[SourceKit] In CursorInfo response, include the mangle name of type.
2016-07-12 17:49:16 -07:00
Xi Ge
a7e4cfd042 [SourceKit] Report container type USRs in the response to cursor-info request.
Typically, users jump to type-specific interface from a member of that type, for
instance, a.getSomething(). To generate the interface, we need to report the USR
of the container type of "getSomething()", which is the USR for the type of a,
 when cursor info is requested for this function call.
2016-07-12 15:50:18 -07:00
Robert Widmann
f97e5dcb0e [SE-0115][1/2] Rename *LiteralConvertible protocols to ExpressibleBy*Literal. This
change includes both the necessary protocol updates and the deprecation
warnings
suitable for migration.  A future patch will remove the renamings and
make this
a hard error.
2016-07-12 15:25:24 -07:00
Xi Ge
a5e51a3494 [SourceKit] In CursorInfo response, include the mangle name of the type of the underlying decl.
The mangled name of the type is identical to those for debugger. These
mangled names allow us to reconstruct the type from AST and generate interface
specifically for that type.

Related rdar://27306890
2016-07-12 13:10:58 -07:00
Doug Gregor
823c24b355 [SE-0112] Rename ErrorProtocol to Error.
This is bullet (5) of the proposed solution in SE-0112, and the last
major piece to be implemented.
2016-07-12 10:53:52 -07:00
Xi Ge
09a19bb230 [SourceKit] Avoid expanding the last argument as trailing closure if there are other closures in the tuple. rdar://23428366 (#3408)
SourceKit invariantly expands the last argument in a function call as trailing closure,
if it is of function type. However, there are situations when inline closures
are preferred; for example, when the last argument is not the only closure in the function
call. This patch modifies SourceKit so that when the argument contains multiple closures,
the last argument is expanded as inline closure.
2016-07-07 18:25:55 -07:00
Xi Ge
64efa48c65 [SourceKit][DocInfo] When the underlying type of a type alias decl exists, report the conformances of the underlying type. rdar://26408167 (#3394)
Showing only the conforming associated types provides
little information to doc viewers. This patch digs the
underlying type of an associated type to report the
conformance info of those.
2016-07-07 16:24:01 -07:00
Jordan Rose
aee92ff612 SE-0025: Parsing and basic completion for 'fileprivate'. (#3391)
Right now 'fileprivate' is parsed as an alias for 'private' (or
perhaps vice versa, since the semantics of 'private' haven't changed
yet). This allows us to migrate code to 'fileprivate' without waiting
for the full implementation.
2016-07-07 15:20:41 -07:00
Xi Ge
3e03b78b77 [SyntaxColoring] Tolerating empty spaces between doc-comment openning… (#3373)
* [SyntaxColoring] Tolerating empty spaces between doc-comment opennings and field keywords. rdar://26310081

* [test] Update test for SourceKit.
2016-07-06 22:41:58 -07:00
Xi Ge
500fdd22d1 [Syntax] Avoid highlighting keyword-like labels in call arguments as … (#3369)
* [Syntax] Avoid highlighting keyword-like labels in call arguments as keywords. rdar://24460689

* [test] Update test for SourceKit.
2016-07-06 22:40:44 -07:00
Xi Ge
2ed177046e [SourceKit] Check location validity before getting the line number to fix a crash. rdar://26756189 (#3364) 2016-07-06 21:26:09 -07:00
Ben Langmuir
79f6d1d492 [SourceKit] Narrow the test-disabling in cursor_info.swift
Only one availability test is failing (because of
rdar://problem/27144738), so re-enable the rest of the test.

rdar://problem/26121117
2016-07-05 13:33:30 -07:00
Ben Langmuir
e8b33b7bd4 [SourceKit] Re-enable tests that are passing again on master-next
rdar://problem/26121117
2016-07-05 13:33:29 -07:00
Michael Gottesman
8e0fcda35c Disable more tests that are hit by upstream availability issues until Devin looks at them.
rdar://27144738
2016-07-05 13:08:07 -07:00
Chris Lattner
ffcafd7c00 fix the AST printer to stop omitting parens around "simple enough" parameter
lists.
2016-07-02 20:24:58 -07:00
Chris Lattner
45f2cfaaa0 Implement SE-0099, but where the migration diagnostics are left as warnings
for now.  I'll upgrade them to errors in a week or two to give downstream
projects a chance to update.
2016-07-02 15:44:57 -07:00
Michael Gottesman
3c603ab18b Merge remote-tracking branch 'origin/master' into master-next 2016-07-01 18:44:21 -07:00
swift-ci
7e7d1dbf21 Merge pull request #2538 from IngmarStein/master 2016-06-29 16:57:16 -07:00
Ben Langmuir
7578ccaae0 [ASTPrinter] Don't print internal @rethrows attribute
This attribute is an implementation detail of how 'rethrows' works, and
you can't actually mark declarations @rethrows directly.  So hide it
from cursor info, and other places that use the ASTPrinter.

rdar://problem/26638597
2016-06-29 16:07:52 -07:00
Ingmar Stein
4f800f8a21 [ClangImporter] Import preprocessor constants with a cast
Addresses SR-1509 by adding a heuristic to import numeric literals with a
type cast. Two new cases have been added for macros with 4 or 5 tokens
to cover cases with or without sign tokens.
2016-06-29 23:01:30 +02:00
Jordan Rose
7574fbc7d6 Revert "Temporarily disable test due to assert failure."
This reverts 23e283f and caeefd6 now that the underlying issue is fixed.

rdar://problem/26099576
2016-06-27 22:14:13 -07:00
Michael Gottesman
8d00a6cb59 Merge remote-tracking branch 'origin/master' into master-next
Conflicts:
	stdlib/public/SDK/GameplayKit/CMakeLists.txt
	test/DebugInfo/bound-namealiastype.swift
	test/DebugInfo/structs.swift
	test/IRGen/c_globals.swift
	test/SourceKit/DocSupport/doc_clang_module.swift
	test/SourceKit/Indexing/index_with_clang_module.swift
	utils/update-checkout
2016-06-25 01:13:50 -07:00
Ben Langmuir
f72bd5453f [CodeCompletion] Fix a crash when completing typealiases for protocol conformance
The index may be at the end of the ArrayRef of chunks if the completion
ends with a simple parameter with no type annotation.  Check that the
index is in-bounds before adding text.

rdar://problem/26273906
2016-06-21 16:56:29 -07:00
Ben Langmuir
3c9c52010b [CodeCompletion] Add image and color literals to results
Surface these results in the codecomplete code path (they're already
there in the codecomplete.open code path) so we can use them from IDEs.
For now, just use ad-hoc filtering to show them when the type matches
(or there is no expected type).  Ideally we would make this filtering
configurable like we do in the codecomplete.open code path.

rdar://problem/25836544
2016-06-21 11:41:15 -07:00
Brian Croom
79efc2895b Merge pull request #3084 from briancroom/more-sourcekit-test-annotations
[SourceKit] Mark more tests as needing Obj-C interop
2016-06-21 08:03:08 -04:00
Brian Croom
69b277d31e [SourceKit] Fix a syntax error in the index_is_test_candidate_objc test 2016-06-20 10:40:09 -04:00
Brian Croom
29af9f889a Fix ObjC-interop logic in the isTestCandidate indexing method
A compile-time conditional had previously been introduced to prevent
`private` test methods from being considered test candidates. This
conditional was not working as intended, however, because the header
providing the required preprocessor flag was not being included.

Several number of issues with the non-Objc-interop test case have also
been fixed.
2016-06-20 10:40:09 -04:00
Brian Croom
b9b565aaed [SourceKit] Mark more tests as needing ObjC interop 2016-06-20 10:35:27 -04:00
Doug Gregor
e2632c1cfa [Code completion] Teach code completion to use declarations for postfix completions.
Code completion had the ability to use declarations to provide better
code completion results for postfix completions, e.g., calls to
functions/methods, but it wasn't trying to get these declarations from
anywhere. Now, get these declarations from the solution to the
constraint system.

The impetus for this is to use default-argument information from the
declaration rather than the type, but plumbing this information
through also means that we get proper "rethrows" annotations, covered
by <rdar://problem/21010193>, and more specific completions in a
number of other places.

Fixes <rdar://problem/21010193>.
2016-06-16 11:44:42 -07:00
Dmitri Gribenko
9ad2ea9402 Merge pull request #3019 from briancroom/annotate-sourcekit-tests
[SourceKit] Annotate some tests that fail on Linux.
2016-06-14 22:43:31 -07:00
Mishal Shah
87b7bcfd3e Update master to build with Xcode 8 beta 1, OS X 10.12, iOS 10, tvOS 10, and watchOS 3 SDKs. 2016-06-14 14:53:55 -07:00
Brian Croom
98e3ca8bc4 Annotate some SourceKit tests that fail on Linux.
* A bunch of them require objc_interop because they import code containing
  Objective-C.
* Many others fail on Ubuntu 14.04 because the C++ there doesn't have a
  functional std::regex implementation which is required by the
  `complete-test` tool.

It may be possible to adjust some of these tests in the future to not
need these extra requirements, but this is a straightforward way to
clean up Linux test results for now.
2016-06-14 08:55:48 -04:00
Dmitri Gribenko
d5157c85da Fix test SourceKit/DocSupport/doc_clang_module.swift 2016-06-09 07:57:28 -07:00
Arnold Schwaighofer
f9e1d53523 Disable failing test for now
This started failing after one of the two commits:

[stdlib] Add missing discardableResult attribute
Fixes SR-1695: Option Set insert needs @discardableResult

[gardening] Remove unused diagnostic
attr_warn_unused_result_mutable_variable

These commits seem harmless so I disabled the test pending further
investigation.

rdar://26718415
2016-06-09 07:09:18 -07:00
Trent Nadeau
b9db36cda5 Removed last uses of @warn_unused_result 2016-06-06 19:12:51 -04:00
Ben Langmuir
4600b1dd12 [CodeCompletion] Fix incorrect upper bound for assertion
This assertion was bogus if there were fewer results than N.
2016-06-04 18:22:18 -07:00
Brian Gesiak
73202fcca2 Merge pull request #2518 from modocache/sourcekit-is-test-candidate-accessibility
[SR-710][Index] isTestCandidate access for Linux
2016-06-03 14:50:50 -04:00
Alex Martini
73f0e938d3 Merge pull request #2745 from natecook1000/nc-doc-initreturns
[stdlib] Documentation consistency for OptionSet initializers
2016-06-01 10:19:29 -07:00
Jordan Rose
7bfdd4a20b Provide fix-its when overriding a bridged type with the old type.
This is support for SE-0069: Mutability and Foundation Value Types.
In cases where someone has overridden a method that takes, e.g.
'NSURL', the override will no longer be valid, because the system
class will now use the value type 'URL' instead. If an override's
full name matches exactly, the compiler will offer fix-its for any
uses of reference types where value types are now preferred.
(This must be a direct match; subclasses, including the mutable
variants of many Foundation types, will need to be updated by hand.)

One wrinkle here is the use of generics. In Swift 2, Objective-C
generics weren't imported at all, so it's unlikely that the overriding
method will have the correct generic arguments. Simple migration
might insert the "bound" type, but it can't know what specific type
might be more appropriate. Therefore, the logic to add the fix-it
ignores generic arguments, assuming the parent's type is correct.

rdar://problem/26183575
2016-05-27 10:58:14 -07:00
Nate Cook
8e2ec66bdc [stdlib] Remove 'Returns' fields from initializers
This includes an updated fixture for `SourceKit/DocSupport/
doc_clang_module.swift', which depends on the OptionSet documentation.
2016-05-27 10:10:56 -05:00
Ben Langmuir
122350d450 [CodeCompletion] Apply filter rules directly to inner results
... and don't try to filter the extended results.  Once the results are
extended with the common prefix they will not match identifier filter
rules, which will create differences between completions depending on
whether they had a filter text or were a postfix expression.  Also,
allow filtering by name directly on the inner operator name for inner
operators.

rdar://problem/26312235
2016-05-25 12:07:17 -07:00
David Farler
05235956fc SourceKit: Include up to closing paren in object literals
rdar://problem/26451674
2016-05-24 18:29:01 -07:00