[tint][ir][val] Restrict `var` to exactly one operand
Issue: 399134364
Change-Id: Ibc387c9b6df14517fe5e86a2127687f1670046a7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/228074
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/src/tint/lang/core/ir/validator.cc b/src/tint/lang/core/ir/validator.cc
index 44411f7..ba9a9b5 100644
--- a/src/tint/lang/core/ir/validator.cc
+++ b/src/tint/lang/core/ir/validator.cc
@@ -2472,7 +2472,7 @@
}
void Validator::CheckVar(const Var* var) {
- if (!CheckResultsAndOperandRange(var, Var::kNumResults, Var::kMinOperands, Var::kMaxOperands)) {
+ if (!CheckResultsAndOperands(var, Var::kNumResults, Var::kNumOperands)) {
return;
}
diff --git a/src/tint/lang/core/ir/validator_value_test.cc b/src/tint/lang/core/ir/validator_value_test.cc
index 32a8e5f..40763b3 100644
--- a/src/tint/lang/core/ir/validator_value_test.cc
+++ b/src/tint/lang/core/ir/validator_value_test.cc
@@ -65,7 +65,7 @@
auto res = ir::Validate(mod);
ASSERT_NE(res, Success);
EXPECT_THAT(res.Failure().reason.Str(),
- testing::HasSubstr(R"(:2:38 error: var: expected between 0 and 1 operands, got 2
+ testing::HasSubstr(R"(:2:38 error: var: expected exactly 1 operands, got 2
%1:ptr<private, i32, read_write> = var 0i, 1i
^^^
)")) << res.Failure().reason.Str();
diff --git a/src/tint/lang/core/ir/var.h b/src/tint/lang/core/ir/var.h
index e31c507..3983e13 100644
--- a/src/tint/lang/core/ir/var.h
+++ b/src/tint/lang/core/ir/var.h
@@ -48,11 +48,8 @@
/// The fixed number of results returned by this instruction
static constexpr size_t kNumResults = 1;
- /// The minimum number of operands expected by this instruction
- static constexpr size_t kMinOperands = 0;
-
- /// The maximum number of operands expected by this instruction
- static constexpr size_t kMaxOperands = 1;
+ /// The fixed number of operands expected by this instruction
+ static constexpr size_t kNumOperands = 1;
/// Constructor (no results, no operands)
/// @param id the instruction id