mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-21 02:39:11 +00:00
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:
committed by
Commit Bot service account
parent
a5a31d35f6
commit
4d349b5391
@@ -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",
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user