Commit Graph

689 Commits

Author SHA1 Message Date
swift-ci
261bc2b849 Merge remote-tracking branch 'origin/master' into master-next 2017-07-31 14:29:37 -07:00
Marcelo Fabri
8a8f7c827e [SourceKit] Add accessibility in extension structure (SR-4823) (#11260) 2017-07-31 14:14:25 -07:00
Chris Bieneman
9c35042ae6 Merge remote-tracking branch 'origin/master' into master-next 2017-07-28 09:51:36 -07:00
Harlan
4b83c16c07 Make SourceKitSwiftLang depend on swift-syntax-generated-headers (#11226) 2017-07-27 13:24:55 -07:00
Chris B
762841ffa8 Merge pull request #11177 from llvm-beanz/swift-cmake-cross-compile
Support CMake's built-in cross compilation mechanisms, and LLVM's native tools configuration.
2017-07-26 15:44:59 -07:00
swift-ci
dec8050c1a Merge remote-tracking branch 'origin/master' into master-next 2017-07-26 10:09:14 -07:00
John Fairhurst
1f94eca80c [SourceKit] Add typealias to doc structure (#11143)
From https://bugs.swift.org/browse/SR-4828
2017-07-26 09:59:06 -07:00
swift-ci
0ce8483aa6 Merge remote-tracking branch 'origin/master' into master-next 2017-07-25 18:48:50 -07:00
Harlan
a5098e6b69 Generate libSyntax API (#10926)
* Generate libSyntax API

This patch removes the hand-rolled libSyntax API and replaces it with an
API that's entirely automatically generated. This means the API is
guaranteed to be internally stylistically and functionally consistent.
2017-07-25 18:19:58 -07:00
Chris Bieneman
3003bf6f9e Don't override CMAKE_* variables if CMAKE_CROSSCOMPILING is set
This patch allows Swift to build correctly when using CMake's cross compiling facilities instead of hacking around them.
2017-07-25 13:49:02 -07:00
swift-ci
238e75bebd Merge remote-tracking branch 'origin/master' into master-next 2017-07-21 18:29:06 -07:00
Xi Ge
7595ed353e [RangeInfo] Address Argyrios' code review comments. NFC (#11114) 2017-07-21 18:10:52 -07:00
swift-ci
bc13c03bfb Merge remote-tracking branch 'origin/master' into master-next 2017-07-21 16:29:01 -07:00
Xi Ge
ac348b597a [RangeInfo] Using the underlying token array reference to represent the content of a range under selection. (#11106)
Comparing to CharSourceRange, token stream is a better way because we can preserve comment information at the start of the range.

Needed for rdar://33437855
2017-07-21 16:19:25 -07:00
swift-ci
0535f36f1f Merge remote-tracking branch 'origin/master' into master-next 2017-07-19 17:08:59 -07:00
Ben Langmuir
93d22c9ff0 [code-completion] Add a new custom completion context for a for-each sequence
For normal completions it behaves the same as PostfixExprBeginning, but
it provides a hook for clients to provide a custom completion for this
position.  For example, you might want to a x ..< y snippet in this
position.

rdar://problem/29910383
2017-07-19 13:29:36 -07:00
swift-ci
f79b640686 Merge remote-tracking branch 'origin/master' into master-next 2017-07-19 13:09:13 -07:00
Ben Langmuir
0258839815 [code-completion] Add leading-dot completion for enums
When using completion options that will allow the lone "." completion,
provide that result when in contexts that expect an enum type.  Note:
this is a crappy approximationg for whether the type can have "implicit
member expression" syntax, since uninhabited enums should not support
it, and many non-enum types should.  However, it is currently expensive
to compute the accurate answer and this approximation is good enough for
some clients.

rdar://problem/31260505
2017-07-19 11:34:01 -07:00
swift-ci
30a7bd1844 Merge remote-tracking branch 'origin/master' into master-next 2017-07-19 01:28:52 -07:00
Slava Pestov
fb9d410350 AST: Rename UnqualifiedLookupResult => LookupResultEntry
There's a similar LookupResult::Result type in Sema, and I'd like
to combine the two.
2017-07-18 22:09:02 -07:00
swift-ci
9447a6280b Merge remote-tracking branch 'origin/master' into master-next 2017-07-17 12:08:51 -07:00
Jordan Rose
b4759bc8e2 [Parse] Split ParseSIL out into its own library.
...finally breaking the dependency of Parse on Sema.

There are still some unfortunate dependencies here -- Xi's working on
getting /AST/ not dependent on Sema -- but this is a step forward.

It is a little strange that parseIntoSourceFile is in ParseSIL, and
therefore that that's still a dependency for anyone trying to, well,
parse. However, nearly all clients that parse want to type-check as
well, and that requires Sema, Serialization, and the ClangImporter...
and Serialization and SIL currently require each other as well
(another circular dependency). So it's not actively causing us trouble
right now.
2017-07-17 12:18:41 -06:00
swift-ci
ccfeac871a Merge remote-tracking branch 'origin/master' into master-next 2017-07-14 20:08:52 -07:00
Xi Ge
0bba7d900b ASTPrinter: Remove ASTPrinter's dependency on Sema. (#10985) 2017-07-14 20:02:25 -07:00
swift-ci
2d48f73bec Merge remote-tracking branch 'origin/master' into master-next 2017-07-13 18:08:49 -07:00
Nathan Hawes
ecfa9ebfca [interface-gen] Rename AreSwiftArgs -> UsingSwiftArgs throughout 2017-07-13 15:37:17 -07:00
Nathan Hawes
3de0ea7e1b [interface-gen] Support passing Swift compiler arguments for header file interface generation
Resolves rdar://problem/33249361.
2017-07-13 14:21:06 -07:00
swift-ci
c33d8667ae Merge remote-tracking branch 'origin/master' into master-next 2017-07-11 12:49:08 -07:00
Xi Ge
243ec5ac86 Name translation: Allow type name translation when cursor points to constructor call. rdar://33163114 (#10872) 2017-07-11 12:46:52 -07:00
swift-ci
c6e1e9072e Merge remote-tracking branch 'origin/master' into master-next 2017-07-06 11:48:47 -07:00
Argyrios Kyrtzidis
231add1c2e [SourceKit] Ignore the index-store-path flag for the sourcekitd requests
It was active for clang PCH/module creation coming from sourcekitd which was unnecessary index-store data creation.
2017-07-06 11:04:19 -07:00
swift-ci
0e6f07162a Merge remote-tracking branch 'origin/master' into master-next 2017-07-05 13:48:49 -07:00
Xi Ge
22697aa994 [SourceKit] Declaring locally used UIdent static so that we don't need to create them in every request. NFC (#10762)
This addresses @@benlangmuir's code review comments.
2017-07-05 13:44:03 -07:00
Bob Wilson
c00d35f552 Remove some llvm::yaml::SequenceTraits for vectors
After LLVM r306878, these templates do not compile. As far as I can tell,
they are no longer needed.
2017-07-05 11:56:00 -07:00
Greg Parker
7b009eccde Merge remote-tracking branch 'origin/master' into master-next 2017-06-28 15:25:17 -07:00
Xi Ge
b8cf32f1e9 Revert "[syntax-coloring] Rework the syntax map to use offset + length and simplify the delta logic" (#10633)
Resolving rdar://32988175.
2017-06-27 12:28:41 -07:00
Harlan
e89e7f58b2 [Parse] [Syntax] Simplify TupleTypeRepr parsing and add attributes for Syntax (#8298)
* Simplify TupleTypeRepr parsing

This patch introduces a TupleTypeReprElement struct that holds the
locations for all relevant bits of tuple elements. It removes the
NameLoc and UnderscoreLoc arrays from TupleTypeReprElement in favor of
holding each of these on TupleTypeReprElement. These extra bits of info
are required for full-fidelity representation in the Syntax library.

* Remove TupleTypeReprBitfields and move EllipsisLoc out of TrailingObjects

* Update users of TupleTypeRepr

* Don't resize the elts if we're going to push_back

* getType -> getElementType

* Move ellipsis back into TrailingObjects.

* Move NumElements into TupleTypeReprBitfields
2017-06-27 10:54:47 -07:00
Xi Ge
63aeb0123e SourceKit: Refactor Kinds UIDs to ProtocolUIDs.def. (#10604)
"Kind" is a frequently appearing concept in SourceKitD. This patch
refactors the definitions of these "Kinds" and their associated values
 into the single protocol file. Ideally, we should structurally define Kinds instead of this
flat list.
2017-06-27 10:51:48 -07:00
Xi Ge
46b0405a90 SourceKit: Reduce the duplication of key definitions. NFC (#10550)
We should have a single and unambiguous place to add new keys and request IDs to Sourcekitd.
2017-06-23 17:08:15 -07:00
Michael Gottesman
b13d9f59b4 [upstream-update] Update tablegen option processing for the addition of the VALUES field to the generated table. 2017-06-22 21:17:22 -07:00
Xi Ge
351ffabf1a CursorInfo: silence a warning after recently introducing a new enum case. (#10412) 2017-06-20 15:32:27 -07:00
Argyrios Kyrtzidis
0cfc56ec04 [SourceKit] If diagnostics are 'stale' for a particular snapshot then ignore them and only return the syntactic parser diagnostics (#10388)
This makes sure that diagnostics returned for a particular state of source buffer are consistent and accurate.
rdar://32769873
2017-06-20 12:26:32 -07:00
Xi Ge
1ea4d9ff98 CursorInfo: Teach SemaLocResolver to recognize the start of an expression, if the location cannot be further refined to other kind, e.g. a reference. rdar://32749670 2017-06-19 13:28:36 -07:00
Nathan Hawes
9ec658ae7f Merge pull request #10289 from nathawes/rdar32148117-multiline-syntax-coloring-issues
[syntax-coloring] Rework the syntax map to use offset + length and simplify the delta logic
2017-06-19 13:26:26 -07:00
Nathan Hawes
3791e12895 [syntax-coloring] Remove early exit from delta logic when there are no new highlighted tokens but are removed ones, and take account of the range of the mismatching token in the previous syntax map
We still need to adjust the affected range to the line boundaries and return all
tokens on the line when there are no new tokens, as the client will clear all
tokens on that line in its copy of the syntax map leaving the other tokens
unhighlighted. We also need to extend the affected range to include the ranges
of the mismatched tokens from the previous syntaxmap, so their highlighting will
be cleared.

Also add more comments to better document the new syntax map structure and
behaviour.
2017-06-19 11:45:08 -07:00
Ben Langmuir
61a151989a [code-completion] Add filter rules for description in addition filter-name
The filter name isn't helpful if you want to make rules about specific
overloads - e.g. only show the [Int] subscript on Array.

rdar://problem/28920034
2017-06-15 16:32:29 -07:00
Nathan Hawes
1158137d95 [syntax-coloring] Fix incorrectly reporting a no-op when a token is removed 2017-06-15 13:16:04 -07:00
Nathan Hawes
09cb55ebf3 [syntax-coloring] Rework the syntax map to use offset+length rather than start/end line+column and simplify the delta logic
This patch changes the syntax map data structure it uses to be offset based
rather than line/col based in order to avoid calling getLineAndColumn for the
start and end offset of every token. This removes the 30% of time spent in
getLineAndColumn for this request in large files (rdar://problem/28965123).

The logic for returning the affected range and the token ranges to highlight
following an edit also made several assumptions that no longer hold. This
patch changes it to compare the syntax maps from before and after the edit,
find the first mismtaching tokens from the start and end of the syntax maps
and return the tokens in that range (adjusted to line boundaries). This fixes
syntax highlighting issues with interpolated multi-line strings
(rdar://problem/32148117) and block comments.

With the above changes the per-keystroke time spent for syntax highlighting
(with sematic info disabled) dropped from ~80ms to just under 50ms for a
12KLOC file.
2017-06-15 13:15:43 -07:00
Robert Widmann
3e2bbfe904 [Gardening] Cleanup TokenKinds.def (#10034)
* [Parse] Refactored internal structure of Tokens.def and documented usage.

Added a level of structure to the macro definitions to allow Swift
keywords to be cleanly accessed separately from SIL and Swift keywords
together. Documented structure and usage.

* [Parse] Made use of new guarantees and abstractions in Tokens.def

Used guarantees about undefining macros after import and new
SWIFT_KEYWORD abstraction to simplify usage of the Token.def
imports.

* Gardening
2017-06-01 15:08:48 -07:00
Alex Hoppen
58c956a29a [Misc] Preparations for removal of getName on ValueDecl
With the introduction of special decl names, `Identifier getName()` on
`ValueDecl` will be removed and pushed down to nominal declarations
whose name is guaranteed not to be special. Prepare for this by calling
to `DeclBaseName getBaseName()` instead where appropriate.
2017-05-28 19:13:24 -07:00