zoecarver
fc3b3a1d71
[cxx-interop] Implement foreign reference types.
...
This is an expiremental feature to allow an attribute, `import_as_ref`, to import a C++ record as a non-reference-counted reference type in Swift.
2021-12-08 15:35:18 +00:00
Slava Pestov
0e2fd5ad06
RequirementMachine: Don't call getExistentialLayout() from desugarConformanceRequirement()
2021-12-08 00:53:35 -05:00
Slava Pestov
77d4a207f8
RequirementMachine: Implement requirement inference
2021-11-29 13:54:15 -05:00
Slava Pestov
291ddd7a31
RequirementMachine: Plumb through the ModuleDecl used for requirement inference
2021-11-29 13:54:15 -05:00
Slava Pestov
42c0a28ad7
RequirementMachine: Add RequirementMachine::initWithWrittenRequirements()
2021-11-19 15:48:28 -05:00
Slava Pestov
f0899e3acb
RequirementMachine: Make some entry points in RequirementLowering.cpp public
2021-11-19 15:48:07 -05:00
Slava Pestov
28c1178c4f
RequirementMachine: Introduce TypeAliasRequirementsRequest
...
This is a verbatim copy of the GenericSignatureBuilder's somewhat
questionable (but necessary for source compatibility) logic where
protocol typealiases with the same name as some other associated
type imply a same-type requirement.
The related diagnostics are there too, but only emitted when
-requirement-machine-protocol-signatures=on; in 'verify' mode,
the GSB will emit the same diagnostics.
2021-11-19 15:48:01 -05:00
Slava Pestov
df8ce67539
RequirementMachine: Refactor requirement lowering
2021-11-12 14:30:46 -05:00
Slava Pestov
67535303b6
RequirementMachine: Move implementation of StructuralRequirementsRequest and ProtocolDependenciesRequest to RequirementLowering.cpp
2021-11-12 14:30:46 -05:00
Slava Pestov
ff5d0e1d63
RequirementMachine: Split off RuleBuilder into a new RequirementLowering.cpp file
2021-11-12 14:30:46 -05:00