transform: s/_tint_/tint_ for reserved keywords

Bug: tint:640
Change-Id: I7525ac97d8942fffa651847d703bf37a10cbc71d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47636
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
Ben Clayton
2021-04-13 23:44:57 +00:00
committed by Commit Bot service account
parent a5a31d35f6
commit 4d349b5391
7 changed files with 204 additions and 114 deletions

View File

@@ -309,7 +309,7 @@ fn main() {
auto expect = R"(
[[stage(fragment)]]
fn main() {
var _tint_)" + keyword +
var tint_)" + keyword +
R"( : i32;
}
)";
@@ -318,6 +318,51 @@ fn main() {
EXPECT_EQ(expect, str(got));
}
TEST_P(HlslReservedKeywordTest, AttemptSymbolCollision) {
auto keyword = GetParam();
auto src = R"(
[[stage(fragment)]]
fn main() {
var tint_)" +
keyword +
R"( : i32;
var tint_)" +
keyword +
R"(_1 : i32;
var )" + keyword +
R"( : i32;
var tint_)" +
keyword +
R"(_2 : i32;
var tint_)" +
keyword +
R"(_3 : i32;
}
)";
auto expect = R"(
[[stage(fragment)]]
fn main() {
var tint_)" + keyword +
R"( : i32;
var tint_)" + keyword +
R"(_1 : i32;
var tint_)" + keyword +
R"(_2 : i32;
var tint_)" + keyword +
R"(_2_1 : i32;
var tint_)" + keyword +
R"(_3 : i32;
}
)";
auto got = Run<Hlsl>(src);
EXPECT_EQ(expect, str(got));
}
INSTANTIATE_TEST_SUITE_P(HlslReservedKeywordTest,
HlslReservedKeywordTest,
testing::Values("AddressU",

View File

@@ -36,22 +36,22 @@ fn main() {
var half : f32;
var half1 : f32;
var half2 : f32;
var _tint_half2 : f32;
var tint_half2 : f32;
}
)";
auto* expect = R"(
struct _tint_class {
_tint_delete : i32;
struct tint_class {
tint_delete : i32;
};
[[stage(fragment)]]
fn _tint_main() {
fn tint_main() {
var foo : i32;
var _tint_half : f32;
var tint_half : f32;
var half1 : f32;
var _tint_half2 : f32;
var _tint_half2_1 : f32;
var tint_half2 : f32;
var tint_half2_1 : f32;
}
)";
@@ -73,8 +73,8 @@ fn main() {
auto expect = R"(
[[stage(fragment)]]
fn _tint_main() {
var _tint_)" + keyword +
fn tint_main() {
var tint_)" + keyword +
R"( : i32;
}
)";
@@ -83,6 +83,51 @@ fn _tint_main() {
EXPECT_EQ(expect, str(got));
}
TEST_P(MslReservedKeywordTest, AttemptSymbolCollision) {
auto keyword = GetParam();
auto src = R"(
[[stage(fragment)]]
fn frag_main() {
var tint_)" +
keyword +
R"( : i32;
var tint_)" +
keyword +
R"(_1 : i32;
var )" + keyword +
R"( : i32;
var tint_)" +
keyword +
R"(_2 : i32;
var tint_)" +
keyword +
R"(_3 : i32;
}
)";
auto expect = R"(
[[stage(fragment)]]
fn frag_main() {
var tint_)" + keyword +
R"( : i32;
var tint_)" + keyword +
R"(_1 : i32;
var tint_)" + keyword +
R"(_2 : i32;
var tint_)" + keyword +
R"(_2_1 : i32;
var tint_)" + keyword +
R"(_3 : i32;
}
)";
auto got = Run<Msl>(src);
EXPECT_EQ(expect, str(got));
}
INSTANTIATE_TEST_SUITE_P(MslReservedKeywordTest,
MslReservedKeywordTest,
testing::Values(

View File

@@ -63,7 +63,7 @@ void Transform::RenameReservedKeywords(CloneContext* ctx,
ctx->ReplaceAll([=](Symbol in) {
auto name_in = ctx->src->Symbols().NameFor(in);
if (std::binary_search(names, names + count, name_in)) {
return ctx->dst->Symbols().New("_tint_" + name_in);
return ctx->dst->Symbols().New("tint_" + name_in);
}
return ctx->dst->Symbols().New(name_in);
});