Slava Pestov
d64fb39514
RequirementMachine: Introduce conditional requirements in desugaring
2022-02-10 17:23:54 -05:00
Slava Pestov
48ca87ddeb
RequirementMachine: Handle type parameters in @_differentiable requirement inference
2022-02-10 17:23:54 -05:00
Slava Pestov
915ae67974
RequirementMachine: Factor out lookupMemberType() utility in RequirementLowering.cpp
2022-02-10 17:23:54 -05:00
Slava Pestov
0177f75473
AST: TypeBase::isConstraintType() answers true for ParameterizedProtocolType also
2022-02-03 13:27:24 -05:00
Slava Pestov
aa67c8bf8a
Parametrized => parameterized
2022-02-03 13:27:24 -05:00
Slava Pestov
7dc36c3092
Merge pull request #40714 from slavapestov/parametrized-protocol-type
...
Parametrized protocol types
2022-01-26 11:44:29 -05:00
Slava Pestov
a416116094
RequirementMachine: Desugar ParametrizedProtocolType
2022-01-26 00:11:38 -05:00
Slava Pestov
7393c9c84f
RequirementMachine: Remove unsound cycle-breaking hack
2022-01-25 21:28:52 -05:00
Slava Pestov
96122834fb
RequirementMachine: getRuleForRequirement() supports relative terms
2022-01-25 00:32:25 -05:00
Slava Pestov
f480eeaf53
RequirementMachine: Factor out getRuleForRequirement() from RuleBuilder::addRequirement()
2022-01-25 00:32:25 -05:00
Slava Pestov
a2f2ffd1c2
RequirementMachine: Remove obsolete comment
2022-01-25 00:32:25 -05:00
Slava Pestov
56450af673
RequirementMachine: Record identity conformances in the property map
2022-01-11 21:43:55 -05:00
Slava Pestov
25cae6f479
RequirementMachine: Ignore requirements with ErrorTypes for GSB compatibility
2022-01-05 22:41:03 -05:00
Slava Pestov
be772cc74b
RequirementMachine: Layout requirement implied by superclass is now handled in the property map
2022-01-05 22:41:03 -05:00
Slava Pestov
f50c7c94df
RequirementMachine: Tweak TypeAliasRequirementsRequest to match GSB on highly-invalid code
2021-12-20 17:59:31 -05:00
Slava Pestov
360fbc67bc
RequirementMachine: Fix silly mistake in requirement inference
...
getFirstTypeRepr() asserts unless the RequirementRepr is a SameType
requirement. For type requirements we need to call getSubjectTypeRepr().
2021-12-10 00:49:46 -05:00
Slava Pestov
cfd8dbf272
Merge pull request #40465 from slavapestov/rqm-protocol-minimization-fixes
...
RequirementMachine: Protocol requirement signature minimization fixes
2021-12-08 17:19:21 -05:00
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