Use a context object instead of a singleton
This Cl replaces the TypeManager singleton with a context object.
Bug: tint:29
Change-Id: Ia662709db1b562c34955633977ce4363f28f238e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/17780
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/reader/wgsl/parser_impl_and_expression_test.cc b/src/reader/wgsl/parser_impl_and_expression_test.cc
index be1c581..262611c 100644
--- a/src/reader/wgsl/parser_impl_and_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_and_expression_test.cc
@@ -18,17 +18,16 @@
#include "src/ast/identifier_expression.h"
#include "src/ast/relational_expression.h"
#include "src/reader/wgsl/parser_impl.h"
+#include "src/reader/wgsl/parser_impl_test_helper.h"
namespace tint {
namespace reader {
namespace wgsl {
-using ParserImplTest = testing::Test;
-
TEST_F(ParserImplTest, AndExpression_Parses) {
- ParserImpl p{"a & true"};
- auto e = p.and_expression();
- ASSERT_FALSE(p.has_error()) << p.error();
+ auto p = parser("a & true");
+ auto e = p->and_expression();
+ ASSERT_FALSE(p->has_error()) << p->error();
ASSERT_NE(e, nullptr);
ASSERT_TRUE(e->IsRelational());
@@ -48,24 +47,24 @@
}
TEST_F(ParserImplTest, AndExpression_InvalidLHS) {
- ParserImpl p{"if (a) {} & true"};
- auto e = p.and_expression();
- ASSERT_FALSE(p.has_error()) << p.error();
+ auto p = parser("if (a) {} & true");
+ auto e = p->and_expression();
+ ASSERT_FALSE(p->has_error()) << p->error();
ASSERT_EQ(e, nullptr);
}
TEST_F(ParserImplTest, AndExpression_InvalidRHS) {
- ParserImpl p{"true & if (a) {}"};
- auto e = p.and_expression();
- ASSERT_TRUE(p.has_error());
+ auto p = parser("true & if (a) {}");
+ auto e = p->and_expression();
+ ASSERT_TRUE(p->has_error());
ASSERT_EQ(e, nullptr);
- EXPECT_EQ(p.error(), "1:8: unable to parse right side of & expression");
+ EXPECT_EQ(p->error(), "1:8: unable to parse right side of & expression");
}
TEST_F(ParserImplTest, AndExpression_NoOr_ReturnsLHS) {
- ParserImpl p{"a true"};
- auto e = p.and_expression();
- ASSERT_FALSE(p.has_error()) << p.error();
+ auto p = parser("a true");
+ auto e = p->and_expression();
+ ASSERT_FALSE(p->has_error()) << p->error();
ASSERT_NE(e, nullptr);
ASSERT_TRUE(e->IsIdentifier());
}