tint/sem: Add Declaration() override for IndexAccessorExpression
Convenience overload to return ast::IndexAccessorExpression instead of ast::Expression
Change-Id: Ib239fd6d5742425a629fc76e1b564a3c7781ca2a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/122342
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Ben Clayton <bclayton@chromium.org>
diff --git a/src/tint/sem/index_accessor_expression.h b/src/tint/sem/index_accessor_expression.h
index 2375a9d..8118659 100644
--- a/src/tint/sem/index_accessor_expression.h
+++ b/src/tint/sem/index_accessor_expression.h
@@ -17,13 +17,9 @@
#include <vector>
+#include "src/tint/ast/index_accessor_expression.h"
#include "src/tint/sem/value_expression.h"
-// Forward declarations
-namespace tint::ast {
-class IndexAccessorExpression;
-} // namespace tint::ast
-
namespace tint::sem {
/// IndexAccessorExpression holds the semantic information for a ast::IndexAccessorExpression node.
@@ -52,6 +48,11 @@
/// Destructor
~IndexAccessorExpression() override;
+ /// @returns the AST node
+ const ast::IndexAccessorExpression* Declaration() const {
+ return static_cast<const ast::IndexAccessorExpression*>(declaration_);
+ }
+
/// @returns the object expression that is being indexed
ValueExpression const* Object() const { return object_; }