Convert ScopeStack over to symbols.
This CL converts the ScopeStack to use a Symbol instead of a string as
the accessor.
Change-Id: I2893003bc119c86c4822732ef36c7393e4be1e79
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36580
Reviewed-by: Sarah Mashayekhi <sarahmashay@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
diff --git a/src/scope_stack_test.cc b/src/scope_stack_test.cc
index b11c6f1..7e58c35 100644
--- a/src/scope_stack_test.cc
+++ b/src/scope_stack_test.cc
@@ -17,6 +17,7 @@
#include "src/ast/builder.h"
#include "src/ast/type/f32_type.h"
#include "src/ast/variable.h"
+#include "src/symbol.h"
namespace tint {
namespace {
@@ -25,68 +26,75 @@
TEST_F(ScopeStackTest, Global) {
ScopeStack<uint32_t> s;
- s.set_global("var", 5);
+ Symbol sym(1);
+ s.set_global(sym, 5);
uint32_t val = 0;
- EXPECT_TRUE(s.get("var", &val));
+ EXPECT_TRUE(s.get(sym, &val));
EXPECT_EQ(val, 5u);
}
TEST_F(ScopeStackTest, Global_SetWithPointer) {
auto* v = Var("my_var", ast::StorageClass::kNone, ty.f32);
ScopeStack<ast::Variable*> s;
- s.set_global("var", v);
+ s.set_global(v->symbol(), v);
ast::Variable* v2 = nullptr;
- EXPECT_TRUE(s.get("var", &v2));
- EXPECT_EQ(v2->name(), "my_var");
+ EXPECT_TRUE(s.get(v->symbol(), &v2));
+ EXPECT_EQ(v2->symbol(), v->symbol());
}
TEST_F(ScopeStackTest, Global_CanNotPop) {
ScopeStack<uint32_t> s;
- s.set_global("var", 5);
+ Symbol sym(1);
+ s.set_global(sym, 5);
s.pop_scope();
uint32_t val = 0;
- EXPECT_TRUE(s.get("var", &val));
+ EXPECT_TRUE(s.get(sym, &val));
EXPECT_EQ(val, 5u);
}
TEST_F(ScopeStackTest, Scope) {
ScopeStack<uint32_t> s;
+ Symbol sym(1);
s.push_scope();
- s.set("var", 5);
+ s.set(sym, 5);
uint32_t val = 0;
- EXPECT_TRUE(s.get("var", &val));
+ EXPECT_TRUE(s.get(sym, &val));
EXPECT_EQ(val, 5u);
}
-TEST_F(ScopeStackTest, Get_MissingName) {
+TEST_F(ScopeStackTest, Get_MissingSymbol) {
ScopeStack<uint32_t> s;
+ Symbol sym(1);
uint32_t ret = 0;
- EXPECT_FALSE(s.get("val", &ret));
+ EXPECT_FALSE(s.get(sym, &ret));
EXPECT_EQ(ret, 0u);
}
TEST_F(ScopeStackTest, Has) {
ScopeStack<uint32_t> s;
- s.set_global("var2", 3);
+ Symbol sym(1);
+ Symbol sym2(2);
+ s.set_global(sym2, 3);
s.push_scope();
- s.set("var", 5);
+ s.set(sym, 5);
- EXPECT_TRUE(s.has("var"));
- EXPECT_TRUE(s.has("var2"));
+ EXPECT_TRUE(s.has(sym));
+ EXPECT_TRUE(s.has(sym2));
}
TEST_F(ScopeStackTest, ReturnsScopeBeforeGlobalFirst) {
ScopeStack<uint32_t> s;
- s.set_global("var", 3);
+ Symbol sym(1);
+ s.set_global(sym, 3);
s.push_scope();
- s.set("var", 5);
+ s.set(sym, 5);
uint32_t ret;
- EXPECT_TRUE(s.get("var", &ret));
+ EXPECT_TRUE(s.get(sym, &ret));
EXPECT_EQ(ret, 5u);
}