Commit Graph

1327 Commits

Author SHA1 Message Date
Dmitri Gribenko de8322951c Merge pull request #1726 from compnerd/autolink-extract
build: install swift-autolink-extract always
2016-03-24 22:18:21 -07:00
Xi Ge 8c523006ae swift-ide-test: Add an option to allow users to specify a second source file to test with. 2016-03-24 17:44:46 -07:00
David Farler 76b31a9343 swift-reflection-test: Increase reading robustness
- Check return values from `read`
- Make the reflstr section optional, as it can be stripped by
  -strip-reflection-names.
2016-03-24 12:05:18 -07:00
David Farler 23a823a3ed Remote Mirrors: Make MemoryReader a real class
Make the reader a class interface internally, with the
bag-of-function pointers via the eventual C API being the
special case.
2016-03-24 12:05:18 -07: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 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
Doug Gregor 593932741c Remove historical flags -enable-omit-needless-words/-enable-infer-default-arguments/-enable-swift-name-lookup-tables.
NFC; all of these options are always-on now and we no longer have a
way to turn them off.
2016-03-22 17:04:19 -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 33c53a12eb ASTPrinter: Pass the bracket options to pre and post printing callbacks.
Need this for rdar://24912860
2016-03-22 14:49:22 -07:00
Saleem Abdulrasool 6749cfeafb build: install swift-autolink-extract as aux-driver-tools
swift supports cross-compilation.  The autolink extract tool is needed when
targeting non-Darwin targets even on Darwin.  Install it as the aux-driver-tools
component.  Update the Linux builds to install this component by default.
2016-03-22 09:38:53 -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 66fb8062fe ModulePrinting: For decls without doc-comment, we print the doc-comment associated with their conformances, if any.
Inspired by rdar://24409720
2016-03-21 14:35:32 -07:00
Ben Langmuir 65719e8ce0 Merge pull request #1686 from regnerjr/swift-format_SR-146
[SourceKit] Move Code Formatting Logic to libIDE
2016-03-21 13:52:09 -07:00
John Regner 5b9fc3d832 [SourceKit] Add reformat function to libIDE
Move all the rest of the code formatters and helper classes out of the interface.
2016-03-18 21:37:00 -07:00
John Regner e63678579b [SourceKit] Moved Formatting files into place in libIDE 2016-03-18 21:19:57 -07:00
John Regner 03339da009 [SourceKit] Renamed SwiftEditorLineRange -> LineRange
Also cleaned up whitespace
2016-03-18 21:19:55 -07:00
John Regner 0f48488c3a [SourceKit] Move LineRange and CodeFormatter to swift::ide 2016-03-18 21:18:23 -07:00
John Regner 57522ad8b5 [SourceKit] Remove Consumer from CodeFormatter.
This makes it easire to format all text, nomatter its source.
2016-03-18 20:58:21 -07:00
John Regner 377397e4af [SourceKit] CodeFormatter should know which options to apply.
CodeFormatter no longer depends on EditorDocument
2016-03-18 20:58:19 -07:00
John Regner 43cc6ffafc [SourceKit] Move to functions swift::ide namespace
Moved getTrimmedTextForLine &  getExpandedIndentForLine
This help reduce the coupling to SwiftEditor Document and allows us
to format any text, whether or not is currently in an editor doc.
2016-03-18 20:58:17 -07:00
John Regner 3283a8cc03 [SourceKit] Pass Text around more.
This helps de-couple us from the Swift Editor Document.
2016-03-18 20:51:18 -07:00
John Regner 8f728f31ad [SourceKit] Decouple SwiftEditorDocument from Formatting
Move FormatContext & FormatWalker into new file.
Move CodeFormatOptions out of SwiftEditorDocument.
Move functions getTrimmedLineOffset & getLineOffset
out of SwiftEditor Document.
Rename Offset of Line functions
Declaring that the get the offset of some line index is more clear.
2016-03-18 20:51:16 -07:00
David Farler 579ce977f0 swift-reflection-test: Replace Mach IPC with pipes
This is more amenable to cross-platform remote reflection tests.

Also add a new callback to the memory reader: getSymbolAddress,
which will be used for getting the addresses of nominal type
descriptors for concrete and fixed generic types.
2016-03-17 19:02:01 -07:00
Ben Langmuir 0f53e1a5be [IDE] Also print decl refs for reconstruct type
Makes it easier to check implicit decls, or things from other modules.
Only print the ones we haven't seen before to reduce the output.
2016-03-16 21:24:04 -07:00
Ben Langmuir ba7ec862ce [IDE] Try to make the reconstruct type output more amenable to testing NFC
Shorten the boilerplate and Put the stuff you want to match in tests at
the beginning of the lines (the resolved decl or type).

Also put the USR/mangled name into the output (at the very end), since
it is useful when trying to debug a failure.
2016-03-16 21:24:04 -07:00
Slava Pestov 552a6ad1b7 Sema: Remove some dead code for "delayed members", NFC
This was added at some point to make 'import Foundation' faster in the REPL.
What we really care about though is not delaying synthesis of the rawValue
accessors (those are synthesized on demand anyway), but delaying the
conformance check to RawRepresentable.
2016-03-16 18:35:31 -07:00
Xi Ge 81f08175f2 swift-ide-test: Add an option to specify whether printing new lines between members. 2016-03-16 17:29:37 -07:00
Brian Gesiak 38ceced779 Merge pull request #1704 from modocache/unrevert-target-specific-glibc
[Un-revert][Glibc] Configure modulemap for target, not host
2016-03-16 19:25:37 -04:00
Ben Langmuir a760b70827 Fixup recent formatting boo boos I've committed
I always think I'll remember to clang-format before pushing, but I don't
always follow through.
2016-03-16 15:58:11 -07:00
Ben Langmuir 47d2c24078 [IDE] Factor code that looks up USRs into getDeclFromUSR 2016-03-16 15:43:02 -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
Brian Gesiak c6121d56b1 [Un-revert][Glibc] Configure modulemap for target, not host
This reverts commit f2154ee94d, which reverted 04e1cd5bda. The original
commit needed to be reverted because of an issue in which install
targets were added to OS X builds that did not target Linux. This
addresses that issue by guarding all the Linux-only CMake logic with a
check for the SDK being built.
2016-03-16 14:55:33 -04:00
Michael Ilseman f2154ee94d Revert "[Glibc] Configure modulemap for target, not host" 2016-03-16 09:47:52 -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
Brian Gesiak 5e24af7fba Merge pull request #1679 from modocache/target-specific-glibc
[Glibc] Configure modulemap for target, not host
2016-03-16 01:08:16 -04:00
Xi Ge a9727dbace ModuleGroup: Add several subgroups. 2016-03-15 17:00:00 -07:00
Brian Gesiak 04e1cd5bda [Glibc] Configure modulemap for target, not host
The current Glibc CMakeLists.txt uses the host machine to determine
which modulemap to use. The same modulemap can't be used for all
platforms because headers are available in different locations on
different platforms.

Using the host machine to determine which modulemap to configure and
place at a specific path in the resource dir is fine, so long as:

1. Only one Glibc is being compiled in a single CMake invocation.
2. The target machine needs the same modulemap as the host.

https://github.com/apple/swift/pull/1442 violates both of these
assumptions: the Glibc module for both Linux and Android is compiled
at the same time, and the Android target can't use the Linux modulemap.

This commit instead uses the target(s) to determine which
modulemap to use. The modulemap is configured and placed in an OS-
and architecture-specific directory in the resource dir. The path to
that modulemap is referenced by the ClangImporter (since it is no
longer at a path that is automatically discovered as an implicit
modulemap).
2016-03-15 18:40:17 -04:00
Xi Ge d0e176810f [Serialization] Serialize doc comments for extensions. Need this for rdar://25157796
We did not serialize them because getting USR for extensions is tricky (USRs are
usually for value decls). This commit starts to make up an USR for an extension by combining
the extended nominal's USR with the USR of the first value member of the extension. We use
this made-up USR to associate doc comments when (de)serializing them.
2016-03-15 13:35:07 -07:00
Ben Langmuir e17df9619b [SourceKit] Factor out wrapper code from reportCursorInfo
The guts of the callback are the interesting part that we want to share
between offset-based and usr-based cursor info. Pull the code that
actually finds the cursor info up into the caller.
2016-03-15 09:19:44 -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
practicalswift f38b613f4b [Python] Remove unused method function_exists(…) in capi.py 2016-03-12 23:47:57 +01:00
Ben Langmuir 2e56083a43 [IDE] Switch to using symbol names for reconstructing types
This is closer to what the debugger and USRs will look like, and
includes more context needed in some cases.
2016-03-11 15:39:32 -08:00
Ben Langmuir fd7c2fbc46 [IDE] Remove dead code NFC 2016-03-11 14:25:38 -08:00