Joe Groff
224120f54b
SIL: Don't DFE functions referenced from KeyPath patterns.
...
Fixes rdar://problem/31776015.
2017-05-01 17:32:50 -07:00
Bob Wilson
32ff6de1cb
Change REQUIRES arguments to work with recent LLVM versions
...
With more recent versions of LLVM (e.g., used with master-next) the
argument of REQUIRES is parsed as an expression. Do not use "rdar"
URLS for these since it confuses lit.
2017-05-01 15:15:22 -07:00
Erik Eckstein
d2da58363d
Disabled KeyPath tests, because they are failing on many bots
...
rdar://problem/31776015
2017-04-22 19:08:39 -07:00
Joe Groff
c742f88434
Work around a bug in the closure specializer with methods that return Self and take closure arguments (rdar://problem/31725007)
2017-04-20 08:53:55 -07:00
Joe Groff
cdb54ccadf
Put keypaths behind a flag.
2017-04-19 20:39:11 -07:00
Joe Groff
e9f70732a6
Mark execution tests for keypaths with PTRSIZE=64 requirement.
...
Landing 32-bit support requires some additional work, and relies on Greg finalizing the 8-byte rc header.
2017-04-19 18:23:46 -07:00
Joe Groff
39a0849362
SILGen: Codegen for key path applications.
2017-04-09 16:38:34 -07:00
Joe Groff
d42f2049f7
KeyPaths: Implement in-place instantiation of invariant key paths.
...
For key paths without generic or subscript parameterization, we can turn the compiler-generated key path pattern into a global object in-place.
2017-04-05 08:46:45 -07:00
Joe Groff
5ed6bd831e
KeyPaths: Dynamic appending between possibly-mismatched types.
...
Make the `appending` operation between `AnyKeyPath` and `PartialKeyPath` values work. Add a test checking the combinations.
2017-04-04 11:31:15 -07:00
Joe Groff
895ce94ae5
KeyPaths: implement "appending"
2017-04-04 11:31:15 -07:00
Joe Groff
04a6d23f7e
KeyPaths: Equatable/Hashable implementation.
2017-04-04 11:31:15 -07:00
Joe Groff
cdbdb7a6e8
stdlib: Skeleton implementation of proposed KeyPath API.
...
Handles projection of stored struct and class properties. Most other functionality TODO.
2017-04-04 11:31:15 -07:00