Commit Graph

198 Commits

Author SHA1 Message Date
Huon Wilson
f1f9694912 [NFC] Improve some code clarity in SIL and TBDGen. 2017-06-22 15:16:53 -07:00
Huon Wilson
a0bc3bd0b6 [AST] Move getEffectiveAccess calls into SIL. 2017-06-20 17:34:48 -07:00
Huon Wilson
296f23189b [TBDGen] Protocol witnesses thunks for members of public superprotocols are public.
Specifically, public superprotocols of non-public protocols have some
weird handling in SILGen, so we reproduce this.

Fixes rdar://problem/32254485 .
2017-06-19 15:00:12 -07:00
Huon Wilson
8d455a4991 [TBDGen] Explicitly walk members of stored static vars.
Unlike some other vars, these members are not also listed at the top
level, adjacent to the VarDecl.
2017-06-19 14:53:21 -07:00
Huon Wilson
002e4d5314 [TBDGen] Include extra allocating constructors instead of missing some.
Fixes rdar://problem/32253697 .
2017-06-19 14:53:21 -07:00
Huon Wilson
fed23ed40d [TBDGen] Include both direct and indirect field offsets.
It is semantically incorrect to miss a symbol, and just misleading to
include an incorrect one in the TBD file (and, it would take a compiler
bug to actually try to reference one from some downstream code), so it
is better to err on the side of including extra symbols than missing
some.

For now, computing the actual directness of a field is difficult, so
let's include both of them.

Fixes rdar://problem/32253411 .
2017-06-19 14:53:21 -07:00
practicalswift
fff77b01c7 [gardening] Remove unused variables 2017-05-05 17:03:02 +02:00
Huon Wilson
697d1ff507 [TBDGen] Global variables in main file don't have accessors. 2017-04-26 16:57:54 -07:00
Huon Wilson
a190b7d171 [TBDGen] @objc protocols don't have descriptors. 2017-04-26 16:57:53 -07:00
Huon Wilson
ee265748e1 [TBDGen] Default arguments in public functions have public symbols. 2017-04-26 16:57:53 -07:00
Huon Wilson
ee1afc8434 [TBDGen] SubscriptDecls don't get symbols. 2017-04-26 16:57:53 -07:00
practicalswift
797c2d8118 [gardening] Fix end of namespace comments 2017-04-20 22:01:01 +02:00
practicalswift
431e5a1440 [gardening] Use consistent end of namespace comments 2017-04-20 13:47:10 +02:00
practicalswift
a41a501c56 Merge pull request #8835 from practicalswift/gardening-20170418
[gardening] Fix URLs. Fix spacing. Remove unused methods. Fix headers.
2017-04-18 22:59:00 +02:00
Huon Wilson
e619cef863 Merge pull request #8836 from huonw/symbol-list-6
TBD 6: extension conformances, fix bad tests.
2017-04-18 12:40:49 -07:00
Huon Wilson
d40b8fa5e2 [TBDGen] Conformances in extensions. 2017-04-18 11:14:19 -07:00
Huon Wilson
53b4e7044f Merge pull request #8822 from huonw/symbol-list-5
Yet more TBDGen work: mostly classes.
2017-04-18 11:04:57 -07:00
practicalswift
74f8c89e22 [gardening] Remove unused function isaAnd(…) 2017-04-18 19:52:42 +02:00
practicalswift
7eb7d5b109 [gardening] Fix 100 typos. 2017-04-18 17:01:42 +02:00
Huon Wilson
fb8abcf3c0 [TBDGen] Resilient classes can have indirect fields. 2017-04-17 17:15:16 -07:00
Huon Wilson
78dcc1be28 [TBDGen] ObjC classes don't have public destructors. 2017-04-17 17:15:16 -07:00
Huon Wilson
1297647702 [TBDGen] ObjC classes and metaclasses. 2017-04-17 17:15:07 -07:00
Huon Wilson
aaf3006bb4 [TBDGen] Only normal conformances get symbols. 2017-04-17 11:27:56 -07:00
Huon Wilson
dbc9d8eaaa [TBDGen] main is a symbol. 2017-04-14 17:16:58 -07:00
Huon Wilson
7bedb6fdd5 [TBDGen] Generic types have fewer symbols. 2017-04-14 17:06:53 -07:00
Huon Wilson
e5acdd42fc [TBDGen] Handle private/internal methods on open classes. 2017-04-14 10:13:11 -07:00
Huon Wilson
22c9e20a9d [IRGen] Completely remove witness table offsets.
These are unused.
2017-04-13 11:44:01 -07:00
Huon Wilson
04aa385f27 [TBDGen] Non-allocating class constructor/destructor. 2017-04-13 11:42:54 -07:00
Huon Wilson
fce992ff8b [TBDGen] Class direct field offsets. 2017-04-13 11:41:29 -07:00
Huon Wilson
6cccddf39a [TBDGen] Class metaclasses, when interacting with ObjC. 2017-04-13 11:40:50 -07:00
Huon Wilson
520f186c4f [TBDGen] Class witness table offsets. 2017-04-13 11:39:50 -07:00
Huon Wilson
2446db55ed [TBDGen] Stored property initializers. 2017-04-13 11:38:58 -07:00
Huon Wilson
cdd2cdd68f [TBDGen] Clean-up. 2017-04-13 11:36:50 -07:00
Huon Wilson
345c8e8ee3 [TBDGen] Assert that protocols look like we expect. 2017-04-13 11:36:50 -07:00
Huon Wilson
53d80be1e3 [TBDGen] Transparent symbols don't exist. 2017-04-13 11:36:50 -07:00
Huon Wilson
c0f1dcec71 [TBDGen] Say irgen::, irgen::, irgen::, irgen:: less. 2017-04-06 17:51:33 -07:00
Huon Wilson
088824de2b [TBDGen] Generate symbols for protocol conformances. 2017-04-06 17:51:04 -07:00
Huon Wilson
15c38780f3 [TBDGen] Use LinkInfo for visibility and mangling, rather than reimplementing it. 2017-04-06 17:51:04 -07:00
Huon Wilson
fcb88b4084 [TBD] Thread enough through to use UniversalLinkageInfo. 2017-04-06 17:50:57 -07:00
Huon Wilson
3105c6ed00 [IRGen] Expose LinkInfo publicly, like LinkEntity. 2017-04-05 09:54:19 -07:00
Huon Wilson
a2644a5e8e Merge pull request #8446 from huonw/no-side-effects-in-asserts
[TBDGen] Side-effects and asserts don't mix.
2017-03-31 09:53:41 -07:00
Slava Pestov
a24f8a576b IRGen: value witness tables and lazy metadata cache variables never need to be public
This simplifies TBDGen too, even though it's still TBD.
2017-03-30 17:58:45 -07:00
Huon Wilson
d710b46331 [TBDGen] Side-effects and asserts don't mix.
Fixes rdar://problem/31343022.
2017-03-30 17:12:49 -07:00
Huon Wilson
0c37685327 [TBD] Validate against truly externally visible symbols in the IR.
External linkage isn't enough: not being hidden is important too.
2017-03-28 16:31:12 -07:00
Huon Wilson
83f6e319f9 [TBD] let special casing actually applies to static/global lets and vars. 2017-03-28 16:31:11 -07:00
Huon Wilson
dab44b3cc6 [TBDGen] Private class decls have public type information. 2017-03-28 16:31:10 -07:00
Huon Wilson
121067a8ce [TBDGen] let: accessors and variable itself. 2017-03-28 16:31:10 -07:00
Huon Wilson
ac44f9675b [TBDGen] Introduce module for generating TBD files.
This is designed to be a list of public symbols that will be emitted by
a module.
2017-03-23 18:32:10 -07:00