Commit Graph

570 Commits

Author SHA1 Message Date
Ben Langmuir
6c2ec9a1b1 [CodeCompletion] Do our best to set NotRecommended on other-module results
These results are cached, so we can't use the type-relation.  Instead we
use a small hack of checking the textual return type for "Void".  This
is obviously not ideal, but it lets us detect the most important cases.

rdar://problem/22810741
2016-03-30 16:57:18 -07:00
Xi Ge
37f5a0390a [SourceKit] DocInfo: Add a new entry to indicate the default implementation of a protocol member in its extensions. rdar://25032869 2016-03-30 14:26:17 -07:00
Ben Langmuir
968b0491b8 [CodeCompletion] Make Void-returning functions "NotRecommended" in typed context
When we know we're expecting an expression that returns a value, make
the completion "NotRecommended" to deprioritize it.

rdar://problem/22810741
2016-03-29 14:20:25 -07:00
Chris Lattner
34ca3e95b4 Merge pull request #1812 from manavgabhawala/master
[Parser] Cleans up parsing of function parameter attributes
2016-03-29 13:22:39 -07:00
Xi Ge
589d9a8a3e CodeFormat: Avoid indenting the close bracket of a closure if the closure is on the RHS of an assignment expression. rdar://24507930 2016-03-29 13:08:55 -07:00
Manav Gabhawala
7862f104c9 [Parser] Cleans up parsing of parameter attributes. Implements SE-0053. Fixes SR-979, SR-1020 and cleans up implementation of SE-0003. Provides better fix-its and diagnostics for misplaced 'inout' and prohibits 'var' and 'let' from parameter attributes 2016-03-29 13:55:46 -04:00
hitstergtd
d7c504e64e Remove apostrophe from filename 2016-03-25 14:38:53 +00:00
Xi Ge
fda0751cae [SourceKit] In interface-gen request, allow clients to send SourceKit an interested USR from which we can infer the group name. 2016-03-23 17:26:44 -07:00
Xi Ge
b4d0cb4ffe ModulePrinting: Avoid printing duplicated members in synthesized extensions. 2016-03-23 15:19:16 -07:00
Xi Ge
b3cde464dd [SourceKit] For consistency, using underscore instead of hyphen in recently introduced key names. NFC 2016-03-22 22:21:56 -07:00
Xi Ge
7c45425718 [SourceKit] When indexing modules, report group names for symbols.
We need this to support open-quickly for stdlib symbols.
2016-03-22 22:13:57 -07:00
Xi Ge
760c2f12cf [SourceKit] Update the way of representing USRs for synthesized extensions.
Instead of using 'key.usr' and 'key.synthesizedusr', we start to use 'key.usr' and 'key.original-usr' so
that 'key.usr' is consistently being the unique ID for a code entity.
2016-03-22 15:38:41 -07:00
Xi Ge
f338bdfbb7 [SourceKit] Incorporate synthesized extensions into DocInfo request. rdar://24912860
This commit reuses our code for generating synthesized extensions from module printing to enhance
documentation generation.
2016-03-22 14:49:22 -07:00
Xi Ge
3dd149ab99 [SourceKit] CursorInfo: The result of cursor info for a module name starts to include group names in that module. 2016-03-21 17:20:18 -07:00
Ben Langmuir
187bc9fbb9 [CursorInfo] Annotate tuple types in fully annotated decl
We already annotate the elements, this just adds annotations around the
outer parentheses, including when the tuple is unit.

rdar://problem/25147925
2016-03-21 16:31:52 -07:00
Xi Ge
2c75cfba39 [SourceKit] Similar with what we do for module printing, for quick help, elevate the doc-comment from conformances if the decl itself does not have associated doc-comment. rdar://24409720 2016-03-21 15:05:02 -07:00
Xi Ge
5d054cb5df [Test] Add a stdlib-independent test to ensure that we never print @warn_unused_result in quick help.
Suggested by @benlangmuir
2016-03-21 11:30:56 -07:00
Xi Ge
701277e751 Allow SourceEntityWalker to visit operator decls, so that they can get indented properly. rdar://25246628 2016-03-19 14:47:58 -07:00
Xi Ge
5dbabf5cb3 [Test] SourceKit: Add a test for indenting unnamed parameters. rdar://25178551 2016-03-18 17:24:31 -07:00
Xi Ge
c85591bc25 [SourceKit] CursorInfo: not showing @warn_unused_result in quick help. 2016-03-18 16:39:27 -07:00
Ben Langmuir
14ce05977c Disable CodeFormat/indent-implicit-getter.swift while we investigate a crash 2016-03-18 12:08:29 -07:00
Ben Langmuir
b5f4e9d45d [SourceKit] Rename result_test to more descriptive name cursor_generic_enum 2016-03-17 16:31:46 -07:00
Ben Langmuir
503887c5f2 [SourceKit] Split SourceDocInfo tests into CursorInfo and RelatedIdents subdirectories
Unless you're familiar with the way the swift source code is organized,
it's not clear what "SourceDocInfo" means, or how it is different from
DocSupport, etc.  Move the tests into directories that are named based
on their request (note: we already had one test under CursorInfo, which
just made things even more confusing).
2016-03-17 16:31:46 -07:00
Ben Langmuir
4e33d50c7f [CodeCompletion] Bump the priority on keywords in the
experimental code-completion path. Move them right before "other module"
results. This is a bit of a hack. Ideally, we would have a much better
idea which keywords are actually legal/likely in a given context and
could prioritize them even more.  Since today we basically splat in all
the keywords, keep them below the current module results so they don't
overwhelm us.

rdar://problem/25119529
2016-03-16 14:58:35 -07:00
Ben Langmuir
3976acaf09 [SourceKit] Fix crash in getUIDForDecl() with invalid operator
We may know syntactically that we have an operator without being able to
find the associated operator decl when the input is invalid/incomplete.
Don't crash when that happens, and just fallback to a "free function"
decl kind.

rdar://problem/25196625
2016-03-16 14:21:54 -07:00
Ben Langmuir
88c1065133 [CodeCompletion] Expose the existing option for whether to include exact matches
So we can play with it more easily.
2016-03-16 14:21:53 -07:00
Ben Langmuir
94c23c3e1f [CodeCompletion] Include exact matches even when adding inner results
... in the experimental code-completion path. They seem to be generally
useful as a baseline result still as long as they are guaranteed to be
the first result.

rdar://problem/25177968
2016-03-16 14:21:53 -07:00
Ben Langmuir
d36708838b [SourceKit] Allow cursorinfo to take a USR instead of an offset
This eventually calls the code from ReconstructType to try to find the
Decl for a USR. For now, only works in a file, not a generated
interface.

rdar://problem/25017817
2016-03-16 09:42:02 -07:00
Xi Ge
a9727dbace ModuleGroup: Add several subgroups. 2016-03-15 17:00:00 -07:00
Ben Langmuir
8030d44826 [SyntaxMap] Fold unary minus into numeric literals
Unlike other prefix operators, unary minus is folded into the
NumberLiteralExpr in the parser. This commit recreates this effect in
the lexer-based syntax map so that token ranges will include the leading
minus.

rdar://problem/20205885
2016-03-15 10:40:52 -07:00
Ben Langmuir
11c8f07cc9 [SourceKit] Annotate dynamic Self type in protocol *extensions*
D'oh, forgot to resolve a FIXME in my protocol commit. Now working there
too except that it's giving USRs on the original protocol instead of the
extension.  It's not clear how to get back to the extension from the
archetype though.

rdar://problem/25128561
2016-03-14 21:34:08 -07:00
Ben Langmuir
d948ed68ac Remove dead FIXMEs from cursor_info test NFC 2016-03-14 19:57:24 -07:00
Ben Langmuir
1b08d83b6f [SourceKit] Annotate class method dynamic Self return types
Pass through the original Type in addition to the TypeDecl so that we
can distinguish DynamicSelfType with underlying ClassType from just any
old ClassType.

rdar://problem/25158493
2016-03-14 19:43:54 -07:00
Ben Langmuir
ca198b0320 [SourceKit] Annotate dynamic Self type in protocols
Treat it like the static Self type, which is good enough for producing
USRs in CursorInfo. This doesn't handle class dynamic self, which needs
some kind of API change to printTypeRef to make it work.

rdar://problem/25128561
2016-03-14 18:17:55 -07:00
Ben Langmuir
0bdf4a9824 Merge pull request #1634 from compnerd/test-fixes-2
fix tests for FileCheck behaviour (DAG edition)
2016-03-14 09:37:42 -07:00
Ben Langmuir
f899413f1d [SourceKit] Annotate default argument keywords #file/#line/...
rdar://problem/25128866
2016-03-13 12:26:10 -07:00
Ben Langmuir
0e8978aaf0 [SourceKit] Annotate parameter noescape/autoclosure attributes
rdar://problem/25128165
2016-03-13 12:26:09 -07:00
Saleem Abdulrasool
4984c96caa fix tests for FileCheck behaviour (DAG edition)
FileCheck does not support the combination negation.  These tests were incorrect
and silently passing rather than checking what they intended.
2016-03-12 20:12:23 -08:00
Ted Kremenek
aec582b6db Merge pull request #1647 from johnno1962a/master
New test for common SourceKit crash
2016-03-12 08:15:53 -08:00
John Holdsworth
b92f09fc12 Add of comment affected line offsets of test 2016-03-12 00:20:08 +00:00
Daniel Duan
7cabf3555b [Parser] update test for SE-0040 changes 2016-03-11 16:01:37 -08:00
John Holdsworth
474f043c93 Make test self-contained using CHECK: 2016-03-11 23:47:42 +00:00
John Holdsworth
3a8a8e080e New test for common SourceKit crash 2016-03-11 23:24:11 +00:00
Xi Ge
5168083bf3 ModulePrinting: Print new lines between members of a decl. 2016-03-11 12:26:04 -08:00
Ben Langmuir
819b5e7d3f Merge pull request #1601 from compnerd/test-fixes
Fix tests for FileCheck behaviour
2016-03-10 15:36:19 -08:00
Saleem Abdulrasool
0b0ea6f984 fix tests for FileCheck behaviour
FileCheck does not support the combination negation.  These tests were incorrect
and silently passing rather than checking what they intended.
2016-03-09 16:44:33 -08:00
Max Moiseev
02006f20bc Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines 2016-03-09 16:05:03 -08:00
Ben Langmuir
6581eba8e6 [CodeCompletion] Improve ordering of prefix matches vs popular names
In the experimental code-completion path.

rdar://problem/24843463
2016-03-09 11:23:06 -08:00
Chris Lattner
ae919bd447 implement mangling support for typealias archetypes, allowing them to get basic USRs. 2016-03-08 21:18:39 -08:00
Xi Ge
ce12c6dc95 ModulePrinting: Add an option to synthesize unconditional extensions; true by default. 2016-03-08 18:34:38 -08:00