Commit Graph

1269 Commits

Author SHA1 Message Date
Ben Langmuir
dd29bace34 [SourceKit] Tag subscript element types like function return types
FIXME.count -= 1

rdar://problem/24292226
2016-02-25 13:05:06 -08:00
Ben Langmuir
36cc043481 [SourceKit] Be consistent about using the decl.var.parameter.name.local tag
FIXME.count -= 3

rdar://problem/24292226
2016-02-25 10:27:53 -08:00
Ben Langmuir
86bc29cfc6 [SourceKit] Add type tags for parameters and return types
When the type is not just a reference to a nominal type, we still need
to be able to delineate it.

rdar://problem/24292226
2016-02-25 09:07:16 -08:00
Xi Ge
54d91c91da [test] Since group info is independent from doc comment table, strengthen the test to make sure every display decl from stdlib has an associated group name. 2016-02-24 21:05:27 -08:00
Doug Gregor
1c2ce6f22f [Omit needless words] Add a flag to let us skip overrides and witnesses.
When performing Swift API dumps, it's helpful to avoid putting
redundant APIs into the results. Therefore, filter out any APIs that
are overrides of another API or are witnesses for a protocol
requirement, since the original definition (that doesn't override any
other or is a protocol requirement) is what determines the APIs name.
2016-02-24 17:47:31 -08:00
Xi Ge
5270e62bb4 [test] swift-ide-test: Add a test to ensure that future stdlib public source files are properly grouped. 2016-02-24 16:21:26 -08:00
Ben Langmuir
0216eecf92 [SourceKit] Factor out getTagForPrintNameContext NFC
rdar://problem/24292226
2016-02-24 15:35:07 -08:00
Ben Langmuir
93f05fc101 [SourceKit] Update doc comment for FullyAnnotatedDeclarationPrinter
We annotate more structure now, so put it in the example.

rdar://problem/24292226
2016-02-24 15:26:46 -08:00
Ben Langmuir
d3e98f52ef [SourceKit] Add parameter.name.local and parameter.name.external tags
... for the fully annotated declarations. More substructure more better.
This has to go through a callback mechanism similar to printDeclLoc and
printDeclPre since it should be scheduled after both of those are
printed.

rdar://problem/24292226
2016-02-24 15:26:46 -08:00
Ben Langmuir
3e9bfa137d [SourceKit] Add decl.var.parameters entries to the fully annotated decl
This is the first part of adding parameter substructure so that clients
can reason about more of the function declaration.

rdar://problem/24292226
2016-02-24 11:39:47 -08:00
Ben Langmuir
184efb5e1c [SourceKit] Differentiate decl.var.local from decl.var.parameter
For decls it can be interesting to know when a decl is a parameter vs. a
local. This will be needed for the new fully annotated decls. For refs
it's usually not interesting.

rdar://problem/24292226
2016-02-24 11:37:00 -08:00
Erik Eckstein
dcb458676b Revert "Revert "[Omit needless words] Always dump both argument label and parameter name.""
This reverts commit 836cf9ea71.

Sorry, I reverted the wrong commit
2016-02-23 07:41:50 -08:00
Erik Eckstein
836cf9ea71 Revert "[Omit needless words] Always dump both argument label and parameter name."
This reverts commit c0b432d7eb.

There is a crash in StdlibUnittests on i386.
2016-02-22 21:30:41 -08:00
Xi Ge
dd74e1c0ef [Serialization] Add a new front-end argument to specify the path of the group info file. NFC 2016-02-22 20:28:39 -08:00
Dmitri Gribenko
7235595264 Merge pull request #1108 from tinysun212/porting-to-cygwin
Porting to cygwin
2016-02-22 18:53:30 -08:00
Doug Gregor
c0b432d7eb [Omit needless words] Always dump both argument label and parameter name.
The default first argument label rules are confusing reviewers looking
at API dumps. Even though it's more verbose, always put in argument
labels explicitly.
2016-02-22 15:11:16 -08:00
Xi Ge
bf1436a367 ASTPrinter: Move the logic for collecting all module groups from SourceKit to an IDE API, NFC. 2016-02-22 11:50:34 -08:00
Roman Levenstein
949471f629 Use SILOptions to decide if SIL needs to be optimized.
Checking IRGenOptions.Optimize was not the most direct and reliable way to detect if SIL needs to be optimized.
2016-02-21 22:33:23 -08:00
Han Sangjin
e06c7136cb Porting to Cygwin. rebased and squashed 2016-02-22 13:20:21 +09:00
practicalswift
e395ea0f0e [Python] Follow standard Python docstrings conventions (PEP-0257).
https://www.python.org/dev/peps/pep-0257/
2016-02-20 17:11:57 +01:00
Argyrios Kyrtzidis
10dfe5ab5a [SourceKit] Fix issue where the offset of diagnostic fixits is not updated after an edit request.
rdar://23919223
2016-02-19 19:18:44 -08:00
Xi Ge
1872214d40 Swif-ide-test: add a parameter to specify the group names to print. 2016-02-19 17:21:28 -08:00
Nadav Rotem
1347757c7b Merge pull request #1368 from practicalswift/self
[Python] The first argument of a Python method should be named "self"
2016-02-19 14:15:45 -08:00
practicalswift
75740f7872 [Python] The first argument of a Python method should be named "self" 2016-02-19 21:26:43 +01:00
Argyrios Kyrtzidis
bda072bb85 [SourceKit] Introduce a request to force a 'crash' for testing purposes. 2016-02-19 11:48:15 -08:00
Xi Ge
44bf526f38 [gardening] Avoid copying source locs to a new vector, make a wrapper for token iterator. NFC 2016-02-18 15:29:40 -08:00
Xi Ge
c5408c8beb [SourceKit] Indentation: indent the first element in a collection expression according to the position of the left bracket, if they are not in the same line.
We treat this as a mutated version of sibling-based indentation, where an extra level is needed. rdar://24630624
2016-02-18 13:28:44 -08:00
Argyrios Kyrtzidis
64185c7ea9 [SourceKit] Fix leak in 'CodeCompleteSetCustom' request.
rdar://23769190
2016-02-16 18:40:59 -08:00
Argyrios Kyrtzidis
bc21bbe806 [SourceKit] Add a 'mangle simple classes' request, intended to supersede _swift_mangleSimpleClass.
rdar://23525281
2016-02-16 18:32:46 -08:00
Dmitri Gribenko
54b6c2e5b8 Merge pull request #1329 from practicalswift/remove-request-mangle-simple-class
[gardening] Remove unused LazySKDUID RequestMangleSimpleClass
2016-02-16 18:01:26 -08:00
Xi Ge
dfd0a86986 [SourceKit] Teach SourceKit to recognized USRs for synthesized extensions.
So that IDE can jump to the synthesized extensions instead of the actual extensions.
2016-02-16 17:22:58 -08:00
practicalswift
a2ceef5c3e [gardening] Remove unused LazySKDUID RequestMangleSimpleClass
Introduced in commit 6cbcb7b56f
2016-02-16 22:44:35 +01:00
Argyrios Kyrtzidis
6cbcb7b56f [SourceKit] Introduce a new request for demangling symbol names.
This is SourceKit support for the swift_demangle_getDemangledName/swift_demangle_getSimplifiedDemangledName APIs.
rdar://23525281
2016-02-16 12:16:56 -08:00
Xi Ge
b480ab1f5f AnnotatingPrinter: For members from a synthesized extension, we append the target's USR to their original USR to differentiate them.
This is required to jumping to definition correctly, NFC for now.
2016-02-16 11:41:26 -08:00
Xi Ge
d4f704bb2f ASTPrinter: Add pre and post callbacks for printing synthesized extensions and call them.
This is necessary for jump to synthesized extensions in IDE.
2016-02-15 17:41:49 -08:00
Argyrios Kyrtzidis
51d4e27e7b [SourceKit] Introduce a request the reports the protocol version.
rdar://22953908
2016-02-15 14:54:06 -08:00
Doug Gregor
9832468dac Install swift-api-dump.py script to make it easier to use 2016-02-15 11:38:00 -08:00
Argyrios Kyrtzidis
95ee932e0c [SourceKit] For sourcekitd_variant_json_description_copy, make sure to not escape the unicode characters in a string.
Otherwise it will be invalid json.
rdar://24617070
2016-02-15 10:37:56 -08:00
practicalswift
06059cb448 [gardening] Fix recently introduced typo: "a associated" → "an associated" 2016-02-13 11:03:29 +01:00
David Farler
c7d4d25d53 [Reflection] Adopt the MemoryReader in swift-reflection-test
Also do a little bit of gardening of the various headers.
2016-02-12 16:34:28 -08:00
David Farler
69bb6235fa [Reflection] Serialize associated types for nominal decls
This closes the loop on being able to resolve dependent member types
during remote reflection.
2016-02-12 16:34:28 -08:00
David Farler
c5298c0b52 [Reflection] Start fleshing out the remote mirrors library
- Don't depend on LLVM Support and swiftBasic as this will bring in
  llvmSupport and other heavy dependencies, which we don't build for
  non-host architectures right now anyway.

- Add a reader template that works with the same (albeit somewhat
  clunky) interface in-process with the runtime and remotely, by having
  the memory tool supply a function that will copy data from the remote
  process.

- Add a Buffer type to abstract indirecting pointers in a remote address
  space, which is handled by the memory reader.

- Start sketching out the C remote mirrors interface.
2016-02-12 16:34:28 -08:00
Ben Langmuir
e327378b24 [SourceKit] Add annotation tags for decl names
This splits the printDeclNamEndLoc callback into NameEndLoc and
NameOrSignatureEndLoc variants to differentiate whether or not
signatures are included.  All existing clients move to
NameOrSignatureEndLoc to maintain the current behaviour. I'm still not
completely happy with how these are named, but I dont' have any better
ideas right now.

rdar://problem/24292226
2016-02-12 15:57:28 -08:00
Dmitri Gribenko
e4f4b261ba Merge pull request #1292 from practicalswift/fix-too-many-leading-hashes
[Python] Fix "too many leading '#' for block comment"
2016-02-12 14:32:49 -08:00
Jordan Rose
c90511a74e Merge pull request #1289 from jrose-apple/conditional-compilation-blocks
Rename "build configurations" to "conditional compilation blocks".
2016-02-12 14:02:21 -08:00
practicalswift
970216434d [Python] Fix "too many leading '#' for block comment"
See discussion with @gribozavr in https://github.com/apple/swift/pull/1287#issuecomment-183413319
2016-02-12 23:02:10 +01:00
Ben Langmuir
29ce0fec1b [SourceKit] Stub in a new "fully_annotated_decl" field to cursor info
This will eventually replace the existing annoteded_decl for cursor
info, and be added to doc info as well.  For now put in under a
different field name to not break existing clients.

For now, just reimplement the existing annotations but put in tag names
that are specific to the kind of type/decl. The goal is to fill in a
lot more substructure/detail over time.

Incidentally flesh out some cursor info tests.

rdar://problem/24292226
2016-02-12 12:56:11 -08:00
Jordan Rose
6272941c5c Rename "build configurations" to "conditional compilation blocks".
...because "build configuration" is already the name of an Xcode feature.

- '#if' et al are "conditional compilation directives".
- The condition is a "conditional compilation expression", or just
  "condition" if it's obvious.
- The predicates are "platform conditions" (including 'swift(>=...)')
- The options set with -D are "custom conditional compilation flags".
  (Thanks, Kevin!)

I left "IfConfigDecl" as is, as well as SourceKit's various "BuildConfig"
settings because some of them are part of the SourceKit request format.
We can change these in follow-up commits, or not.

rdar://problem/19812930
2016-02-12 11:09:26 -08:00
Daniel Duan
efe230774b [AST] rename some isXXX methods to getAsXXX
There's a group of methods in `DeclContext` with names that start with *is*,
such as `isClassOrClassExtensionContext()`. These names suggests a boolean
return value, while the methods actually return a type declaration. This
patch replaces the *is* prefix with *getAs* to better reflect their interface.
2016-02-11 16:23:40 -08:00
Erik Eckstein
9e28192ea3 Option -print-llvm-inline-tree for printing the inline-tree of the LLVM module.
This is useful to get information about what inlined functions contribute to the code size.
2016-02-10 12:14:23 -08:00