sem: Rename methods of sem::Pointer and Reference

Rename:
* type() to StoreType()
* storage_class() to StorageClass()

Move away from snake_case methods in the semantic namespace.
Try to avoid generic 'type()' method names.

Also add an assertion to detect doubly nested references (these are
invalid).

Bug: tint:727
Change-Id: I975a3f1e5fbed7947cc2fc156fee892b282c63de
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51220
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton
2021-05-17 20:38:17 +00:00
committed by Commit Bot service account
parent 7b25769aed
commit c5eebaf7d6
12 changed files with 40 additions and 34 deletions

View File

@@ -35,9 +35,9 @@ class Pointer : public Castable<Pointer, Type> {
~Pointer() override;
/// @returns the pointee type
const Type* type() const { return subtype_; }
const Type* StoreType() const { return subtype_; }
/// @returns the storage class of the pointer
ast::StorageClass storage_class() const { return storage_class_; }
ast::StorageClass StorageClass() const { return storage_class_; }
/// @returns the name for this type
std::string type_name() const override;

View File

@@ -23,8 +23,8 @@ using PointerTest = TestHelper;
TEST_F(PointerTest, Creation) {
auto* r = create<Pointer>(create<I32>(), ast::StorageClass::kStorage);
EXPECT_TRUE(r->type()->Is<sem::I32>());
EXPECT_EQ(r->storage_class(), ast::StorageClass::kStorage);
EXPECT_TRUE(r->StoreType()->Is<sem::I32>());
EXPECT_EQ(r->StorageClass(), ast::StorageClass::kStorage);
}
TEST_F(PointerTest, TypeName) {

View File

@@ -22,7 +22,9 @@ namespace tint {
namespace sem {
Reference::Reference(const Type* subtype, ast::StorageClass storage_class)
: subtype_(subtype), storage_class_(storage_class) {}
: subtype_(subtype), storage_class_(storage_class) {
TINT_ASSERT(!subtype->Is<Reference>());
}
std::string Reference::type_name() const {
std::ostringstream out;

View File

@@ -35,9 +35,9 @@ class Reference : public Castable<Reference, Type> {
~Reference() override;
/// @returns the pointee type
const Type* type() const { return subtype_; }
const Type* StoreType() const { return subtype_; }
/// @returns the storage class of the reference
ast::StorageClass storage_class() const { return storage_class_; }
ast::StorageClass StorageClass() const { return storage_class_; }
/// @returns the name for this type
std::string type_name() const override;

View File

@@ -23,8 +23,8 @@ using ReferenceTest = TestHelper;
TEST_F(ReferenceTest, Creation) {
auto* r = create<Reference>(create<I32>(), ast::StorageClass::kStorage);
EXPECT_TRUE(r->type()->Is<sem::I32>());
EXPECT_EQ(r->storage_class(), ast::StorageClass::kStorage);
EXPECT_TRUE(r->StoreType()->Is<sem::I32>());
EXPECT_EQ(r->StorageClass(), ast::StorageClass::kStorage);
}
TEST_F(ReferenceTest, TypeName) {

View File

@@ -38,7 +38,7 @@ Type::~Type() = default;
const Type* Type::UnwrapPtr() const {
auto* type = this;
while (auto* ptr = type->As<sem::Pointer>()) {
type = ptr->type();
type = ptr->StoreType();
}
return type;
}
@@ -53,7 +53,7 @@ const Type* Type::UnwrapAll() const {
auto* type = this;
while (true) {
if (auto* ptr = type->As<sem::Pointer>()) {
type = ptr->type();
type = ptr->StoreType();
} else {
break;
}