Commit Graph

1114 Commits

Author SHA1 Message Date
Jordan Rose
ad4d72568a [AST] Print "__owned" and "__shared" with leading underscores
The type printer was being optimistic about these, but that's a
problem for testing textual interfaces right now.
2018-08-20 18:30:00 -07:00
Jordan Rose
a17dbfbf29 Merge pull request #18778 from jrose-apple/towards-stability
[ModuleInterface] More changes to printing and parsing .swiftinterface files
2018-08-17 09:10:57 -07:00
Jordan Rose
dd8b37ee9f Merge pull request #18772 from jrose-apple/access-denied
Stop printing access on extensions and protocol requirements
2018-08-16 18:24:58 -07:00
Jordan Rose
c62fcad553 Don't synthesize initializers in swiftinterface files
...and then don't complain about a class not having any initializers.
2018-08-16 17:59:24 -07:00
Jordan Rose
0ca78265ef [ModuleInterface] Allow global/static variables without initial values 2018-08-16 17:59:24 -07:00
Jordan Rose
f061dff9b7 [ModuleInterface] Don't print typealiases that match generic params
These are synthesized to satisfy associated type requirements, but
they're not needed in source, and they look like self-referential
definitions (`typealias X = X`).
2018-08-16 17:59:24 -07:00
Jordan Rose
6526f11400 [ModuleInterface] Don't print access on extensions
This ends up meaning "don't print access attributes, then print access
uniformly on ValueDecls if you're not printing access attributes".
2018-08-16 16:00:42 -07:00
Jordan Rose
1a3cb5b630 [ModuleInterface] "Smoke test" struct and enum declarations too
This is not an exhaustive test of language features, but it at
least checks that the simple stuff is working.
2018-08-16 15:52:18 -07:00
Jordan Rose
e2a245d211 [SILGen] Also handle initializers without bodies
I was surprised to see this parses fine already, but SILGen still
needs a new check.
2018-08-16 15:52:18 -07:00
Jordan Rose
ec0719d3e0 Handle parsing deinitializers without bodies for .swiftinterfaces
The presence of a deinitializer will eventually indicate whether a
class's deinitializer is non-trivial for non-resilient modules.

Also improve recovery for normal source files for various bad ways
of declaring a deinitializer.
2018-08-16 15:48:13 -07:00
Jordan Rose
318e988ae1 [Parse] Allow parsing accessors without bodies for .swiftinterfaces
We're going to do need to do more here for inlinable accessors, which
/do/ have bodies, but this helps us get to a bare minimum testing
configuration.
2018-08-16 13:57:45 -07:00
Jordan Rose
d9e47650d5 Add a new SourceFileKind and InputFileKind for textual interfaces
And test this by tweaking the rules to allow functions without
definitions, like SIL files.
2018-08-07 08:55:07 -07:00
Jordan Rose
59940b7f04 [ModuleInterface] Filter using access control and @usableFromInline (#18521)
These are the parts of a (resilient) module that affect the public
interface and ABI; everything else is uninteresting. Or at least ought
to be.
2018-08-06 19:40:44 -07:00
Jordan Rose
e8e0584785 Hook up -emit-interface-path to a simple AST printer
We'll want more complexity soon, but this is a start.
2018-08-01 14:34:29 -07:00