Commit Graph

73 Commits

Author SHA1 Message Date
Doug Gregor
07740515c2 Emit nullability context-sensitive keywords for instancetype.
Swift SVN r23486
2014-11-20 21:16:00 +00:00
Dmitri Hrybenko
e9f06eee68 Comment parsing: implement basic parsing of inline markup
This change adds infrastructure to represent inline markup in the AST,
implements parsing of some of the inline markup (*emphasis*, **strong
emphasis**, `interpreted text`, ``inline literal``), and XML generation
for these constructs for SourceKit clients to consume.

The parsing itself is incomplete for constructs not mentioned above.
Most notably, we don't parse hyperlinks, and we don't parse the
double-colon that changes the next paragraph into a literal block.

Swift SVN r22752
2014-10-15 13:50:48 +00:00
Jordan Rose
25c4b23f12 [test] Fix PrintAsObjC tests for less tolerant Clangs.
Fixup for r22010.

Swift SVN r22023
2014-09-17 15:54:18 +00:00
Jordan Rose
c35312815a [PrintAsObjC] @import required explicit submodules.
...but prefer the base module for implicit submodules.

rdar://problem/18097120

Swift SVN r21555
2014-08-29 00:39:24 +00:00
Fariborz Jahanian
f93cee960c Reapply patch for rdar://17023083 which I reverted
earlier because clang patch for waninrg goupr name is in.
Also run %check-in-clang on the translated output.



Swift SVN r20786
2014-07-30 23:12:46 +00:00
Fariborz Jahanian
f6dc791df1 Revert patch in r20767
Swift SVN r20770
2014-07-30 20:36:24 +00:00
Fariborz Jahanian
81b2f47268 Patch to silence warnings about mismatched property
ownership attributes by bracketting
header with specific group warning pragma clang.
This patch also requires patch for rdar://17845264
which is currently in TOT. This is //rdar://17023083


Swift SVN r20767
2014-07-30 20:15:10 +00:00
Dmitri Hrybenko
99d35cb3b2 ReST parsing: fix a bug in parsing field list items that don't have a blank
line in between

Finishes rdar://17220608


Swift SVN r19565
2014-07-04 15:28:10 +00:00
Jordan Rose
c6226159c5 Allow class properties to be @objc, and expose them as class methods.
<rdar://problem/17164696>

Swift SVN r19117
2014-06-24 01:23:02 +00:00
Jordan Rose
03eacc2931 [PrintAsObjC] Forward-declare things for the generated header when possible...
...and just outright import the bridging header if that's what's needed.

This means we'll use @class and @protocol whenever we're just using a class
or protocol in a type, but still import the enclosing module when we need
the definition. We'll also fall back to the module (or bridging header) if
we need something /else/ from C: a struct, a typedef, whatever.

<rdar://problem/17183425>

Swift SVN r18795
2014-06-11 00:01:58 +00:00
Jordan Rose
74bc750c43 [PrintAsObjC] Use #import for the underlying module (instead of @import).
When generating a header for the Swift half of a mixed-source framework,
we can't import the framework using @import, because that means a submodule
is trying to import a parent module before the module is done being built.
This currently isn't supported in Clang, though it only recently became an
error instead of being ignored.

Instead, we now assume that the framework will have an umbrella header with
the same name as the framework module, which is the same assumption Xcode
makes when you don't provide your own module map. I'm not too concerned about
people trying to build mixed-source frameworks who /don't/ have umbrella
headers.

This doesn't affect app targets at all, which use -import-objc-header instead
of a standalone underlying module.

<rdar://problem/16879704>

Swift SVN r17984
2014-05-13 00:38:49 +00:00
Jordan Rose
16f96f1139 [PrintAsObjC] Guard @import lines with __has_feature(modules).
Also, use "#include <objc/NSObject.h>" instead of "@import ObjectiveC;"
to get access to BOOL, SEL, NSObject, and NSString.

This allows generated headers to be used in Objective-C++ contexts, where
modules don't yet work. The dependencies will unfortunately need to be
imported separately (because there's not a direct mapping from module name
back to header file), but that's still better than just being incompatible.

<rdar://problem/16796627>

Swift SVN r17272
2014-05-02 21:36:55 +00:00
Dmitri Hrybenko
00722d4c2e Comment parsing: extract parameter name from the text in :param: field
Swift SVN r16750
2014-04-24 09:13:42 +00:00
Dmitri Hrybenko
021b5b4561 Comment to XML conversion: pass through block markup as HTML tags, for the lack
of better markup in current XML schema

I know this XML is probably as bad as XML can get, but at least it allows
clients to render some block markup.  I expect to replace this with some real
tags soon.


Swift SVN r16657
2014-04-22 17:15:46 +00:00
Dmitri Hrybenko
9928be1030 Comment parsing: keep the column number of the first character to strip ASCII
art correctly when indentation is present


Swift SVN r16656
2014-04-22 16:34:00 +00:00
Dmitri Hrybenko
0dac54ab1d PrintAsObjC: attach comments to protocols in the generated header
Swift SVN r16513
2014-04-18 09:16:19 +00:00
Dmitri Hrybenko
6680ed3956 Comment parsing: for now, treat classes, protocols and structs as "class-like"
things


Swift SVN r16453
2014-04-17 16:13:47 +00:00
Dmitri Hrybenko
68e8fee5fc Comment parsing: put more information into the generated XML documents
This commit adds infrastructure for conversion and testing it.

The conversion is still incomplete, pending discussion about which tags should
we use in the XML documents.  I copied the RelaxNG schema from Clang, and will
edit it accordingly.


Swift SVN r16451
2014-04-17 15:42:51 +00:00
Doug Gregor
8d4964bc98 Turn on namespacing of Objective-C class names.
The actual logic to do this is simple; the vast majority of this
commit is just a pile of changes to test cases to reflect the fact
that Objective-C metadata now includes the module name for each class
and the mangling of Swift-defined @objc classes no longer goes into
the "So" namespace for Objective-C classes. Finishes
<rdar://problem/15506580>.


Swift SVN r16274
2014-04-13 04:48:53 +00:00
Doug Gregor
6baa7eb35c PrintAsObjC: Emit objc_runtime_name attributes for Swift classes.
This makes sure that Clang uses the mangled class names for
Swift-defined classes. Should be last compiler-side piece of
<rdar://problem/15506580>.


Swift SVN r15977
2014-04-05 04:45:21 +00:00
Dmitri Hrybenko
58e3bd1462 Comments-to-Doxygen translation: add more tests
The results don't look that great in the header file code when we fall back to
HTML, but there is no other option.  We could try to pretty-print HTML at best.


Swift SVN r15874
2014-04-03 16:20:03 +00:00
Dmitri Hrybenko
c68fe1a5d7 Comment parsing / PrintAsObjC: translate Swift comments to Doxygen syntax when
printing a header file


Swift SVN r15871
2014-04-03 16:06:01 +00:00
Jordan Rose
480c1bac08 [PrintAsObjC] Push the prologue back into the generated headers.
This means more duplication, but it's also more future-proof: the set of
features used is based on the compiler that generates the header, not the
compiler that eventually consumes the header. To allow for forward-
compatibility, all the macros used by the header can be overridden by the
consuming environment, and the header <swift/objc-prologue.h> will be
included if it exists.

Swift SVN r14893
2014-03-10 23:47:22 +00:00