mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-21 10:49:14 +00:00
Replace Type::(Is|As)F32 with Castable
Change-Id: I75e5a34034360c1d4c96ae0ce293bc6cbfc1c33d Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/34266 Reviewed-by: dan sinclair <dsinclair@chromium.org>
This commit is contained in:
@@ -53,6 +53,7 @@
|
||||
#include "src/ast/storage_class.h"
|
||||
#include "src/ast/switch_statement.h"
|
||||
#include "src/ast/type/bool_type.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/type/pointer_type.h"
|
||||
#include "src/ast/type/texture_type.h"
|
||||
#include "src/ast/type/type.h"
|
||||
@@ -3823,7 +3824,7 @@ ast::ExpressionList FunctionEmitter::MakeCoordinateOperandsForImageAccess(
|
||||
assert(num_axes <= 3);
|
||||
const auto num_coords_required = num_axes + (is_arrayed ? 1 : 0);
|
||||
uint32_t num_coords_supplied = 0;
|
||||
if (raw_coords.type->IsF32()) {
|
||||
if (raw_coords.type->Is<ast::type::F32Type>()) {
|
||||
num_coords_supplied = 1;
|
||||
} else if (raw_coords.type->IsVector()) {
|
||||
num_coords_supplied = raw_coords.type->AsVector()->size();
|
||||
|
||||
@@ -983,7 +983,7 @@ bool ParserImpl::EmitScalarSpecConstants() {
|
||||
ast_expr =
|
||||
create<ast::ScalarConstructorExpression>(create<ast::UintLiteral>(
|
||||
ast_type, static_cast<uint32_t>(literal_value)));
|
||||
} else if (ast_type->IsF32()) {
|
||||
} else if (ast_type->Is<ast::type::F32Type>()) {
|
||||
float float_value;
|
||||
// Copy the bits so we can read them as a float.
|
||||
std::memcpy(&float_value, &literal_value, sizeof(float_value));
|
||||
@@ -1272,7 +1272,7 @@ TypedExpression ParserImpl::MakeConstantExpression(uint32_t id) {
|
||||
create<ast::ScalarConstructorExpression>(
|
||||
create<ast::SintLiteral>(ast_type, spirv_const->GetS32()))};
|
||||
}
|
||||
if (ast_type->IsF32()) {
|
||||
if (ast_type->Is<ast::type::F32Type>()) {
|
||||
return {ast_type,
|
||||
create<ast::ScalarConstructorExpression>(
|
||||
create<ast::FloatLiteral>(ast_type, spirv_const->GetFloat()))};
|
||||
@@ -1346,7 +1346,7 @@ ast::Expression* ParserImpl::MakeNullValue(ast::type::Type* type) {
|
||||
return create<ast::ScalarConstructorExpression>(
|
||||
create<ast::SintLiteral>(type, 0));
|
||||
}
|
||||
if (type->IsF32()) {
|
||||
if (type->Is<ast::type::F32Type>()) {
|
||||
return create<ast::ScalarConstructorExpression>(
|
||||
create<ast::FloatLiteral>(type, 0.0f));
|
||||
}
|
||||
@@ -1445,7 +1445,7 @@ ast::type::Type* ParserImpl::GetSignedIntMatchingShape(ast::type::Type* other) {
|
||||
Fail() << "no type provided";
|
||||
}
|
||||
auto* i32 = ast_module_.create<ast::type::I32Type>();
|
||||
if (other->IsF32() || other->IsU32() || other->IsI32()) {
|
||||
if (other->Is<ast::type::F32Type>() || other->IsU32() || other->IsI32()) {
|
||||
return i32;
|
||||
}
|
||||
auto* vec_ty = other->AsVector();
|
||||
@@ -1463,7 +1463,7 @@ ast::type::Type* ParserImpl::GetUnsignedIntMatchingShape(
|
||||
return nullptr;
|
||||
}
|
||||
auto* u32 = ast_module_.create<ast::type::U32Type>();
|
||||
if (other->IsF32() || other->IsU32() || other->IsI32()) {
|
||||
if (other->Is<ast::type::F32Type>() || other->IsU32() || other->IsI32()) {
|
||||
return u32;
|
||||
}
|
||||
auto* vec_ty = other->AsVector();
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "src/ast/struct.h"
|
||||
#include "src/ast/type/array_type.h"
|
||||
#include "src/ast/type/bool_type.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/type/matrix_type.h"
|
||||
#include "src/ast/type/pointer_type.h"
|
||||
#include "src/ast/type/struct_type.h"
|
||||
@@ -124,7 +125,7 @@ TEST_F(SpvParserTest, ConvertType_F32) {
|
||||
EXPECT_TRUE(p->BuildInternalModule());
|
||||
|
||||
auto* type = p->ConvertType(4);
|
||||
EXPECT_TRUE(type->IsF32());
|
||||
EXPECT_TRUE(type->Is<ast::type::F32Type>());
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
|
||||
@@ -169,17 +170,17 @@ TEST_F(SpvParserTest, ConvertType_VecOverF32) {
|
||||
|
||||
auto* v2xf32 = p->ConvertType(20);
|
||||
EXPECT_TRUE(v2xf32->IsVector());
|
||||
EXPECT_TRUE(v2xf32->AsVector()->type()->IsF32());
|
||||
EXPECT_TRUE(v2xf32->AsVector()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(v2xf32->AsVector()->size(), 2u);
|
||||
|
||||
auto* v3xf32 = p->ConvertType(30);
|
||||
EXPECT_TRUE(v3xf32->IsVector());
|
||||
EXPECT_TRUE(v3xf32->AsVector()->type()->IsF32());
|
||||
EXPECT_TRUE(v3xf32->AsVector()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(v3xf32->AsVector()->size(), 3u);
|
||||
|
||||
auto* v4xf32 = p->ConvertType(40);
|
||||
EXPECT_TRUE(v4xf32->IsVector());
|
||||
EXPECT_TRUE(v4xf32->AsVector()->type()->IsF32());
|
||||
EXPECT_TRUE(v4xf32->AsVector()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(v4xf32->AsVector()->size(), 4u);
|
||||
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
@@ -275,55 +276,55 @@ TEST_F(SpvParserTest, ConvertType_MatrixOverF32) {
|
||||
|
||||
auto* m22 = p->ConvertType(22);
|
||||
EXPECT_TRUE(m22->IsMatrix());
|
||||
EXPECT_TRUE(m22->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m22->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m22->AsMatrix()->rows(), 2u);
|
||||
EXPECT_EQ(m22->AsMatrix()->columns(), 2u);
|
||||
|
||||
auto* m23 = p->ConvertType(23);
|
||||
EXPECT_TRUE(m23->IsMatrix());
|
||||
EXPECT_TRUE(m23->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m23->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m23->AsMatrix()->rows(), 2u);
|
||||
EXPECT_EQ(m23->AsMatrix()->columns(), 3u);
|
||||
|
||||
auto* m24 = p->ConvertType(24);
|
||||
EXPECT_TRUE(m24->IsMatrix());
|
||||
EXPECT_TRUE(m24->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m24->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m24->AsMatrix()->rows(), 2u);
|
||||
EXPECT_EQ(m24->AsMatrix()->columns(), 4u);
|
||||
|
||||
auto* m32 = p->ConvertType(32);
|
||||
EXPECT_TRUE(m32->IsMatrix());
|
||||
EXPECT_TRUE(m32->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m32->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m32->AsMatrix()->rows(), 3u);
|
||||
EXPECT_EQ(m32->AsMatrix()->columns(), 2u);
|
||||
|
||||
auto* m33 = p->ConvertType(33);
|
||||
EXPECT_TRUE(m33->IsMatrix());
|
||||
EXPECT_TRUE(m33->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m33->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m33->AsMatrix()->rows(), 3u);
|
||||
EXPECT_EQ(m33->AsMatrix()->columns(), 3u);
|
||||
|
||||
auto* m34 = p->ConvertType(34);
|
||||
EXPECT_TRUE(m34->IsMatrix());
|
||||
EXPECT_TRUE(m34->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m34->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m34->AsMatrix()->rows(), 3u);
|
||||
EXPECT_EQ(m34->AsMatrix()->columns(), 4u);
|
||||
|
||||
auto* m42 = p->ConvertType(42);
|
||||
EXPECT_TRUE(m42->IsMatrix());
|
||||
EXPECT_TRUE(m42->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m42->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m42->AsMatrix()->rows(), 4u);
|
||||
EXPECT_EQ(m42->AsMatrix()->columns(), 2u);
|
||||
|
||||
auto* m43 = p->ConvertType(43);
|
||||
EXPECT_TRUE(m43->IsMatrix());
|
||||
EXPECT_TRUE(m43->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m43->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m43->AsMatrix()->rows(), 4u);
|
||||
EXPECT_EQ(m43->AsMatrix()->columns(), 3u);
|
||||
|
||||
auto* m44 = p->ConvertType(44);
|
||||
EXPECT_TRUE(m44->IsMatrix());
|
||||
EXPECT_TRUE(m44->AsMatrix()->type()->IsF32());
|
||||
EXPECT_TRUE(m44->AsMatrix()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(m44->AsMatrix()->rows(), 4u);
|
||||
EXPECT_EQ(m44->AsMatrix()->columns(), 4u);
|
||||
|
||||
@@ -657,7 +658,7 @@ TEST_F(SpvParserTest, ConvertType_PointerInput) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kInput);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -673,7 +674,7 @@ TEST_F(SpvParserTest, ConvertType_PointerOutput) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kOutput);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -689,7 +690,7 @@ TEST_F(SpvParserTest, ConvertType_PointerUniform) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kUniform);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -705,7 +706,7 @@ TEST_F(SpvParserTest, ConvertType_PointerWorkgroup) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kWorkgroup);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -721,7 +722,7 @@ TEST_F(SpvParserTest, ConvertType_PointerUniformConstant) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kUniformConstant);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -737,7 +738,7 @@ TEST_F(SpvParserTest, ConvertType_PointerStorageBuffer) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kStorageBuffer);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -753,7 +754,7 @@ TEST_F(SpvParserTest, ConvertType_PointerImage) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kImage);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -769,7 +770,7 @@ TEST_F(SpvParserTest, ConvertType_PointerPrivate) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kPrivate);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -785,7 +786,7 @@ TEST_F(SpvParserTest, ConvertType_PointerFunction) {
|
||||
EXPECT_TRUE(type->IsPointer());
|
||||
auto* ptr_ty = type->AsPointer();
|
||||
EXPECT_NE(ptr_ty, nullptr);
|
||||
EXPECT_TRUE(ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kFunction);
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
@@ -811,7 +812,7 @@ TEST_F(SpvParserTest, ConvertType_PointerToPointer) {
|
||||
auto* ptr_ptr_ty = ptr_ty->type()->AsPointer();
|
||||
EXPECT_NE(ptr_ptr_ty, nullptr);
|
||||
EXPECT_EQ(ptr_ptr_ty->storage_class(), ast::StorageClass::kOutput);
|
||||
EXPECT_TRUE(ptr_ptr_ty->type()->IsF32());
|
||||
EXPECT_TRUE(ptr_ptr_ty->type()->Is<ast::type::F32Type>());
|
||||
|
||||
EXPECT_TRUE(p->error().empty());
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "src/ast/decorated_variable.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/variable_decoration.h"
|
||||
#include "src/reader/wgsl/parser_impl.h"
|
||||
#include "src/reader/wgsl/parser_impl_test_helper.h"
|
||||
@@ -34,7 +35,7 @@ TEST_F(ParserImplTest, GlobalConstantDecl) {
|
||||
EXPECT_TRUE(e->is_const());
|
||||
EXPECT_EQ(e->name(), "a");
|
||||
ASSERT_NE(e->type(), nullptr);
|
||||
EXPECT_TRUE(e->type()->IsF32());
|
||||
EXPECT_TRUE(e->type()->Is<ast::type::F32Type>());
|
||||
|
||||
EXPECT_EQ(e->source().range.begin.line, 1u);
|
||||
EXPECT_EQ(e->source().range.begin.column, 7u);
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "src/ast/decorated_variable.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/variable_decoration.h"
|
||||
#include "src/reader/wgsl/parser_impl.h"
|
||||
#include "src/reader/wgsl/parser_impl_test_helper.h"
|
||||
@@ -35,7 +36,7 @@ TEST_F(ParserImplTest, GlobalVariableDecl_WithoutConstructor) {
|
||||
ASSERT_NE(e.value, nullptr);
|
||||
|
||||
EXPECT_EQ(e->name(), "a");
|
||||
EXPECT_TRUE(e->type()->IsF32());
|
||||
EXPECT_TRUE(e->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(e->storage_class(), ast::StorageClass::kOutput);
|
||||
|
||||
EXPECT_EQ(e->source().range.begin.line, 1u);
|
||||
@@ -59,7 +60,7 @@ TEST_F(ParserImplTest, GlobalVariableDecl_WithConstructor) {
|
||||
ASSERT_NE(e.value, nullptr);
|
||||
|
||||
EXPECT_EQ(e->name(), "a");
|
||||
EXPECT_TRUE(e->type()->IsF32());
|
||||
EXPECT_TRUE(e->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(e->storage_class(), ast::StorageClass::kOutput);
|
||||
|
||||
EXPECT_EQ(e->source().range.begin.line, 1u);
|
||||
@@ -88,7 +89,7 @@ TEST_F(ParserImplTest, GlobalVariableDecl_WithDecoration) {
|
||||
|
||||
EXPECT_EQ(e->name(), "a");
|
||||
ASSERT_NE(e->type(), nullptr);
|
||||
EXPECT_TRUE(e->type()->IsF32());
|
||||
EXPECT_TRUE(e->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(e->storage_class(), ast::StorageClass::kOutput);
|
||||
|
||||
EXPECT_EQ(e->source().range.begin.line, 1u);
|
||||
@@ -122,7 +123,7 @@ TEST_F(ParserImplTest, GlobalVariableDecl_WithDecoration_MulitpleGroups) {
|
||||
|
||||
EXPECT_EQ(e->name(), "a");
|
||||
ASSERT_NE(e->type(), nullptr);
|
||||
EXPECT_TRUE(e->type()->IsF32());
|
||||
EXPECT_TRUE(e->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(e->storage_class(), ast::StorageClass::kOutput);
|
||||
|
||||
EXPECT_EQ(e->source().range.begin.line, 1u);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
// limitations under the License.
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/type/multisampled_texture_type.h"
|
||||
#include "src/ast/type/sampled_texture_type.h"
|
||||
#include "src/ast/type/sampler_type.h"
|
||||
@@ -76,7 +77,7 @@ TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32_Old) {
|
||||
ASSERT_NE(t.value, nullptr);
|
||||
ASSERT_TRUE(t->IsTexture());
|
||||
ASSERT_TRUE(t->AsTexture()->IsSampled());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k1d);
|
||||
}
|
||||
|
||||
@@ -156,7 +157,7 @@ TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32) {
|
||||
ASSERT_NE(t.value, nullptr);
|
||||
ASSERT_TRUE(t->IsTexture());
|
||||
ASSERT_TRUE(t->AsTexture()->IsSampled());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k1d);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ TEST_F(ParserImplTest, TypeDecl_F32) {
|
||||
EXPECT_FALSE(t.errored);
|
||||
ASSERT_NE(t.value, nullptr) << p->error();
|
||||
EXPECT_EQ(t.value, float_type);
|
||||
ASSERT_TRUE(t->IsF32());
|
||||
ASSERT_TRUE(t->Is<ast::type::F32Type>());
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_I32) {
|
||||
@@ -242,7 +242,7 @@ TEST_F(ParserImplTest, TypeDecl_Ptr) {
|
||||
ASSERT_TRUE(t->IsPointer());
|
||||
|
||||
auto* ptr = t->AsPointer();
|
||||
ASSERT_TRUE(ptr->type()->IsF32());
|
||||
ASSERT_TRUE(ptr->type()->Is<ast::type::F32Type>());
|
||||
ASSERT_EQ(ptr->storage_class(), ast::StorageClass::kFunction);
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ TEST_F(ParserImplTest, TypeDecl_Ptr_ToVec) {
|
||||
|
||||
auto* vec = ptr->type()->AsVector();
|
||||
ASSERT_EQ(vec->size(), 2u);
|
||||
ASSERT_TRUE(vec->type()->IsF32());
|
||||
ASSERT_TRUE(vec->type()->Is<ast::type::F32Type>());
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_Ptr_MissingLessThan) {
|
||||
@@ -356,7 +356,7 @@ TEST_F(ParserImplTest, TypeDecl_Array) {
|
||||
auto* a = t->As<ast::type::ArrayType>();
|
||||
ASSERT_FALSE(a->IsRuntimeArray());
|
||||
ASSERT_EQ(a->size(), 5u);
|
||||
ASSERT_TRUE(a->type()->IsF32());
|
||||
ASSERT_TRUE(a->type()->Is<ast::type::F32Type>());
|
||||
ASSERT_FALSE(a->has_array_stride());
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ TEST_F(ParserImplTest, TypeDecl_Array_Stride) {
|
||||
auto* a = t->As<ast::type::ArrayType>();
|
||||
ASSERT_FALSE(a->IsRuntimeArray());
|
||||
ASSERT_EQ(a->size(), 5u);
|
||||
ASSERT_TRUE(a->type()->IsF32());
|
||||
ASSERT_TRUE(a->type()->Is<ast::type::F32Type>());
|
||||
ASSERT_TRUE(a->has_array_stride());
|
||||
EXPECT_EQ(a->array_stride(), 16u);
|
||||
}
|
||||
@@ -388,7 +388,7 @@ TEST_F(ParserImplTest, TypeDecl_Array_Runtime_Stride) {
|
||||
|
||||
auto* a = t->As<ast::type::ArrayType>();
|
||||
ASSERT_TRUE(a->IsRuntimeArray());
|
||||
ASSERT_TRUE(a->type()->IsF32());
|
||||
ASSERT_TRUE(a->type()->Is<ast::type::F32Type>());
|
||||
ASSERT_TRUE(a->has_array_stride());
|
||||
EXPECT_EQ(a->array_stride(), 16u);
|
||||
}
|
||||
@@ -404,7 +404,7 @@ TEST_F(ParserImplTest, TypeDecl_Array_MultipleDecorations_OneBlock) {
|
||||
|
||||
auto* a = t->As<ast::type::ArrayType>();
|
||||
ASSERT_TRUE(a->IsRuntimeArray());
|
||||
ASSERT_TRUE(a->type()->IsF32());
|
||||
ASSERT_TRUE(a->type()->Is<ast::type::F32Type>());
|
||||
|
||||
auto& decos = a->decorations();
|
||||
ASSERT_EQ(decos.size(), 2u);
|
||||
@@ -425,7 +425,7 @@ TEST_F(ParserImplTest, TypeDecl_Array_MultipleDecorations_MultipleBlocks) {
|
||||
|
||||
auto* a = t->As<ast::type::ArrayType>();
|
||||
ASSERT_TRUE(a->IsRuntimeArray());
|
||||
ASSERT_TRUE(a->type()->IsF32());
|
||||
ASSERT_TRUE(a->type()->Is<ast::type::F32Type>());
|
||||
|
||||
auto& decos = a->decorations();
|
||||
ASSERT_EQ(decos.size(), 2u);
|
||||
@@ -766,7 +766,7 @@ TEST_F(ParserImplTest, TypeDecl_Texture_Old) {
|
||||
EXPECT_EQ(t.value, type);
|
||||
ASSERT_TRUE(t->IsTexture());
|
||||
ASSERT_TRUE(t->AsTexture()->IsSampled());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->Is<ast::type::F32Type>());
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_Texture) {
|
||||
@@ -784,7 +784,7 @@ TEST_F(ParserImplTest, TypeDecl_Texture) {
|
||||
EXPECT_EQ(t.value, type);
|
||||
ASSERT_TRUE(t->IsTexture());
|
||||
ASSERT_TRUE(t->AsTexture()->IsSampled());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
|
||||
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->Is<ast::type::F32Type>());
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
// limitations under the License.
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/variable.h"
|
||||
#include "src/reader/wgsl/parser_impl.h"
|
||||
#include "src/reader/wgsl/parser_impl_test_helper.h"
|
||||
@@ -31,7 +32,7 @@ TEST_F(ParserImplTest, VariableDecl_Parses) {
|
||||
ASSERT_NE(var.value, nullptr);
|
||||
EXPECT_EQ(var->name(), "my_var");
|
||||
EXPECT_NE(var->type(), nullptr);
|
||||
EXPECT_TRUE(var->type()->IsF32());
|
||||
EXPECT_TRUE(var->type()->Is<ast::type::F32Type>());
|
||||
|
||||
EXPECT_EQ(var->source().range.begin.line, 1u);
|
||||
EXPECT_EQ(var->source().range.begin.column, 5u);
|
||||
@@ -69,7 +70,7 @@ TEST_F(ParserImplTest, VariableDecl_WithStorageClass) {
|
||||
EXPECT_FALSE(p->has_error());
|
||||
ASSERT_NE(v.value, nullptr);
|
||||
EXPECT_EQ(v->name(), "my_var");
|
||||
EXPECT_TRUE(v->type()->IsF32());
|
||||
EXPECT_TRUE(v->type()->Is<ast::type::F32Type>());
|
||||
EXPECT_EQ(v->storage_class(), ast::StorageClass::kPrivate);
|
||||
|
||||
EXPECT_EQ(v->source().range.begin.line, 1u);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "src/ast/struct.h"
|
||||
#include "src/ast/struct_block_decoration.h"
|
||||
#include "src/ast/type/access_control_type.h"
|
||||
#include "src/ast/type/f32_type.h"
|
||||
#include "src/ast/type/i32_type.h"
|
||||
#include "src/ast/type/struct_type.h"
|
||||
#include "src/reader/wgsl/parser_impl.h"
|
||||
@@ -33,7 +34,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_Parses) {
|
||||
ASSERT_FALSE(decl.errored);
|
||||
ASSERT_EQ(decl->name, "my_var");
|
||||
ASSERT_NE(decl->type, nullptr);
|
||||
ASSERT_TRUE(decl->type->IsF32());
|
||||
ASSERT_TRUE(decl->type->Is<ast::type::F32Type>());
|
||||
|
||||
ASSERT_EQ(decl->source.range.begin.line, 1u);
|
||||
ASSERT_EQ(decl->source.range.begin.column, 1u);
|
||||
|
||||
Reference in New Issue
Block a user