mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-03 19:55:48 +01:00
Consistent naming for Expression and Value. (#621)
- `Kind` enumerator names always match the corresponding factory function, accessor, and type names (if any). - All abbreviations in those names are expanded. - Those names always have a suffix to disambiguate expressions from values. `VarTV` is excluded from these changes because there's a pending PR to remove it.
This commit is contained in:
@@ -13,16 +13,16 @@ TEST(ParenContentsTest, EmptyAsExpression) {
|
||||
ParenContents contents;
|
||||
const Expression* expression = contents.AsExpression(/*line_num=*/1);
|
||||
EXPECT_EQ(expression->line_num, 1);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::Tuple);
|
||||
EXPECT_EQ(expression->GetTuple().fields.size(), 0);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::TupleLiteral);
|
||||
EXPECT_EQ(expression->GetTupleLiteral().fields.size(), 0);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, EmptyAsTuple) {
|
||||
ParenContents contents;
|
||||
const Expression* tuple = contents.AsTuple(/*line_num=*/1);
|
||||
EXPECT_EQ(tuple->line_num, 1);
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::Tuple);
|
||||
EXPECT_EQ(tuple->GetTuple().fields.size(), 0);
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::TupleLiteral);
|
||||
EXPECT_EQ(tuple->GetTupleLiteral().fields.size(), 0);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, UnaryNoCommaAsExpression) {
|
||||
@@ -33,81 +33,81 @@ TEST(ParenContentsTest, UnaryNoCommaAsExpression) {
|
||||
// )
|
||||
// ```
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)}},
|
||||
ParenContents::HasTrailingComma::No);
|
||||
|
||||
const Expression* expression = contents.AsExpression(/*line_num=*/1);
|
||||
EXPECT_EQ(expression->line_num, 2);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::Integer);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, UnaryNoCommaAsTuple) {
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)}},
|
||||
ParenContents::HasTrailingComma::No);
|
||||
|
||||
const Expression* tuple = contents.AsTuple(/*line_num=*/1);
|
||||
EXPECT_EQ(tuple->line_num, 1);
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::Tuple);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTuple().fields;
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::TupleLiteral);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTupleLiteral().fields;
|
||||
ASSERT_EQ(fields.size(), 1);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, UnaryWithCommaAsExpression) {
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)}},
|
||||
ParenContents::HasTrailingComma::Yes);
|
||||
|
||||
const Expression* expression = contents.AsExpression(/*line_num=*/1);
|
||||
EXPECT_EQ(expression->line_num, 1);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::Tuple);
|
||||
std::vector<FieldInitializer> fields = expression->GetTuple().fields;
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::TupleLiteral);
|
||||
std::vector<FieldInitializer> fields = expression->GetTupleLiteral().fields;
|
||||
ASSERT_EQ(fields.size(), 1);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, UnaryWithCommaAsTuple) {
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)}},
|
||||
ParenContents::HasTrailingComma::Yes);
|
||||
|
||||
const Expression* tuple = contents.AsTuple(/*line_num=*/1);
|
||||
EXPECT_EQ(tuple->line_num, 1);
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::Tuple);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTuple().fields;
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::TupleLiteral);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTupleLiteral().fields;
|
||||
ASSERT_EQ(fields.size(), 1);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, BinaryAsExpression) {
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)},
|
||||
{.expression = Expression::MakeInt(/*line_num=*/3, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)},
|
||||
{.expression = Expression::MakeIntLiteral(/*line_num=*/3, 42)}},
|
||||
ParenContents::HasTrailingComma::Yes);
|
||||
|
||||
const Expression* expression = contents.AsExpression(/*line_num=*/1);
|
||||
EXPECT_EQ(expression->line_num, 1);
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::Tuple);
|
||||
std::vector<FieldInitializer> fields = expression->GetTuple().fields;
|
||||
ASSERT_EQ(expression->tag(), ExpressionKind::TupleLiteral);
|
||||
std::vector<FieldInitializer> fields = expression->GetTupleLiteral().fields;
|
||||
ASSERT_EQ(fields.size(), 2);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[1].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::IntLiteral);
|
||||
EXPECT_EQ(fields[1].expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
TEST(ParenContentsTest, BinaryAsTuple) {
|
||||
ParenContents contents(
|
||||
{{.expression = Expression::MakeInt(/*line_num=*/2, 42)},
|
||||
{.expression = Expression::MakeInt(/*line_num=*/3, 42)}},
|
||||
{{.expression = Expression::MakeIntLiteral(/*line_num=*/2, 42)},
|
||||
{.expression = Expression::MakeIntLiteral(/*line_num=*/3, 42)}},
|
||||
ParenContents::HasTrailingComma::Yes);
|
||||
|
||||
const Expression* tuple = contents.AsTuple(/*line_num=*/1);
|
||||
EXPECT_EQ(tuple->line_num, 1);
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::Tuple);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTuple().fields;
|
||||
ASSERT_EQ(tuple->tag(), ExpressionKind::TupleLiteral);
|
||||
std::vector<FieldInitializer> fields = tuple->GetTupleLiteral().fields;
|
||||
ASSERT_EQ(fields.size(), 2);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[1].expression->tag(), ExpressionKind::Integer);
|
||||
EXPECT_EQ(fields[0].expression->tag(), ExpressionKind::IntLiteral);
|
||||
EXPECT_EQ(fields[1].expression->tag(), ExpressionKind::IntLiteral);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user