Remove the `type` keyword.
`type` has been deprecated in favour of `alias`. This CL removes the deprecation warning and moves `type` to a reserved word. Bug: tint:1812 Change-Id: I05246b9887a0890ae8343a0a132bd6f93353d5ae Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120540 Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
This commit is contained in:
parent
db9d4453f8
commit
21571709a2
|
@ -6,6 +6,7 @@
|
|||
|
||||
* The `sig` member of the return type of `frexp()` has been renamed to `fract`. [tint:1766](crbug.com/tint/1766)
|
||||
* Calling a function with multiple pointer arguments that alias each other is now a error. [tint:1675](crbug.com/tint/1675)
|
||||
* `type` deprecation has been removed. `alias` must be used now. [tint:1812](crbug.com/tint/1812)
|
||||
|
||||
## Changes for M111
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ class DepthStencilSamplingTest : public DawnTestWithParams<DepthStencilSamplingT
|
|||
const std::vector<uint32_t> components,
|
||||
std::ostringstream& shaderSource,
|
||||
std::ostringstream& shaderBody) {
|
||||
shaderSource << "type StencilValues = array<u32, " << components.size() << ">;\n";
|
||||
shaderSource << "alias StencilValues = array<u32, " << components.size() << ">;\n";
|
||||
shaderSource << R"(
|
||||
struct DepthResult {
|
||||
value : f32
|
||||
|
|
|
@ -42,8 +42,8 @@ struct S1 {
|
|||
const c0 : i32 = 10;
|
||||
const c1 : bool = true;
|
||||
|
||||
type t0 = array<vec4<f32>>;
|
||||
type t1 = array<vec4<f32>>;
|
||||
alias t0 = array<vec4<f32>>;
|
||||
alias t1 = array<vec4<f32>>;
|
||||
|
||||
var<private> g0 : u32 = 20u;
|
||||
var<private> g1 : f32 = 123.0;
|
||||
|
@ -111,11 +111,11 @@ fn main() {
|
|||
|
||||
const declaration_order_check_0 : i32 = 1;
|
||||
|
||||
type declaration_order_check_1 = f32;
|
||||
alias declaration_order_check_1 = f32;
|
||||
|
||||
fn declaration_order_check_2() {}
|
||||
|
||||
type declaration_order_check_3 = f32;
|
||||
alias declaration_order_check_3 = f32;
|
||||
|
||||
const declaration_order_check_4 : i32 = 1;
|
||||
|
||||
|
|
|
@ -1193,9 +1193,6 @@ Token Lexer::check_keyword(const Source& source, std::string_view str) {
|
|||
if (str == "true") {
|
||||
return {Token::Type::kTrue, source, "true"};
|
||||
}
|
||||
if (str == "type") {
|
||||
return {Token::Type::kType, source, "type"};
|
||||
}
|
||||
if (str == "var") {
|
||||
return {Token::Type::kVar, source, "var"};
|
||||
}
|
||||
|
|
|
@ -1082,7 +1082,6 @@ INSTANTIATE_TEST_SUITE_P(LexerTest,
|
|||
TokenData{"struct", Token::Type::kStruct},
|
||||
TokenData{"switch", Token::Type::kSwitch},
|
||||
TokenData{"true", Token::Type::kTrue},
|
||||
TokenData{"type", Token::Type::kType},
|
||||
TokenData{"var", Token::Type::kVar},
|
||||
TokenData{"while", Token::Type::kWhile}));
|
||||
|
||||
|
|
|
@ -99,10 +99,11 @@ bool is_reserved(const Token& t) {
|
|||
t == "signed" || t == "sizeof" || t == "smooth" || t == "snorm" || t == "static" ||
|
||||
t == "static_cast" || t == "std" || t == "subroutine" || t == "super" || t == "target" ||
|
||||
t == "template" || t == "this" || t == "thread_local" || t == "throw" || t == "trait" ||
|
||||
t == "try" || t == "typedef" || t == "typeid" || t == "typename" || t == "typeof" ||
|
||||
t == "union" || t == "unless" || t == "unorm" || t == "unsafe" || t == "unsized" ||
|
||||
t == "use" || t == "using" || t == "varying" || t == "virtual" || t == "volatile" ||
|
||||
t == "wgsl" || t == "where" || t == "with" || t == "writeonly" || t == "yield";
|
||||
t == "try" || t == "type" || t == "typedef" || t == "typeid" || t == "typename" ||
|
||||
t == "typeof" || t == "union" || t == "unless" || t == "unorm" || t == "unsafe" ||
|
||||
t == "unsized" || t == "use" || t == "using" || t == "varying" || t == "virtual" ||
|
||||
t == "volatile" || t == "wgsl" || t == "where" || t == "with" || t == "writeonly" ||
|
||||
t == "yield";
|
||||
}
|
||||
|
||||
/// Enter-exit counters for block token types.
|
||||
|
@ -774,12 +775,7 @@ Maybe<ParserImpl::VariableQualifier> ParserImpl::variable_qualifier() {
|
|||
// : ALIAS IDENT EQUAL type_specifier
|
||||
Maybe<const ast::Alias*> ParserImpl::type_alias_decl() {
|
||||
Source source;
|
||||
if (match(Token::Type::kAlias, &source)) {
|
||||
// matched.
|
||||
} else if (match(Token::Type::kType, &source)) {
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
deprecated(source, "'type' has been renamed to 'alias'");
|
||||
} else {
|
||||
if (!match(Token::Type::kAlias, &source)) {
|
||||
return Failure::kNoMatch;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,14 +52,9 @@ fn f() { return 1 & >; }
|
|||
}
|
||||
|
||||
TEST_F(ParserImplErrorTest, AliasDeclInvalidAttribute) {
|
||||
EXPECT(
|
||||
"@invariant type e=u32;",
|
||||
R"(test.wgsl:1:12 warning: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
@invariant type e=u32;
|
||||
^^^^
|
||||
|
||||
test.wgsl:1:2 error: unexpected attributes
|
||||
@invariant type e=u32;
|
||||
EXPECT("@invariant alias e=u32;",
|
||||
R"(test.wgsl:1:2 error: unexpected attributes
|
||||
@invariant alias e=u32;
|
||||
^^^^^^^^^
|
||||
)");
|
||||
}
|
||||
|
@ -681,10 +676,10 @@ const_assert;
|
|||
}
|
||||
|
||||
TEST_F(ParserImplErrorTest, GlobalDeclConstAssertMissingCondThenAlias) {
|
||||
EXPECT("const_assert\ntype T = i32;",
|
||||
EXPECT("const_assert\nalias T = i32;",
|
||||
R"(test.wgsl:2:1 error: unable to parse condition expression
|
||||
type T = i32;
|
||||
^^^^
|
||||
alias T = i32;
|
||||
^^^^^
|
||||
)");
|
||||
}
|
||||
|
||||
|
@ -736,14 +731,14 @@ static_assert;
|
|||
// TODO(crbug.com/tint/1807): DEPRECATED
|
||||
TEST_F(ParserImplErrorTest, DEPRECATED_GlobalDeclStaticAssertMissingCondThenAlias) {
|
||||
EXPECT(
|
||||
"static_assert\ntype T = i32;",
|
||||
"static_assert\nalias T = i32;",
|
||||
R"(test.wgsl:1:1 warning: use of deprecated language feature: 'static_assert' has been renamed to 'const_assert'
|
||||
static_assert
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
test.wgsl:2:1 error: unable to parse condition expression
|
||||
type T = i32;
|
||||
^^^^
|
||||
alias T = i32;
|
||||
^^^^^
|
||||
)");
|
||||
}
|
||||
|
||||
|
@ -882,57 +877,6 @@ alias meow = f32
|
|||
)");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplErrorTest, DEPRECATED_GlobalDeclTypeAliasMissingIdentifier) {
|
||||
EXPECT("alias 1 = f32;",
|
||||
R"(test.wgsl:1:7 error: expected identifier for type alias
|
||||
alias 1 = f32;
|
||||
^
|
||||
)");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplErrorTest, DEPRECATED_GlobalDeclTypeAliasInvalidType) {
|
||||
EXPECT(
|
||||
"type meow = 1;",
|
||||
R"(test.wgsl:1:1 warning: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
type meow = 1;
|
||||
^^^^
|
||||
|
||||
test.wgsl:1:13 error: invalid type alias
|
||||
type meow = 1;
|
||||
^
|
||||
)");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplErrorTest, DEPRECATED_GlobalDeclTypeAliasMissingAssignment) {
|
||||
EXPECT(
|
||||
"type meow f32",
|
||||
R"(test.wgsl:1:1 warning: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
type meow f32
|
||||
^^^^
|
||||
|
||||
test.wgsl:1:11 error: expected '=' for type alias
|
||||
type meow f32
|
||||
^^^
|
||||
)");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplErrorTest, DEPRECATED_GlobalDeclTypeAliasMissingSemicolon) {
|
||||
EXPECT(
|
||||
"type meow = f32",
|
||||
R"(test.wgsl:1:1 warning: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
type meow = f32
|
||||
^^^^
|
||||
|
||||
test.wgsl:1:16 error: expected ';' for type alias
|
||||
type meow = f32
|
||||
^
|
||||
)");
|
||||
}
|
||||
|
||||
TEST_F(ParserImplErrorTest, GlobalDeclVarArrayMissingGreaterThan) {
|
||||
EXPECT("var i : array<u32, 3;",
|
||||
R"(test.wgsl:1:14 error: expected ';' for variable declaration
|
||||
|
|
|
@ -132,41 +132,6 @@ alias B = A;)");
|
|||
ast::CheckIdentifier(program.Symbols(), alias->type, "A");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplTest, DEPRECATED_GlobalDecl_TypeAlias) {
|
||||
auto p = parser("type A = i32;");
|
||||
p->global_decl();
|
||||
ASSERT_FALSE(p->has_error()) << p->error();
|
||||
|
||||
auto program = p->program();
|
||||
ASSERT_EQ(program.AST().TypeDecls().Length(), 1u);
|
||||
ASSERT_TRUE(program.AST().TypeDecls()[0]->Is<ast::Alias>());
|
||||
ast::CheckIdentifier(program.Symbols(), program.AST().TypeDecls()[0]->As<ast::Alias>()->name,
|
||||
"A");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplTest, DEPRECATED_GlobalDecl_TypeAlias_StructIdent) {
|
||||
auto p = parser(R"(struct A {
|
||||
a : f32,
|
||||
}
|
||||
type B = A;)");
|
||||
p->global_decl();
|
||||
p->global_decl();
|
||||
ASSERT_FALSE(p->has_error()) << p->error();
|
||||
|
||||
auto program = p->program();
|
||||
ASSERT_EQ(program.AST().TypeDecls().Length(), 2u);
|
||||
ASSERT_TRUE(program.AST().TypeDecls()[0]->Is<ast::Struct>());
|
||||
auto* str = program.AST().TypeDecls()[0]->As<ast::Struct>();
|
||||
EXPECT_EQ(str->name->symbol, program.Symbols().Get("A"));
|
||||
|
||||
ASSERT_TRUE(program.AST().TypeDecls()[1]->Is<ast::Alias>());
|
||||
auto* alias = program.AST().TypeDecls()[1]->As<ast::Alias>();
|
||||
EXPECT_EQ(alias->name->symbol, program.Symbols().Get("B"));
|
||||
ast::CheckIdentifier(program.Symbols(), alias->type, "A");
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, GlobalDecl_TypeAlias_MissingSemicolon) {
|
||||
auto p = parser("alias A = i32");
|
||||
p->global_decl();
|
||||
|
@ -174,16 +139,6 @@ TEST_F(ParserImplTest, GlobalDecl_TypeAlias_MissingSemicolon) {
|
|||
EXPECT_EQ(p->error(), "1:14: expected ';' for type alias");
|
||||
}
|
||||
|
||||
// TODO(crbug.com/tint/1812): DEPRECATED
|
||||
TEST_F(ParserImplTest, DEPRECATED_GlobalDecl_TypeAlias_MissingSemicolon) {
|
||||
auto p = parser("type A = i32");
|
||||
p->global_decl();
|
||||
ASSERT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
R"(1:1: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
1:13: expected ';' for type alias)");
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, GlobalDecl_Function) {
|
||||
auto p = parser("fn main() { return; }");
|
||||
p->global_decl();
|
||||
|
|
|
@ -216,6 +216,7 @@ INSTANTIATE_TEST_SUITE_P(ParserImplReservedKeywordTest,
|
|||
"throw",
|
||||
"trait",
|
||||
"try",
|
||||
"type",
|
||||
"typedef",
|
||||
"typeid",
|
||||
"typename",
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace tint::reader::wgsl {
|
|||
namespace {
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_ParsesType) {
|
||||
auto p = parser("type a = i32");
|
||||
auto p = parser("alias a = i32");
|
||||
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_FALSE(p->has_error());
|
||||
|
@ -29,11 +29,11 @@ TEST_F(ParserImplTest, TypeDecl_ParsesType) {
|
|||
ASSERT_TRUE(t->Is<ast::Alias>());
|
||||
auto* alias = t->As<ast::Alias>();
|
||||
ast::CheckIdentifier(p->builder().Symbols(), alias->type, "i32");
|
||||
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 13u}}));
|
||||
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 14u}}));
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_Parses_Ident) {
|
||||
auto p = parser("type a = B");
|
||||
auto p = parser("alias a = B");
|
||||
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_FALSE(p->has_error());
|
||||
|
@ -44,7 +44,7 @@ TEST_F(ParserImplTest, TypeDecl_Parses_Ident) {
|
|||
auto* alias = t.value->As<ast::Alias>();
|
||||
ast::CheckIdentifier(p->builder().Symbols(), alias->name, "a");
|
||||
ast::CheckIdentifier(p->builder().Symbols(), alias->type, "B");
|
||||
EXPECT_EQ(alias->source.range, (Source::Range{{1u, 1u}, {1u, 11u}}));
|
||||
EXPECT_EQ(alias->source.range, (Source::Range{{1u, 1u}, {1u, 12u}}));
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_Unicode_Parses_Ident) {
|
||||
|
@ -52,7 +52,7 @@ TEST_F(ParserImplTest, TypeDecl_Unicode_Parses_Ident) {
|
|||
"\xf0\x9d\x93\xb6\xf0\x9d\x94\x82\x5f\xf0\x9d\x93\xbd\xf0\x9d\x94\x82\xf0"
|
||||
"\x9d\x93\xb9\xf0\x9d\x93\xae";
|
||||
|
||||
auto p = parser("type " + ident + " = i32");
|
||||
auto p = parser("alias " + ident + " = i32");
|
||||
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_FALSE(p->has_error());
|
||||
|
@ -63,43 +63,37 @@ TEST_F(ParserImplTest, TypeDecl_Unicode_Parses_Ident) {
|
|||
auto* alias = t.value->As<ast::Alias>();
|
||||
ast::CheckIdentifier(p->builder().Symbols(), alias->name, ident);
|
||||
ast::CheckIdentifier(p->builder().Symbols(), alias->type, "i32");
|
||||
EXPECT_EQ(alias->source.range, (Source::Range{{1u, 1u}, {1u, 37u}}));
|
||||
EXPECT_EQ(alias->source.range, (Source::Range{{1u, 1u}, {1u, 38u}}));
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_MissingIdent) {
|
||||
auto p = parser("type = i32");
|
||||
auto p = parser("alias = i32");
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_TRUE(t.errored);
|
||||
EXPECT_FALSE(t.matched);
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(t.value, nullptr);
|
||||
EXPECT_EQ(p->error(),
|
||||
R"(1:1: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
1:6: expected identifier for type alias)");
|
||||
EXPECT_EQ(p->error(), R"(1:7: expected identifier for type alias)");
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_InvalidIdent) {
|
||||
auto p = parser("type 123 = i32");
|
||||
auto p = parser("alias 123 = i32");
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_TRUE(t.errored);
|
||||
EXPECT_FALSE(t.matched);
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(t.value, nullptr);
|
||||
EXPECT_EQ(p->error(),
|
||||
R"(1:1: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
1:6: expected identifier for type alias)");
|
||||
EXPECT_EQ(p->error(), R"(1:7: expected identifier for type alias)");
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_MissingEqual) {
|
||||
auto p = parser("type a i32");
|
||||
auto p = parser("alias a i32");
|
||||
auto t = p->type_alias_decl();
|
||||
EXPECT_TRUE(t.errored);
|
||||
EXPECT_FALSE(t.matched);
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(t.value, nullptr);
|
||||
EXPECT_EQ(p->error(),
|
||||
R"(1:1: use of deprecated language feature: 'type' has been renamed to 'alias'
|
||||
1:8: expected '=' for type alias)");
|
||||
EXPECT_EQ(p->error(), R"(1:9: expected '=' for type alias)");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -189,8 +189,6 @@ std::string_view Token::TypeToName(Type type) {
|
|||
return "switch";
|
||||
case Token::Type::kTrue:
|
||||
return "true";
|
||||
case Token::Type::kType:
|
||||
return "type";
|
||||
case Token::Type::kVar:
|
||||
return "var";
|
||||
case Token::Type::kWhile:
|
||||
|
|
|
@ -201,8 +201,6 @@ class Token {
|
|||
kSwitch,
|
||||
/// A 'true'
|
||||
kTrue,
|
||||
/// A 'type'
|
||||
kType,
|
||||
/// A 'var'
|
||||
kVar,
|
||||
/// A 'while'
|
||||
|
|
|
@ -132,7 +132,7 @@ fn main() {
|
|||
|
||||
TEST_F(AddBlockAttributeTest, BasicArray_Alias) {
|
||||
auto* src = R"(
|
||||
type Numbers = array<vec4<f32>, 4u>;
|
||||
alias Numbers = array<vec4<f32>, 4u>;
|
||||
|
||||
@group(0) @binding(0)
|
||||
var<uniform> u : Numbers;
|
||||
|
@ -693,13 +693,13 @@ struct Inner {
|
|||
f : f32,
|
||||
};
|
||||
|
||||
type MyInner = Inner;
|
||||
alias MyInner = Inner;
|
||||
|
||||
struct Outer {
|
||||
i : MyInner,
|
||||
};
|
||||
|
||||
type MyOuter = Outer;
|
||||
alias MyOuter = Outer;
|
||||
|
||||
@group(0) @binding(0)
|
||||
var<uniform> u0 : MyOuter;
|
||||
|
@ -763,12 +763,12 @@ fn main() {
|
|||
@group(0) @binding(1)
|
||||
var<uniform> u1 : MyInner;
|
||||
|
||||
type MyInner = Inner;
|
||||
alias MyInner = Inner;
|
||||
|
||||
@group(0) @binding(0)
|
||||
var<uniform> u0 : MyOuter;
|
||||
|
||||
type MyOuter = Outer;
|
||||
alias MyOuter = Outer;
|
||||
|
||||
struct Outer {
|
||||
i : MyInner,
|
||||
|
|
|
@ -164,7 +164,7 @@ fn frag_main(tint_symbol : tint_symbol_1) {
|
|||
|
||||
TEST_F(CanonicalizeEntryPointIOTest, Parameter_TypeAlias) {
|
||||
auto* src = R"(
|
||||
type myf32 = f32;
|
||||
alias myf32 = f32;
|
||||
|
||||
@fragment
|
||||
fn frag_main(@location(1) loc1 : myf32) {
|
||||
|
@ -204,7 +204,7 @@ fn frag_main(@location(1) loc1 : myf32) {
|
|||
var x : myf32 = loc1;
|
||||
}
|
||||
|
||||
type myf32 = f32;
|
||||
alias myf32 = f32;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
@ -1561,7 +1561,7 @@ struct FragmentInput {
|
|||
|
||||
TEST_F(CanonicalizeEntryPointIOTest, Struct_TypeAliases) {
|
||||
auto* src = R"(
|
||||
type myf32 = f32;
|
||||
alias myf32 = f32;
|
||||
|
||||
struct FragmentInput {
|
||||
@location(0) col1 : myf32,
|
||||
|
@ -1573,9 +1573,9 @@ struct FragmentOutput {
|
|||
@location(1) col2 : myf32,
|
||||
};
|
||||
|
||||
type MyFragmentInput = FragmentInput;
|
||||
alias MyFragmentInput = FragmentInput;
|
||||
|
||||
type MyFragmentOutput = FragmentOutput;
|
||||
alias MyFragmentOutput = FragmentOutput;
|
||||
|
||||
fn foo(x : MyFragmentInput) -> myf32 {
|
||||
return x.col1;
|
||||
|
@ -1653,9 +1653,9 @@ fn frag_main(inputs : MyFragmentInput) -> MyFragmentOutput {
|
|||
return MyFragmentOutput(x, inputs.col2);
|
||||
}
|
||||
|
||||
type MyFragmentInput = FragmentInput;
|
||||
alias MyFragmentInput = FragmentInput;
|
||||
|
||||
type MyFragmentOutput = FragmentOutput;
|
||||
alias MyFragmentOutput = FragmentOutput;
|
||||
|
||||
fn foo(x : MyFragmentInput) -> myf32 {
|
||||
return x.col1;
|
||||
|
@ -1671,7 +1671,7 @@ struct FragmentOutput {
|
|||
@location(1) col2 : myf32,
|
||||
};
|
||||
|
||||
type myf32 = f32;
|
||||
alias myf32 = f32;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
|
|
@ -232,7 +232,7 @@ fn main() -> vec4<f32> {
|
|||
TEST_F(CombineSamplersTest, AliasedTypes) {
|
||||
auto* src = R"(
|
||||
|
||||
type Tex2d = texture_2d<f32>;
|
||||
alias Tex2d = texture_2d<f32>;
|
||||
|
||||
@group(0) @binding(0) var t : Tex2d;
|
||||
|
||||
|
@ -282,7 +282,7 @@ fn sample(t : Tex2d, s : sampler, coords : vec2<f32>) -> vec4<f32> {
|
|||
@group(0) @binding(0) var t : Tex2d;
|
||||
@group(0) @binding(1) var s : sampler;
|
||||
|
||||
type Tex2d = texture_2d<f32>;
|
||||
alias Tex2d = texture_2d<f32>;
|
||||
)";
|
||||
auto* expect = R"(
|
||||
@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t_s : texture_2d<f32>;
|
||||
|
|
|
@ -3401,9 +3401,9 @@ struct S1 {
|
|||
c : i32,
|
||||
};
|
||||
|
||||
type A1 = S1;
|
||||
alias A1 = S1;
|
||||
|
||||
type A1_Array = array<S1, 3>;
|
||||
alias A1_Array = array<S1, 3>;
|
||||
|
||||
struct S2 {
|
||||
a : i32,
|
||||
|
@ -3411,9 +3411,9 @@ struct S2 {
|
|||
c : i32,
|
||||
};
|
||||
|
||||
type A2 = S2;
|
||||
alias A2 = S2;
|
||||
|
||||
type A2_Array = array<S2>;
|
||||
alias A2_Array = array<S2>;
|
||||
|
||||
struct SB {
|
||||
@size(128)
|
||||
|
@ -3496,9 +3496,9 @@ struct SB {
|
|||
b : A2_Array,
|
||||
};
|
||||
|
||||
type A2_Array = array<S2>;
|
||||
alias A2_Array = array<S2>;
|
||||
|
||||
type A2 = S2;
|
||||
alias A2 = S2;
|
||||
|
||||
struct S2 {
|
||||
a : i32,
|
||||
|
@ -3506,9 +3506,9 @@ struct S2 {
|
|||
c : i32,
|
||||
};
|
||||
|
||||
type A1 = S1;
|
||||
alias A1 = S1;
|
||||
|
||||
type A1_Array = array<S1, 3>;
|
||||
alias A1_Array = array<S1, 3>;
|
||||
|
||||
struct S1 {
|
||||
a : i32,
|
||||
|
|
|
@ -818,7 +818,7 @@ struct Inner {
|
|||
mat : mat3x4<f32>,
|
||||
};
|
||||
|
||||
type InnerArr = array<Inner, 4>;
|
||||
alias InnerArr = array<Inner, 4>;
|
||||
|
||||
struct Outer {
|
||||
arr : InnerArr,
|
||||
|
@ -1112,7 +1112,7 @@ struct Inner {
|
|||
mat : mat3x4<f32>,
|
||||
};
|
||||
|
||||
type InnerArr = array<Inner, 4>;
|
||||
alias InnerArr = array<Inner, 4>;
|
||||
|
||||
struct Outer {
|
||||
arr : InnerArr,
|
||||
|
@ -1356,7 +1356,7 @@ struct Inner {
|
|||
mat : mat3x4<f32>,
|
||||
};
|
||||
|
||||
type InnerArr = array<Inner, 4>;
|
||||
alias InnerArr = array<Inner, 4>;
|
||||
|
||||
struct Outer {
|
||||
arr : InnerArr,
|
||||
|
@ -1828,7 +1828,7 @@ struct Inner {
|
|||
mat : mat3x4<f32>,
|
||||
};
|
||||
|
||||
type InnerArr = array<Inner, 4>;
|
||||
alias InnerArr = array<Inner, 4>;
|
||||
|
||||
struct Outer {
|
||||
arr : InnerArr,
|
||||
|
|
|
@ -605,7 +605,7 @@ fn foo(@internal(disable_validation__ignore_address_space) @internal(disable_val
|
|||
|
||||
TEST_F(ModuleScopeVarToEntryPointParamTest, Buffer_RuntimeArray_Alias) {
|
||||
auto* src = R"(
|
||||
type myarray = array<f32>;
|
||||
alias myarray = array<f32>;
|
||||
|
||||
@group(0) @binding(0)
|
||||
var<storage> buffer : myarray;
|
||||
|
@ -643,7 +643,7 @@ fn main() {
|
|||
|
||||
@group(0) @binding(0) var<storage> buffer : myarray;
|
||||
|
||||
type myarray = array<f32>;
|
||||
alias myarray = array<f32>;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
|
|
@ -32,7 +32,7 @@ TEST_F(MultiplanarExternalTextureTest, ShouldRunEmptyModule) {
|
|||
|
||||
TEST_F(MultiplanarExternalTextureTest, ShouldRunHasExternalTextureAlias) {
|
||||
auto* src = R"(
|
||||
type ET = texture_external;
|
||||
alias ET = texture_external;
|
||||
)";
|
||||
|
||||
DataMap data;
|
||||
|
@ -1616,7 +1616,7 @@ fn f(ext_tex : texture_2d<f32>, ext_tex_plane_1 : texture_2d<f32>, ext_tex_param
|
|||
// Tests that the the transform handles aliases to external textures
|
||||
TEST_F(MultiplanarExternalTextureTest, ExternalTextureAlias) {
|
||||
auto* src = R"(
|
||||
type ET = texture_external;
|
||||
alias ET = texture_external;
|
||||
|
||||
fn f(t : ET, s : sampler) {
|
||||
textureSampleBaseClampToEdge(t, s, vec2<f32>(1.0, 2.0));
|
||||
|
@ -1724,7 +1724,7 @@ fn f(t : ET, s : sampler) {
|
|||
@group(0) @binding(0) var ext_tex : ET;
|
||||
@group(0) @binding(1) var smp : sampler;
|
||||
|
||||
type ET = texture_external;
|
||||
alias ET = texture_external;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
|
|
@ -373,7 +373,7 @@ fn foo() {
|
|||
|
||||
TEST_F(PreservePaddingTest, ArrayOfArray) {
|
||||
auto* src = R"(
|
||||
type Array = array<array<vec3<u32>, 4>, 3>;
|
||||
alias Array = array<array<vec3<u32>, 4>, 3>;
|
||||
|
||||
@group(0) @binding(0) var<storage, read_write> v : Array;
|
||||
|
||||
|
|
|
@ -1856,7 +1856,7 @@ TEST_P(RenamerBuiltinTypeTest, RenameShadowedByAlias) {
|
|||
};
|
||||
|
||||
auto src = expand(R"(
|
||||
type $name = $other_type;
|
||||
alias $name = $other_type;
|
||||
|
||||
@fragment
|
||||
fn f() {
|
||||
|
|
|
@ -416,7 +416,7 @@ TEST_F(SingleEntryPointTest, OverridableConstants_UnusedAliasForOverrideSizedArr
|
|||
|
||||
// This is all unused by the target entry point.
|
||||
@id(1) override c1 : u32;
|
||||
type arr_ty = array<i32, c1>;
|
||||
alias arr_ty = array<i32, c1>;
|
||||
var<workgroup> arr : arr_ty;
|
||||
|
||||
@compute @workgroup_size(64)
|
||||
|
|
|
@ -210,13 +210,13 @@ fn f() {
|
|||
|
||||
TEST_F(SpirvAtomicTest, AliasedArraysOfU32) {
|
||||
auto* src = R"(
|
||||
type A0 = u32;
|
||||
alias A0 = u32;
|
||||
|
||||
type A1 = array<A0, 1>;
|
||||
alias A1 = array<A0, 1>;
|
||||
|
||||
type A2 = array<A1, 2>;
|
||||
alias A2 = array<A1, 2>;
|
||||
|
||||
type A3 = array<A2, 3>;
|
||||
alias A3 = array<A2, 3>;
|
||||
|
||||
var<workgroup> wg : A3;
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ fn F(c : i32) {
|
|||
|
||||
TEST_F(UnshadowTest, LocalShadowsAlias) {
|
||||
auto* src = R"(
|
||||
type a = i32;
|
||||
alias a = i32;
|
||||
|
||||
fn X() {
|
||||
var a = false;
|
||||
|
@ -100,7 +100,7 @@ fn Z() {
|
|||
const a = true;
|
||||
}
|
||||
|
||||
type a = i32;
|
||||
alias a = i32;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
@ -691,7 +691,7 @@ const a : i32 = 1;
|
|||
|
||||
TEST_F(UnshadowTest, ParamShadowsAlias) {
|
||||
auto* src = R"(
|
||||
type a = i32;
|
||||
alias a = i32;
|
||||
|
||||
fn F(a : a) {
|
||||
{
|
||||
|
@ -732,7 +732,7 @@ fn F(a : a) {
|
|||
}
|
||||
}
|
||||
|
||||
type a = i32;
|
||||
alias a = i32;
|
||||
)";
|
||||
|
||||
auto* expect = R"(
|
||||
|
|
|
@ -1366,7 +1366,7 @@ struct S {
|
|||
TEST_F(ZeroInitWorkgroupMemoryTest, ArrayWithOverrideCount) {
|
||||
auto* src =
|
||||
R"(override O = 123;
|
||||
type A = array<i32, O*2>;
|
||||
alias A = array<i32, O*2>;
|
||||
|
||||
var<workgroup> W : A;
|
||||
|
||||
|
|
Loading…
Reference in New Issue