swift
[5.1] Opaque result types SE-244
#24279
Merged

[5.1] Opaque result types SE-244 #24279

jckarter
jckarter Parse opaque types.
93c757e2
jckarter AST: Represent OpaqueTypeDecls.
156e0251
jckarter Add an OpaqueTypeArchetypeType subclass.
31da95de
jckarter Sema: Infer the underlying type for opaque return types from function…
0abf052a
jckarter SILGen: Substitute away opaque types.
6483ab22
jckarter Support nested types on opaque archetypes (and maybe opened ones).
b054748c
jckarter Serialization: Serialize opaque types and their decls.
1abbde0c
jckarter IRGen: Substitute out opaque types when emitting associated types.
e9b064d0
jckarter Enable opaque result types.
fc010e6b
jckarter Respond to Slava's feedback
1aff37c7
jckarter Mangle opaque types without underlying types as ErrorType for now.
8b2f82d5
jckarter Remove ResilienceExpansion from substOpaqueTypes for now.
4a28dfc1
jckarter Sema: Don't allow properties with inferred types to infer opaque resu…
5c42961c
jckarter Add test for deserializing opaque types across modules
2152e0af
jckarter SILGen: Start supporting opaque result types resiliently.
a03a0083
jckarter Mangle opaque result types.
2eadce43
jckarter IRGen: Emit runtime calls to fetch opaque type metadata.
30eac3c4
jckarter IRGen: Use runtime calls to get opaque type metadata and conformances…
79675ad5
jckarter opaque descriptor wip
e0f9fd82
jckarter IRGen: Emit opaque type descriptors.
03648e65
jckarter Push the conformance accessor hack down into getTypeByMangledName.
0ef07dc5
jckarter IRGen: Inline helper into its last remaining use
7a97b4a2
jckarter IRGen: Extract GenKeyPath's emitWitnessTableRefString to be usable el…
6eb6d31b
jckarter fill in witness tables
0f1fd09c
jckarter change signature
4e0f1a66
jckarter runtime interface fixup irgen
c98eb468
jckarter Runtime: Implement entry points for opaque type support
b843be8c
jckarter Decode opaque types in the runtime demangler.
160375f1
jckarter add changelog entry for opaque types
f6cf9aa2
jckarter Switch __opaque to some, per the latest rev of the proposal
3e97c37a
jckarter update tests
4b6077d6
jckarter fix rdar://problem/49230987
8bde7b45
jckarter IRGen: Bind local metadata before emitting opaque type assoc type wit…
24e2293d
jckarter TBD: Include opaque type descriptors
3a242427
jckarter Parsable interface and type reconstruction support for opaque types.
92c20847
jckarter merge fixup
95ec05a8
jckarter Relax some assertions to allow opaque-type values at global scope in …
3d776bc7
jckarter Serialization: Handle reentrance while deserializing OpaqueTypeDecl. …
cffec133
jckarter Allow OpaqueTypeDecls to be (de)mangled as contexts, rdar://problem/4…
a53dd1ca
jckarter merge fixup
258533e5
jckarter Validate opaque return types for properties and subscripts.
6ae6fdbd
jckarter Check the underlying type of get-only computed properties with opaque…
16d0dd37
jckarter Serialize opaque return type of var/subscript decls.
ac74e59f
jckarter Visit var/subscript opaque return decls during IRGen/TBDGen.
dc9b907b
jckarter Track var/subscript opaque return decls for type reconstruction.
6500ef33
jckarter Demangler: Register substitution for opaque archetype manglings
40f2e489
jckarter Serialization: Cross-reference opaque return types by mangled name. r…
f5440448
jckarter MetadataLookup: Use extension's generic context for non-nominal exten…
ce800764
DougGregor [Opaque result types] Fix mangling issues with opaque result types.
e3cbf770
jckarter
jckarter
jckarter jckarter merged 8f0ae73e into swift-5.1-branch 6 years ago

Login to write a write a comment.

Login via GitHub

Reviewers
No reviews
Assignees
No one assigned
Labels
Milestone