Commit Graph

703 Commits

Author SHA1 Message Date
Jordan Rose
c644c9a538 [swift-ide-test] Consolidate -print-ast-typechecked and ...-non-typechecked.
Also, don't access options::MangledNameToFind directly from doPrintAST;
pass it in instead.

Swift SVN r21734
2014-09-05 00:31:12 +00:00
Doug Gregor
29d2f6375c Make swift-ide-test's options respect the defaults.
Swift SVN r21705
2014-09-04 15:48:23 +00:00
Doug Gregor
b6248c8342 Remove the -enable-objc-failable-initializers option.
As part of this, failable initializers get enabled by default for
swift-ide-test.


Swift SVN r21704
2014-09-04 15:31:02 +00:00
Jordan Rose
1f5d81d5dc Teach swift-ide-test to look up entities by mangled name.
Currently this only handles top-level nominal types. We're just trying to
emulate what the debugger does when it needs to go from a mangled name to
an AST node, so it's okay that the cases handled here are very restricted.
We just want to make sure that the debugger is /able/ to do what it needs
to do.

This does not yet handle nested (non-top-level) values; that will require
changes to DeclContext::lookupQualified.

Part of rdar://problem/17632175

Swift SVN r21690
2014-09-03 23:42:13 +00:00
Andrew Trick
9ce5894db1 Fix raw_fd_ostream calls for ToT constructor changes
Swift SVN r21447
2014-08-25 23:29:36 +00:00
Doug Gregor
5709a86f2f Start importing Objective-C initializers and factory methods using failable initializers.
In this mode, use nullability information on the result type of the
initializer or factory method to determine failability of the
initializer. This is behind the flag
-enable-objc-failable-initializers until we have the SILGen support in
place.



Swift SVN r21341
2014-08-21 04:50:20 +00:00
Connor Wakamo
6e6e20ab4b [test] Added an integrated "-test-createCompilerInvocation" tool to swift-ide-test.
This is very basic: it just sees whether, given a set of driver arguments, the
swift::driver::createCompilerInvocation API returns a non-null
CompilerInvocation.

Unlike other modes of swift-ide-test, this mode requires that
"-test-createCompilerInvocation" be the first argument passed to swift-ide-test.
This is because it is handled separately from llvm::cl::ParseCommandLineOptions
so the remaining arguments can be passed through directly to
swift::driver::createCompilerInvocation without any interference from that
parser.

Additionally, added a test which uses this tool to try to create a
CompilerInvocation for a handful of basic driver commands.

Swift SVN r20973
2014-08-03 19:04:27 +00:00
Ben Langmuir
40111a461a Fix module interface printing for submodules
Previously we only printed submodules that were imported by the
top-level module, which worked in the common case of inferred submodules
of frameworks (e.g. Foundation.NSArray), but fell over when the
submodules were explicit (e.g.  OpenGL.GL), or just not imported by the
top-level module.

Swift SVN r20855
2014-07-31 22:06:53 +00:00
Argyrios Kyrtzidis
3175251bb1 [IDE] Handle annotation of clang submodule imports properly.
rdar://17780613

Swift SVN r20595
2014-07-26 20:58:19 +00:00
Doug Gregor
ff92b5f007 Remove -[no]implicit-objc-with.
Toggling this option causes funny things to happen, and there's no
point in keeping it.

Swift SVN r20565
2014-07-25 22:13:46 +00:00
Doug Gregor
e9037bcfa7 Default swift-ide-test to -implicit-objc-with like the rest of the world.
We require some level of consistency between the way the overlays were
built and what we work with in our mock SDK. The IDE/sdk_sugar.swift
test failure was because the overlay referenced "init(coder:)" while
the test was looking for "init(withCoder:)". Hilarity ensued
<rdar://problem/17791048>.

This only impacts testing.

Swift SVN r20564
2014-07-25 22:13:43 +00:00
Doug Gregor
4d524d7b19 API notes: record the module name in the control block.
Swift SVN r20412
2014-07-23 16:32:05 +00:00
Dmitri Hrybenko
1007ef3f95 Module interface printing: add an option to filter declarations based on
access control

Swift SVN r20399
2014-07-23 15:03:58 +00:00
Doug Gregor
ec32bc044d API notes: separate classes from protocols in the binary representation.
Swift SVN r20277
2014-07-21 20:23:55 +00:00
Doug Gregor
2faeb84e0c Rename ObjCClassInfo to ObjCContextInfo, to also cover protocols.
Swift SVN r20262
2014-07-21 17:30:16 +00:00
Doug Gregor
076d310132 Remove -import-tighter-objc-types option; we're turning it on by default.
Swift SVN r20191
2014-07-18 23:25:38 +00:00
Doug Gregor
422fc4b00a API notes: factor 'unavailable' into a common base for methods/classes/properties.
Now that we have this, move the ban on NSInvocation into
KnownObjCMethods.def so that it's enforced via API notes.

Swift SVN r20190
2014-07-18 23:25:37 +00:00
Doug Gregor
bedb5f116a Move KnownObjCMethods.def into swift-ide-test; that's the only place using it.
Swift SVN r20121
2014-07-17 23:26:55 +00:00
Doug Gregor
31ced1260d Finish renaming "side car" to "API notes"
Swift SVN r20088
2014-07-17 15:05:40 +00:00
Doug Gregor
72a6ea1193 Rename SideCar library to the APINotes library
Swift SVN r20087
2014-07-17 15:05:39 +00:00
Dmitri Hrybenko
3f4436a272 Code completion: add simplistic support for keywords
rdar://15992120


Swift SVN r20082
2014-07-17 12:02:21 +00:00
Doug Gregor
d4e702dc47 Side car: simplify binary format by removing the module ID.
Since we'll be keeping per-module data, there is no need to index the
Objective-C class table via the module as well.


Swift SVN r20074
2014-07-17 05:16:11 +00:00
Doug Gregor
702ed73987 Side car: split "known Objective-C methods" by module.
Update the swift-ide-test harness to look at the data for specific
modules, rather than as one large model.


Swift SVN r20073
2014-07-17 05:11:33 +00:00
Doug Gregor
e804dabfe0 Fix spacing in diagnostic
Swift SVN r20060
2014-07-16 23:51:22 +00:00
Doug Gregor
a0f09b5ce3 Side car reader: wire up the Objective-C selector and method tables.
We can now round-trip all of KnownObjCMethods.def through the side-car
writer and reader.


Swift SVN r20059
2014-07-16 23:44:42 +00:00
Doug Gregor
b73b33ed8b Side car reader: load Objective-C property information.
Validate it against KnownObjCMethods.def.


Swift SVN r20056
2014-07-16 22:53:24 +00:00
Doug Gregor
84c5af60b2 Side car reader: wire up identifier table and Objective-C class table.
Verify this by round-tripping the class information in KnownObjCMethods.def.


Swift SVN r20054
2014-07-16 22:42:53 +00:00
Doug Gregor
b3a18ee2d4 Add a skeleton of a side-car reader, along with basic testing.
Swift SVN r20044
2014-07-16 21:46:53 +00:00
Doug Gregor
74f29fe955 Side car test: encode all method information in the side car data.
At this point, we should be capturing all of the information in
KnownObjCMethods.def within the binary side car data file.


Swift SVN r20017
2014-07-16 07:20:59 +00:00
Doug Gregor
b3d7c2e924 Side car test: handle data associated with Objective-C properties.
Swift SVN r20016
2014-07-16 07:14:30 +00:00
Doug Gregor
5a8b0f44ad Side car testing: start emitting Objective-C methods
Swift SVN r20015
2014-07-16 07:11:50 +00:00
Doug Gregor
4c7a1e598f Side car: clean up representation of Objective-C properties and methods.
We don't need module names for properties and methods, since they're
effectively unique within a class. Moreover, use all of the
distinguishing characteristics as the key for the stored
representation in the side car writer. No visible functionality
change; this is staging.



Swift SVN r20008
2014-07-16 05:58:37 +00:00
Doug Gregor
19488ac835 Side car data: emit Objective-C class information into the side car file.
For Objective-C classes, we only record the default nullability of the
class.


Swift SVN r19995
2014-07-16 00:34:33 +00:00
Doug Gregor
e36c31d03c Side car data: emit side car file from KnownObjCMethods.def.
Extend swift-ide-test with a mode that generates a side car file from
the built-in KnownObjCMethods.def, which gives us an easy way to
source the information we want in the side car. This is a temporary
measure until we have a textual format for side car data and the
ability to translate that into the binary format.



Swift SVN r19994
2014-07-16 00:03:50 +00:00
Argyrios Kyrtzidis
7b62fa0c44 [ASTPrinter] Introduce a callback invoked after printing the name of the declaration (the signature for functions).
Swift SVN r19973
2014-07-15 05:56:54 +00:00
Sonny Falk
6b053e6252 [IDE] Add support for Swift extension declarations to the document substructure.
Add tests for struct, protocol and extension.
This addresses the first part of <rdar://problem/15818966>.

Swift SVN r19766
2014-07-10 00:23:00 +00:00
Pete Cooper
0d0defff9a Update which matches clang r212408, ie, using ErrorOr for file loading
Swift SVN r19607
2014-07-07 14:49:01 +00:00
Anna Zaks
37c3ec4ed1 Rename the -import-tighter-objc-types option and add it to the frontend.
Swift SVN r19535
2014-07-03 21:46:38 +00:00
Argyrios Kyrtzidis
cff07de44e [IDE] Search for URLs in comments and report them in the syntax model.
Swift SVN r19424
2014-07-01 19:21:17 +00:00
Argyrios Kyrtzidis
e64821d268 [IDE] Search all comments for 'FIXME:', 'TODO:', 'MARK:' and report them in the syntax model.
Swift SVN r19423
2014-07-01 19:21:16 +00:00
Anna Zaks
6d15e0b76f Add resource-dir option to swift-ide-test.
Swift SVN r19179
2014-06-25 21:34:32 +00:00
Jordan Rose
20bc9ec2b9 Add accessibility printing, and test the accessibility inference so far.
Swift SVN r19144
2014-06-24 21:32:15 +00:00
Anna Zaks
9f122e56b7 Add initial support for importing with tighter Objective C pointer types.
Add the ability to store optionality of the ObjC method parameters and return
type in a sidecar. This hardcoded info is then used to import Objective C
object pointer types as either optional or none, instead of implicitly
unwrapped optionals.

The feature is enabled with -import-with-tighter-objc-types=true.

Swift SVN r19048
2014-06-20 19:19:43 +00:00
Jordan Rose
574054b8fd Distance SourceManager from llvm::SourceMgr.
...in preparation for non-source locations, i.e. locations that don't come
frome source buffers.

No functionality change, but a fair bit of SourceManager API and idioms have
changed.

Swift SVN r18942
2014-06-17 01:15:47 +00:00
Doug Gregor
dd8c668aa8 Import NSDictionary as Dictionary<NSObject, AnyObject>
Fixes <rdar://problem/16870626>.


Swift SVN r18907
2014-06-15 10:44:23 +00:00
Justin Bogner
a0c0dc25be Use std::error_code rather than llvm::error_code
std::error_code is no longer available via the llvm namespace as of
r210835.

Swift SVN r18851
2014-06-13 02:54:07 +00:00
Mark Lacey
dccd703315 Use <system_error> rather than llvm/Support/system_error.h.
Rafael removed the latter in r210803.

Swift SVN r18842
2014-06-12 21:53:16 +00:00
Argyrios Kyrtzidis
95bd9e1d28 [AST/IDE] Centralize the logic to determine if a symbols is a 'private' stdlib one and hide them more extensively.
-Hide vars that have a private type.
-Hide functions that have a parameter with private type or a parameter name with leading underscore.
-Minor change in StringUTF16.swift to avoid printing "func generate() -> IndexingGenerator<_StringCore>".

rdar://17027294

Swift SVN r18623
2014-05-25 03:49:02 +00:00
Argyrios Kyrtzidis
4bdfbd1cd2 [IDE] Have 'swift-ide-test -annotate-print' also indicate where the printed decl location is.
Swift SVN r18447
2014-05-20 07:36:22 +00:00
Argyrios Kyrtzidis
973beb0ae3 [IDE/CodeCompletion] Fix crash with code-completion when using -import-objc-header.
Swift SVN r18444
2014-05-20 04:05:52 +00:00