Parsing, semantic analysis, and lowering for and, or, not. (#2897)

Lowering for `and` and `or` is not yet complete because `Branch` lowering isn't done yet.
This commit is contained in:
Richard Smith
2023-06-14 13:03:13 -07:00
committed by GitHub
parent 8b1e820848
commit 06ce3b0161
28 changed files with 470 additions and 55 deletions
@@ -202,6 +202,13 @@ auto SemanticsContext::ImplicitAsRequired(ParseTree::Node parse_node,
return output_value_id;
}
auto SemanticsContext::ImplicitAsBool(ParseTree::Node parse_node,
SemanticsNodeId value_id)
-> SemanticsNodeId {
return ImplicitAsRequired(parse_node, value_id,
CanonicalizeType(SemanticsNodeId::BuiltinBoolType));
}
auto SemanticsContext::ImplicitAsImpl(SemanticsNodeId value_id,
SemanticsTypeId as_type_id,
SemanticsNodeId* output_value_id)