Move all Source constructor params to be the first
This consistency can be utilized by the ast::Builder to inject the source parameter if it isn't provided.
Bug: tint:396
Bug: tint:390
Change-Id: I2f19002131e79daae799b8cbe918eb192d6bfc75
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35503
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/ast/access_decoration.cc b/src/ast/access_decoration.cc
index 6d5e726..2346357 100644
--- a/src/ast/access_decoration.cc
+++ b/src/ast/access_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-AccessDecoration::AccessDecoration(AccessControl val, const Source& source)
+AccessDecoration::AccessDecoration(const Source& source, AccessControl val)
: Base(source), value_(val) {}
AccessDecoration::~AccessDecoration() = default;
@@ -33,7 +33,7 @@
}
AccessDecoration* AccessDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<AccessDecoration>(value_, ctx->Clone(source()));
+ return ctx->mod->create<AccessDecoration>(ctx->Clone(source()), value_);
}
} // namespace ast
diff --git a/src/ast/access_decoration.h b/src/ast/access_decoration.h
index 07d437e..dcf2d95 100644
--- a/src/ast/access_decoration.h
+++ b/src/ast/access_decoration.h
@@ -27,9 +27,9 @@
class AccessDecoration : public Castable<AccessDecoration, TypeDecoration> {
public:
/// constructor
- /// @param value the access value
/// @param source the source of this decoration
- explicit AccessDecoration(AccessControl value, const Source& source);
+ /// @param value the access value
+ explicit AccessDecoration(const Source& source, AccessControl value);
~AccessDecoration() override;
/// @returns the access control value
diff --git a/src/ast/binding_decoration.cc b/src/ast/binding_decoration.cc
index 127e600..13d48d7 100644
--- a/src/ast/binding_decoration.cc
+++ b/src/ast/binding_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-BindingDecoration::BindingDecoration(uint32_t val, const Source& source)
+BindingDecoration::BindingDecoration(const Source& source, uint32_t val)
: Base(source), value_(val) {}
BindingDecoration::~BindingDecoration() = default;
@@ -33,7 +33,7 @@
}
BindingDecoration* BindingDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<BindingDecoration>(value_, ctx->Clone(source()));
+ return ctx->mod->create<BindingDecoration>(ctx->Clone(source()), value_);
}
} // namespace ast
diff --git a/src/ast/binding_decoration.h b/src/ast/binding_decoration.h
index 0299ddc..ae4cc45 100644
--- a/src/ast/binding_decoration.h
+++ b/src/ast/binding_decoration.h
@@ -29,7 +29,7 @@
/// constructor
/// @param value the binding value
/// @param source the source of this decoration
- BindingDecoration(uint32_t value, const Source& source);
+ BindingDecoration(const Source& source, uint32_t value);
~BindingDecoration() override;
/// @returns the binding value
diff --git a/src/ast/binding_decoration_test.cc b/src/ast/binding_decoration_test.cc
index 54e6f74..5824236 100644
--- a/src/ast/binding_decoration_test.cc
+++ b/src/ast/binding_decoration_test.cc
@@ -24,12 +24,12 @@
using BindingDecorationTest = TestHelper;
TEST_F(BindingDecorationTest, Creation) {
- BindingDecoration d{2, Source{}};
+ BindingDecoration d{Source{}, 2};
EXPECT_EQ(2u, d.value());
}
TEST_F(BindingDecorationTest, Is) {
- BindingDecoration bd{2, Source{}};
+ BindingDecoration bd{Source{}, 2};
Decoration* d = &bd;
EXPECT_TRUE(d->Is<BindingDecoration>());
EXPECT_FALSE(d->Is<BuiltinDecoration>());
@@ -39,7 +39,7 @@
}
TEST_F(BindingDecorationTest, ToStr) {
- BindingDecoration d{2, Source{}};
+ BindingDecoration d{Source{}, 2};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(BindingDecoration{2}
diff --git a/src/ast/builtin_decoration.cc b/src/ast/builtin_decoration.cc
index 051761c..d7abdbe 100644
--- a/src/ast/builtin_decoration.cc
+++ b/src/ast/builtin_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-BuiltinDecoration::BuiltinDecoration(Builtin builtin, const Source& source)
+BuiltinDecoration::BuiltinDecoration(const Source& source, Builtin builtin)
: Base(source), builtin_(builtin) {}
BuiltinDecoration::~BuiltinDecoration() = default;
@@ -33,7 +33,7 @@
}
BuiltinDecoration* BuiltinDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<BuiltinDecoration>(builtin_, ctx->Clone(source()));
+ return ctx->mod->create<BuiltinDecoration>(ctx->Clone(source()), builtin_);
}
} // namespace ast
diff --git a/src/ast/builtin_decoration.h b/src/ast/builtin_decoration.h
index c907f69..5a1419b 100644
--- a/src/ast/builtin_decoration.h
+++ b/src/ast/builtin_decoration.h
@@ -26,9 +26,9 @@
: public Castable<BuiltinDecoration, VariableDecoration> {
public:
/// constructor
- /// @param builtin the builtin value
/// @param source the source of this decoration
- BuiltinDecoration(Builtin builtin, const Source& source);
+ /// @param builtin the builtin value
+ BuiltinDecoration(const Source& source, Builtin builtin);
~BuiltinDecoration() override;
/// @returns the builtin value
diff --git a/src/ast/builtin_decoration_test.cc b/src/ast/builtin_decoration_test.cc
index 3122651..0618f65 100644
--- a/src/ast/builtin_decoration_test.cc
+++ b/src/ast/builtin_decoration_test.cc
@@ -24,12 +24,12 @@
using BuiltinDecorationTest = TestHelper;
TEST_F(BuiltinDecorationTest, Creation) {
- BuiltinDecoration d{Builtin::kFragDepth, Source{}};
+ BuiltinDecoration d{Source{}, Builtin::kFragDepth};
EXPECT_EQ(Builtin::kFragDepth, d.value());
}
TEST_F(BuiltinDecorationTest, Is) {
- BuiltinDecoration bd{Builtin::kFragDepth, Source{}};
+ BuiltinDecoration bd{Source{}, Builtin::kFragDepth};
Decoration* d = &bd;
EXPECT_FALSE(d->Is<BindingDecoration>());
EXPECT_TRUE(d->Is<BuiltinDecoration>());
@@ -39,7 +39,7 @@
}
TEST_F(BuiltinDecorationTest, ToStr) {
- BuiltinDecoration d{Builtin::kFragDepth, Source{}};
+ BuiltinDecoration d{Source{}, Builtin::kFragDepth};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(BuiltinDecoration{frag_depth}
diff --git a/src/ast/constant_id_decoration.cc b/src/ast/constant_id_decoration.cc
index dbdd8ff..840a30d 100644
--- a/src/ast/constant_id_decoration.cc
+++ b/src/ast/constant_id_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-ConstantIdDecoration::ConstantIdDecoration(uint32_t val, const Source& source)
+ConstantIdDecoration::ConstantIdDecoration(const Source& source, uint32_t val)
: Base(source), value_(val) {}
ConstantIdDecoration::~ConstantIdDecoration() = default;
@@ -33,7 +33,7 @@
}
ConstantIdDecoration* ConstantIdDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<ConstantIdDecoration>(value_, ctx->Clone(source()));
+ return ctx->mod->create<ConstantIdDecoration>(ctx->Clone(source()), value_);
}
} // namespace ast
diff --git a/src/ast/constant_id_decoration.h b/src/ast/constant_id_decoration.h
index d683e2a..bb990ae 100644
--- a/src/ast/constant_id_decoration.h
+++ b/src/ast/constant_id_decoration.h
@@ -26,9 +26,9 @@
: public Castable<ConstantIdDecoration, VariableDecoration> {
public:
/// constructor
- /// @param val the constant_id value
/// @param source the source of this decoration
- ConstantIdDecoration(uint32_t val, const Source& source);
+ /// @param val the constant_id value
+ ConstantIdDecoration(const Source& source, uint32_t val);
~ConstantIdDecoration() override;
/// @returns the constant id value
diff --git a/src/ast/constant_id_decoration_test.cc b/src/ast/constant_id_decoration_test.cc
index 28f77ee..493c6da 100644
--- a/src/ast/constant_id_decoration_test.cc
+++ b/src/ast/constant_id_decoration_test.cc
@@ -23,12 +23,12 @@
using ConstantIdDecorationTest = TestHelper;
TEST_F(ConstantIdDecorationTest, Creation) {
- ConstantIdDecoration d{12, Source{}};
+ ConstantIdDecoration d{Source{}, 12};
EXPECT_EQ(12u, d.value());
}
TEST_F(ConstantIdDecorationTest, Is) {
- ConstantIdDecoration cd{27, Source{}};
+ ConstantIdDecoration cd{Source{}, 27};
Decoration* d = &cd;
EXPECT_FALSE(d->Is<BindingDecoration>());
EXPECT_FALSE(d->Is<BuiltinDecoration>());
@@ -38,7 +38,7 @@
}
TEST_F(ConstantIdDecorationTest, ToStr) {
- ConstantIdDecoration d{1200, Source{}};
+ ConstantIdDecoration d{Source{}, 1200};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(ConstantIdDecoration{1200}
diff --git a/src/ast/decoration_test.cc b/src/ast/decoration_test.cc
index f3feae8..8ec0a01 100644
--- a/src/ast/decoration_test.cc
+++ b/src/ast/decoration_test.cc
@@ -43,21 +43,21 @@
using DecorationTest = TestHelper;
TEST_F(DecorationTest, AsCorrectType) {
- auto* decoration = create<ConstantIdDecoration>(1, Source{});
+ auto* decoration = create<ConstantIdDecoration>(Source{}, 1);
auto* upcast = static_cast<Decoration*>(decoration);
auto* downcast = As<VariableDecoration>(upcast);
EXPECT_EQ(decoration, downcast);
}
TEST_F(DecorationTest, AsIncorrectType) {
- auto* decoration = create<ConstantIdDecoration>(1, Source{});
+ auto* decoration = create<ConstantIdDecoration>(Source{}, 1);
auto* upcast = static_cast<Decoration*>(decoration);
auto* downcast = As<ArrayDecoration>(upcast);
EXPECT_EQ(nullptr, downcast);
}
TEST_F(DecorationTest, Is) {
- Decoration* decoration = create<ConstantIdDecoration>(1, Source{});
+ Decoration* decoration = create<ConstantIdDecoration>(Source{}, 1);
EXPECT_TRUE(decoration->Is<VariableDecoration>());
EXPECT_FALSE(decoration->Is<ArrayDecoration>());
}
diff --git a/src/ast/function_test.cc b/src/ast/function_test.cc
index 546e969..0d9f645 100644
--- a/src/ast/function_test.cc
+++ b/src/ast/function_test.cc
@@ -107,25 +107,25 @@
auto* loc1 = create<Variable>(Source{}, "loc1", StorageClass::kInput, &i32,
false, nullptr,
ast::VariableDecorationList{
- create<LocationDecoration>(0, Source{}),
+ create<LocationDecoration>(Source{}, 0),
});
auto* loc2 = create<Variable>(Source{}, "loc2", StorageClass::kInput, &i32,
false, nullptr,
ast::VariableDecorationList{
- create<LocationDecoration>(1, Source{}),
+ create<LocationDecoration>(Source{}, 1),
});
auto* builtin1 = create<Variable>(
Source{}, "builtin1", StorageClass::kInput, &i32, false, nullptr,
ast::VariableDecorationList{
- create<BuiltinDecoration>(Builtin::kPosition, Source{}),
+ create<BuiltinDecoration>(Source{}, Builtin::kPosition),
});
auto* builtin2 = create<Variable>(
Source{}, "builtin2", StorageClass::kInput, &i32, false, nullptr,
ast::VariableDecorationList{
- create<BuiltinDecoration>(Builtin::kFragDepth, Source{}),
+ create<BuiltinDecoration>(Source{}, Builtin::kFragDepth),
});
Function f(Source{}, func_sym, "func", VariableList{}, &void_type,
@@ -155,25 +155,25 @@
auto* loc1 = create<Variable>(Source{}, "loc1", StorageClass::kInput, &i32,
false, nullptr,
ast::VariableDecorationList{
- create<LocationDecoration>(0, Source{}),
+ create<LocationDecoration>(Source{}, 0),
});
auto* loc2 = create<Variable>(Source{}, "loc2", StorageClass::kInput, &i32,
false, nullptr,
ast::VariableDecorationList{
- create<LocationDecoration>(1, Source{}),
+ create<LocationDecoration>(Source{}, 1),
});
auto* builtin1 = create<Variable>(
Source{}, "builtin1", StorageClass::kInput, &i32, false, nullptr,
ast::VariableDecorationList{
- create<BuiltinDecoration>(Builtin::kPosition, Source{}),
+ create<BuiltinDecoration>(Source{}, Builtin::kPosition),
});
auto* builtin2 = create<Variable>(
Source{}, "builtin2", StorageClass::kInput, &i32, false, nullptr,
ast::VariableDecorationList{
- create<BuiltinDecoration>(Builtin::kFragDepth, Source{}),
+ create<BuiltinDecoration>(Source{}, Builtin::kFragDepth),
});
Function f(Source{}, func_sym, "func", VariableList{}, &void_type,
@@ -382,7 +382,7 @@
});
Function f(
Source{}, func_sym, "func", {}, &void_type, body,
- FunctionDecorationList{create<WorkgroupDecoration>(2, 4, 6, Source{})});
+ FunctionDecorationList{create<WorkgroupDecoration>(Source{}, 2, 4, 6)});
std::ostringstream out;
f.to_str(out, 2);
@@ -512,7 +512,7 @@
Function f(Source{}, func_sym, "func", {}, &void_type,
create<BlockStatement>(Source{}, StatementList{}),
- {create<WorkgroupDecoration>(2u, 4u, 6u, Source{})});
+ {create<WorkgroupDecoration>(Source{}, 2u, 4u, 6u)});
uint32_t x = 0;
uint32_t y = 0;
diff --git a/src/ast/location_decoration.cc b/src/ast/location_decoration.cc
index 64990a8..db28f0a 100644
--- a/src/ast/location_decoration.cc
+++ b/src/ast/location_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-LocationDecoration::LocationDecoration(uint32_t val, const Source& source)
+LocationDecoration::LocationDecoration(const Source& source, uint32_t val)
: Base(source), value_(val) {}
LocationDecoration::~LocationDecoration() = default;
@@ -33,7 +33,7 @@
}
LocationDecoration* LocationDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<LocationDecoration>(value_, ctx->Clone(source()));
+ return ctx->mod->create<LocationDecoration>(ctx->Clone(source()), value_);
}
} // namespace ast
diff --git a/src/ast/location_decoration.h b/src/ast/location_decoration.h
index dc641e4..f6583ea 100644
--- a/src/ast/location_decoration.h
+++ b/src/ast/location_decoration.h
@@ -27,9 +27,9 @@
: public Castable<LocationDecoration, VariableDecoration> {
public:
/// constructor
- /// @param value the location value
/// @param source the source of this decoration
- LocationDecoration(uint32_t value, const Source& source);
+ /// @param value the location value
+ LocationDecoration(const Source& source, uint32_t value);
~LocationDecoration() override;
/// @returns the location value
diff --git a/src/ast/location_decoration_test.cc b/src/ast/location_decoration_test.cc
index f402abe..0e32216 100644
--- a/src/ast/location_decoration_test.cc
+++ b/src/ast/location_decoration_test.cc
@@ -26,12 +26,12 @@
using LocationDecorationTest = TestHelper;
TEST_F(LocationDecorationTest, Creation) {
- LocationDecoration d{2, Source{}};
+ LocationDecoration d{Source{}, 2};
EXPECT_EQ(2u, d.value());
}
TEST_F(LocationDecorationTest, Is) {
- LocationDecoration ld{2, Source{}};
+ LocationDecoration ld{Source{}, 2};
Decoration* d = &ld;
EXPECT_FALSE(d->Is<BindingDecoration>());
EXPECT_FALSE(d->Is<BuiltinDecoration>());
@@ -41,7 +41,7 @@
}
TEST_F(LocationDecorationTest, ToStr) {
- LocationDecoration d{2, Source{}};
+ LocationDecoration d{Source{}, 2};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(LocationDecoration{2}
diff --git a/src/ast/set_decoration.cc b/src/ast/set_decoration.cc
index 3b5ea5e..3f6607c 100644
--- a/src/ast/set_decoration.cc
+++ b/src/ast/set_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-SetDecoration::SetDecoration(uint32_t val, const Source& source)
+SetDecoration::SetDecoration(const Source& source, uint32_t val)
: Base(source), value_(val) {}
SetDecoration::~SetDecoration() = default;
@@ -33,7 +33,7 @@
}
SetDecoration* SetDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<SetDecoration>(value_, ctx->Clone(source()));
+ return ctx->mod->create<SetDecoration>(ctx->Clone(source()), value_);
}
} // namespace ast
diff --git a/src/ast/set_decoration.h b/src/ast/set_decoration.h
index a58e334..1ea07b2 100644
--- a/src/ast/set_decoration.h
+++ b/src/ast/set_decoration.h
@@ -28,7 +28,7 @@
/// constructor
/// @param value the set value
/// @param source the source of this decoration
- SetDecoration(uint32_t value, const Source& source);
+ SetDecoration(const Source& source, uint32_t value);
~SetDecoration() override;
/// @returns the set value
diff --git a/src/ast/set_decoration_test.cc b/src/ast/set_decoration_test.cc
index 088f3f0..c0d6a15 100644
--- a/src/ast/set_decoration_test.cc
+++ b/src/ast/set_decoration_test.cc
@@ -24,12 +24,12 @@
using SetDecorationTest = TestHelper;
TEST_F(SetDecorationTest, Creation) {
- SetDecoration d{2, Source{}};
+ SetDecoration d{Source{}, 2};
EXPECT_EQ(2u, d.value());
}
TEST_F(SetDecorationTest, Is) {
- SetDecoration sd{2, Source{}};
+ SetDecoration sd{Source{}, 2};
Decoration* d = &sd;
EXPECT_FALSE(d->Is<BindingDecoration>());
EXPECT_FALSE(d->Is<BuiltinDecoration>());
@@ -39,7 +39,7 @@
}
TEST_F(SetDecorationTest, ToStr) {
- SetDecoration d{2, Source{}};
+ SetDecoration d{Source{}, 2};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(SetDecoration{2}
diff --git a/src/ast/stage_decoration.cc b/src/ast/stage_decoration.cc
index d66817f..50525f3 100644
--- a/src/ast/stage_decoration.cc
+++ b/src/ast/stage_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-StageDecoration::StageDecoration(PipelineStage stage, const Source& source)
+StageDecoration::StageDecoration(const Source& source, PipelineStage stage)
: Base(source), stage_(stage) {}
StageDecoration::~StageDecoration() = default;
@@ -33,7 +33,7 @@
}
StageDecoration* StageDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<StageDecoration>(stage_, ctx->Clone(source()));
+ return ctx->mod->create<StageDecoration>(ctx->Clone(source()), stage_);
}
} // namespace ast
diff --git a/src/ast/stage_decoration.h b/src/ast/stage_decoration.h
index 4339f98..a8ee49f 100644
--- a/src/ast/stage_decoration.h
+++ b/src/ast/stage_decoration.h
@@ -27,7 +27,7 @@
/// constructor
/// @param stage the pipeline stage
/// @param source the source of this decoration
- StageDecoration(PipelineStage stage, const Source& source);
+ StageDecoration(const Source& source, PipelineStage stage);
~StageDecoration() override;
/// @returns the stage
diff --git a/src/ast/stage_decoration_test.cc b/src/ast/stage_decoration_test.cc
index 4bfdad9..966d7e0 100644
--- a/src/ast/stage_decoration_test.cc
+++ b/src/ast/stage_decoration_test.cc
@@ -26,19 +26,19 @@
using StageDecorationTest = TestHelper;
TEST_F(StageDecorationTest, Creation_1param) {
- StageDecoration d{PipelineStage::kFragment, Source{}};
+ StageDecoration d{Source{}, PipelineStage::kFragment};
EXPECT_EQ(d.value(), PipelineStage::kFragment);
}
TEST_F(StageDecorationTest, Is) {
- StageDecoration sd{PipelineStage::kFragment, Source{}};
+ StageDecoration sd{Source{}, PipelineStage::kFragment};
Decoration* d = &sd;
EXPECT_FALSE(d->Is<WorkgroupDecoration>());
EXPECT_TRUE(d->Is<StageDecoration>());
}
TEST_F(StageDecorationTest, ToStr) {
- StageDecoration d{PipelineStage::kFragment, Source{}};
+ StageDecoration d{Source{}, PipelineStage::kFragment};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(StageDecoration{fragment}
diff --git a/src/ast/stride_decoration.cc b/src/ast/stride_decoration.cc
index 094ec56..9e42cd7 100644
--- a/src/ast/stride_decoration.cc
+++ b/src/ast/stride_decoration.cc
@@ -22,7 +22,7 @@
namespace tint {
namespace ast {
-StrideDecoration::StrideDecoration(uint32_t stride, const Source& source)
+StrideDecoration::StrideDecoration(const Source& source, uint32_t stride)
: Base(source), stride_(stride) {}
StrideDecoration::~StrideDecoration() = default;
@@ -33,7 +33,7 @@
}
StrideDecoration* StrideDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<StrideDecoration>(stride_, ctx->Clone(source()));
+ return ctx->mod->create<StrideDecoration>(ctx->Clone(source()), stride_);
}
} // namespace ast
diff --git a/src/ast/stride_decoration.h b/src/ast/stride_decoration.h
index 317ac93..dc89978 100644
--- a/src/ast/stride_decoration.h
+++ b/src/ast/stride_decoration.h
@@ -28,7 +28,7 @@
/// constructor
/// @param stride the stride value
/// @param source the source of this decoration
- StrideDecoration(uint32_t stride, const Source& source);
+ StrideDecoration(const Source& source, uint32_t stride);
~StrideDecoration() override;
/// @returns the stride value
diff --git a/src/ast/stride_decoration_test.cc b/src/ast/stride_decoration_test.cc
index 6b97255..34a1079 100644
--- a/src/ast/stride_decoration_test.cc
+++ b/src/ast/stride_decoration_test.cc
@@ -23,18 +23,18 @@
using StrideDecorationTest = TestHelper;
TEST_F(StrideDecorationTest, Creation) {
- StrideDecoration d{2, Source{}};
+ StrideDecoration d{Source{}, 2};
EXPECT_EQ(2u, d.stride());
}
TEST_F(StrideDecorationTest, Is) {
- StrideDecoration d{2, Source{}};
+ StrideDecoration d{Source{}, 2};
EXPECT_TRUE(d.Is<StrideDecoration>());
}
TEST_F(StrideDecorationTest, Source) {
StrideDecoration d{
- 2, Source{Source::Range{Source::Location{1, 2}, Source::Location{3, 4}}}};
+ Source{Source::Range{Source::Location{1, 2}, Source::Location{3, 4}}}, 2};
EXPECT_EQ(d.source().range.begin.line, 1u);
EXPECT_EQ(d.source().range.begin.column, 2u);
EXPECT_EQ(d.source().range.end.line, 3u);
diff --git a/src/ast/struct_member_offset_decoration.cc b/src/ast/struct_member_offset_decoration.cc
index abd2161..4c3af19 100644
--- a/src/ast/struct_member_offset_decoration.cc
+++ b/src/ast/struct_member_offset_decoration.cc
@@ -22,8 +22,8 @@
namespace tint {
namespace ast {
-StructMemberOffsetDecoration::StructMemberOffsetDecoration(uint32_t offset,
- const Source& source)
+StructMemberOffsetDecoration::StructMemberOffsetDecoration(const Source& source,
+ uint32_t offset)
: Base(source), offset_(offset) {}
StructMemberOffsetDecoration::~StructMemberOffsetDecoration() = default;
@@ -36,8 +36,8 @@
StructMemberOffsetDecoration* StructMemberOffsetDecoration::Clone(
CloneContext* ctx) const {
- return ctx->mod->create<StructMemberOffsetDecoration>(offset_,
- ctx->Clone(source()));
+ return ctx->mod->create<StructMemberOffsetDecoration>(ctx->Clone(source()),
+ offset_);
}
} // namespace ast
diff --git a/src/ast/struct_member_offset_decoration.h b/src/ast/struct_member_offset_decoration.h
index a153758..001d777 100644
--- a/src/ast/struct_member_offset_decoration.h
+++ b/src/ast/struct_member_offset_decoration.h
@@ -27,9 +27,9 @@
: public Castable<StructMemberOffsetDecoration, StructMemberDecoration> {
public:
/// constructor
- /// @param offset the offset value
/// @param source the source of this decoration
- StructMemberOffsetDecoration(uint32_t offset, const Source& source);
+ /// @param offset the offset value
+ StructMemberOffsetDecoration(const Source& source, uint32_t offset);
~StructMemberOffsetDecoration() override;
/// @returns the offset value
diff --git a/src/ast/struct_member_offset_decoration_test.cc b/src/ast/struct_member_offset_decoration_test.cc
index 2197f03..49a4796 100644
--- a/src/ast/struct_member_offset_decoration_test.cc
+++ b/src/ast/struct_member_offset_decoration_test.cc
@@ -23,12 +23,12 @@
using StructMemberOffsetDecorationTest = TestHelper;
TEST_F(StructMemberOffsetDecorationTest, Creation) {
- StructMemberOffsetDecoration d{2, Source{}};
+ StructMemberOffsetDecoration d{Source{}, 2};
EXPECT_EQ(2u, d.offset());
}
TEST_F(StructMemberOffsetDecorationTest, Is) {
- StructMemberOffsetDecoration d{2, Source{}};
+ StructMemberOffsetDecoration d{Source{}, 2};
EXPECT_TRUE(d.Is<StructMemberOffsetDecoration>());
}
diff --git a/src/ast/struct_member_test.cc b/src/ast/struct_member_test.cc
index e698302..1c9a6d7 100644
--- a/src/ast/struct_member_test.cc
+++ b/src/ast/struct_member_test.cc
@@ -30,7 +30,7 @@
TEST_F(StructMemberTest, Creation) {
type::I32 i32;
StructMemberDecorationList decorations;
- decorations.emplace_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ decorations.emplace_back(create<StructMemberOffsetDecoration>(Source{}, 4));
StructMember st{Source{}, "a", &i32, decorations};
EXPECT_EQ(st.name(), "a");
@@ -77,7 +77,7 @@
TEST_F(StructMemberTest, IsValid_Null_Decoration) {
type::I32 i32;
StructMemberDecorationList decorations;
- decorations.emplace_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ decorations.emplace_back(create<StructMemberOffsetDecoration>(Source{}, 4));
decorations.push_back(nullptr);
StructMember st{Source{}, "a", &i32, decorations};
@@ -87,7 +87,7 @@
TEST_F(StructMemberTest, ToStr) {
type::I32 i32;
StructMemberDecorationList decorations;
- decorations.emplace_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ decorations.emplace_back(create<StructMemberOffsetDecoration>(Source{}, 4));
StructMember st{Source{}, "a", &i32, decorations};
std::ostringstream out;
diff --git a/src/ast/type/access_control_type_test.cc b/src/ast/type/access_control_type_test.cc
index 2927685..ef803ac 100644
--- a/src/ast/type/access_control_type_test.cc
+++ b/src/ast/type/access_control_type_test.cc
@@ -107,7 +107,7 @@
TEST_F(AccessControlTest, MinBufferBindingSizeArray) {
U32 u32;
Array array(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
AccessControl at{ast::AccessControl::kReadOnly, &array};
EXPECT_EQ(16u, at.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
}
@@ -115,7 +115,7 @@
TEST_F(AccessControlTest, MinBufferBindingSizeRuntimeArray) {
U32 u32;
Array array(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
AccessControl at{ast::AccessControl::kReadOnly, &array};
EXPECT_EQ(4u, at.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
}
@@ -125,11 +125,11 @@
StructMemberList members;
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
deco = StructMemberDecorationList();
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
StructDecorationList decos;
@@ -150,7 +150,7 @@
TEST_F(AccessControlTest, BaseAlignmentArray) {
U32 u32;
Array array(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
AccessControl at{ast::AccessControl::kReadOnly, &array};
EXPECT_EQ(16u, at.BaseAlignment(MemoryLayout::kUniformBuffer));
}
@@ -158,7 +158,7 @@
TEST_F(AccessControlTest, BaseAlignmentRuntimeArray) {
U32 u32;
Array array(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
AccessControl at{ast::AccessControl::kReadOnly, &array};
EXPECT_EQ(16u, at.BaseAlignment(MemoryLayout::kUniformBuffer));
}
@@ -169,12 +169,12 @@
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
diff --git a/src/ast/type/alias_type_test.cc b/src/ast/type/alias_type_test.cc
index 55bc94c..dc34994 100644
--- a/src/ast/type/alias_type_test.cc
+++ b/src/ast/type/alias_type_test.cc
@@ -175,7 +175,7 @@
U32 u32;
Array array(&u32, 4,
ArrayDecorationList{
- create<StrideDecoration>(4, Source{}),
+ create<StrideDecoration>(Source{}, 4),
});
Alias alias{mod.RegisterSymbol("alias"), "alias", &array};
EXPECT_EQ(16u, alias.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
@@ -185,7 +185,7 @@
U32 u32;
Array array(&u32, 0,
ArrayDecorationList{
- create<StrideDecoration>(4, Source{}),
+ create<StrideDecoration>(Source{}, 4),
});
Alias alias{mod.RegisterSymbol("alias"), "alias", &array};
EXPECT_EQ(4u, alias.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
@@ -197,12 +197,12 @@
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
@@ -224,7 +224,7 @@
U32 u32;
Array array(&u32, 4,
ArrayDecorationList{
- create<StrideDecoration>(4, Source{}),
+ create<StrideDecoration>(Source{}, 4),
});
Alias alias{mod.RegisterSymbol("alias"), "alias", &array};
EXPECT_EQ(16u, alias.BaseAlignment(MemoryLayout::kUniformBuffer));
@@ -234,7 +234,7 @@
U32 u32;
Array array(&u32, 0,
ArrayDecorationList{
- create<StrideDecoration>(4, Source{}),
+ create<StrideDecoration>(Source{}, 4),
});
Alias alias{mod.RegisterSymbol("alias"), "alias", &array};
EXPECT_EQ(16u, alias.BaseAlignment(MemoryLayout::kUniformBuffer));
@@ -246,12 +246,12 @@
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
diff --git a/src/ast/type/array_type_test.cc b/src/ast/type/array_type_test.cc
index 5d929fa..4de28df 100644
--- a/src/ast/type/array_type_test.cc
+++ b/src/ast/type/array_type_test.cc
@@ -90,7 +90,7 @@
TEST_F(ArrayTest, TypeName_WithStride) {
I32 i32;
Array arr{&i32, 3,
- ArrayDecorationList{create<StrideDecoration>(16, Source{})}};
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 16)}};
EXPECT_EQ(arr.type_name(), "__array__i32_3_stride_16");
}
@@ -103,21 +103,21 @@
TEST_F(ArrayTest, MinBufferBindingSizeArray) {
U32 u32;
Array arr(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
EXPECT_EQ(16u, arr.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
}
TEST_F(ArrayTest, MinBufferBindingSizeRuntimeArray) {
U32 u32;
Array arr(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
EXPECT_EQ(4u, arr.MinBufferBindingSize(MemoryLayout::kUniformBuffer));
}
TEST_F(ArrayTest, BaseAlignmentArray) {
U32 u32;
Array arr(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
EXPECT_EQ(16u, arr.BaseAlignment(MemoryLayout::kUniformBuffer));
EXPECT_EQ(4u, arr.BaseAlignment(MemoryLayout::kStorageBuffer));
}
@@ -125,7 +125,7 @@
TEST_F(ArrayTest, BaseAlignmentRuntimeArray) {
U32 u32;
Array arr(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
EXPECT_EQ(16u, arr.BaseAlignment(MemoryLayout::kUniformBuffer));
EXPECT_EQ(4u, arr.BaseAlignment(MemoryLayout::kStorageBuffer));
}
diff --git a/src/ast/type/struct_type_test.cc b/src/ast/type/struct_type_test.cc
index 0a7b2d1..ad1131b 100644
--- a/src/ast/type/struct_type_test.cc
+++ b/src/ast/type/struct_type_test.cc
@@ -83,12 +83,12 @@
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
@@ -103,22 +103,22 @@
TEST_F(StructTest, MinBufferBindingSizeArray) {
U32 u32;
Array arr(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(8, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 8));
members.push_back(create<StructMember>(Source{}, "bar", &arr, deco));
}
StructDecorationList decos;
@@ -134,22 +134,22 @@
TEST_F(StructTest, MinBufferBindingSizeRuntimeArray) {
U32 u32;
Array arr(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(8, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 8));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
@@ -167,7 +167,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec2, deco));
}
StructDecorationList decos;
@@ -186,7 +186,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec3, deco));
}
StructDecorationList decos;
@@ -206,7 +206,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec4, deco));
}
StructDecorationList decos;
@@ -225,12 +225,12 @@
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
@@ -244,22 +244,22 @@
TEST_F(StructTest, BaseAlignmentArray) {
U32 u32;
Array arr(&u32, 4,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(8, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 8));
members.push_back(create<StructMember>(Source{}, "bar", &arr, deco));
}
StructDecorationList decos;
@@ -273,22 +273,22 @@
TEST_F(StructTest, BaseAlignmentRuntimeArray) {
U32 u32;
Array arr(&u32, 0,
- ArrayDecorationList{create<StrideDecoration>(4, Source{})});
+ ArrayDecorationList{create<StrideDecoration>(Source{}, 4)});
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(4, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 4));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(8, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 8));
members.push_back(create<StructMember>(Source{}, "bar", &u32, deco));
}
StructDecorationList decos;
@@ -305,7 +305,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec2, deco));
}
StructDecorationList decos;
@@ -323,7 +323,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec3, deco));
}
StructDecorationList decos;
@@ -341,7 +341,7 @@
StructMemberList members;
{
StructMemberDecorationList deco;
- deco.push_back(create<StructMemberOffsetDecoration>(0, Source{}));
+ deco.push_back(create<StructMemberOffsetDecoration>(Source{}, 0));
members.push_back(create<StructMember>(Source{}, "foo", &vec4, deco));
}
StructDecorationList decos;
diff --git a/src/ast/variable_test.cc b/src/ast/variable_test.cc
index 5fb2a26..778b4b7 100644
--- a/src/ast/variable_test.cc
+++ b/src/ast/variable_test.cc
@@ -140,9 +140,9 @@
auto* var = create<Variable>(
Source{}, "my_var", StorageClass::kFunction, &t, false, nullptr,
VariableDecorationList{
- create<LocationDecoration>(1, Source{}),
- create<BuiltinDecoration>(Builtin::kPosition, Source{}),
- create<ConstantIdDecoration>(1200, Source{}),
+ create<LocationDecoration>(Source{}, 1),
+ create<BuiltinDecoration>(Source{}, Builtin::kPosition),
+ create<ConstantIdDecoration>(Source{}, 1200),
});
EXPECT_TRUE(var->HasLocationDecoration());
@@ -155,7 +155,7 @@
auto* var = create<Variable>(Source{}, "my_var", StorageClass::kFunction, &t,
false, nullptr,
VariableDecorationList{
- create<ConstantIdDecoration>(1200, Source{}),
+ create<ConstantIdDecoration>(Source{}, 1200),
});
EXPECT_EQ(var->constant_id(), 1200u);
@@ -168,8 +168,8 @@
create<IdentifierExpression>(
Source{}, mod.RegisterSymbol("expr"), "expr"),
VariableDecorationList{
- create<BindingDecoration>(2, Source{}),
- create<SetDecoration>(1, Source{}),
+ create<BindingDecoration>(Source{}, 2),
+ create<SetDecoration>(Source{}, 1),
});
std::ostringstream out;
diff --git a/src/ast/workgroup_decoration.cc b/src/ast/workgroup_decoration.cc
index b1935b9..63fdf20 100644
--- a/src/ast/workgroup_decoration.cc
+++ b/src/ast/workgroup_decoration.cc
@@ -22,18 +22,18 @@
namespace tint {
namespace ast {
-WorkgroupDecoration::WorkgroupDecoration(uint32_t x, const Source& source)
+WorkgroupDecoration::WorkgroupDecoration(const Source& source, uint32_t x)
: Base(source), x_(x) {}
-WorkgroupDecoration::WorkgroupDecoration(uint32_t x,
- uint32_t y,
- const Source& source)
+WorkgroupDecoration::WorkgroupDecoration(const Source& source,
+ uint32_t x,
+ uint32_t y)
: Base(source), x_(x), y_(y) {}
-WorkgroupDecoration::WorkgroupDecoration(uint32_t x,
+WorkgroupDecoration::WorkgroupDecoration(const Source& source,
+ uint32_t x,
uint32_t y,
- uint32_t z,
- const Source& source)
+ uint32_t z)
: Base(source), x_(x), y_(y), z_(z) {}
WorkgroupDecoration::~WorkgroupDecoration() = default;
@@ -45,8 +45,8 @@
}
WorkgroupDecoration* WorkgroupDecoration::Clone(CloneContext* ctx) const {
- return ctx->mod->create<WorkgroupDecoration>(x_, y_, z_,
- ctx->Clone(source()));
+ return ctx->mod->create<WorkgroupDecoration>(ctx->Clone(source()), x_, y_,
+ z_);
}
} // namespace ast
diff --git a/src/ast/workgroup_decoration.h b/src/ast/workgroup_decoration.h
index ac16b41..9946108 100644
--- a/src/ast/workgroup_decoration.h
+++ b/src/ast/workgroup_decoration.h
@@ -29,20 +29,20 @@
: public Castable<WorkgroupDecoration, FunctionDecoration> {
public:
/// constructor
- /// @param x the workgroup x dimension size
/// @param source the source of this decoration
- WorkgroupDecoration(uint32_t x, const Source& source);
+ /// @param x the workgroup x dimension size
+ WorkgroupDecoration(const Source& source, uint32_t x);
/// constructor
+ /// @param source the source of this decoration
/// @param x the workgroup x dimension size
/// @param y the workgroup x dimension size
- /// @param source the source of this decoration
- WorkgroupDecoration(uint32_t x, uint32_t y, const Source& source);
+ WorkgroupDecoration(const Source& source, uint32_t x, uint32_t y);
/// constructor
+ /// @param source the source of this decoration
/// @param x the workgroup x dimension size
/// @param y the workgroup x dimension size
/// @param z the workgroup x dimension size
- /// @param source the source of this decoration
- WorkgroupDecoration(uint32_t x, uint32_t y, uint32_t z, const Source& source);
+ WorkgroupDecoration(const Source& source, uint32_t x, uint32_t y, uint32_t z);
~WorkgroupDecoration() override;
/// @returns the workgroup dimensions
diff --git a/src/ast/workgroup_decoration_test.cc b/src/ast/workgroup_decoration_test.cc
index e285d35..b45dff8 100644
--- a/src/ast/workgroup_decoration_test.cc
+++ b/src/ast/workgroup_decoration_test.cc
@@ -26,7 +26,7 @@
using WorkgroupDecorationTest = TestHelper;
TEST_F(WorkgroupDecorationTest, Creation_1param) {
- WorkgroupDecoration d{2, Source{}};
+ WorkgroupDecoration d{Source{}, 2};
uint32_t x = 0;
uint32_t y = 0;
uint32_t z = 0;
@@ -36,7 +36,7 @@
EXPECT_EQ(z, 1u);
}
TEST_F(WorkgroupDecorationTest, Creation_2param) {
- WorkgroupDecoration d{2, 4, Source{}};
+ WorkgroupDecoration d{Source{}, 2, 4};
uint32_t x = 0;
uint32_t y = 0;
uint32_t z = 0;
@@ -47,7 +47,7 @@
}
TEST_F(WorkgroupDecorationTest, Creation_3param) {
- WorkgroupDecoration d{2, 4, 6, Source{}};
+ WorkgroupDecoration d{Source{}, 2, 4, 6};
uint32_t x = 0;
uint32_t y = 0;
uint32_t z = 0;
@@ -58,14 +58,14 @@
}
TEST_F(WorkgroupDecorationTest, Is) {
- WorkgroupDecoration wd{2, 4, 6, Source{}};
+ WorkgroupDecoration wd{Source{}, 2, 4, 6};
Decoration* d = &wd;
EXPECT_TRUE(d->Is<WorkgroupDecoration>());
EXPECT_FALSE(d->Is<StageDecoration>());
}
TEST_F(WorkgroupDecorationTest, ToStr) {
- WorkgroupDecoration d{2, 4, 6, Source{}};
+ WorkgroupDecoration d{Source{}, 2, 4, 6};
std::ostringstream out;
d.to_str(out, 0);
EXPECT_EQ(out.str(), R"(WorkgroupDecoration{2 4 6}