Add semantic::Statement

Add Stmt() accessor on all semantic::Expressions so the owning statement can be retrieved.

Change-Id: I5d584335a6d137fdeab0b8d74a161fcae9b46080
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41545
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
diff --git a/src/semantic/member_accessor_expression.h b/src/semantic/member_accessor_expression.h
index 7b21f97..f46fe6e 100644
--- a/src/semantic/member_accessor_expression.h
+++ b/src/semantic/member_accessor_expression.h
@@ -27,8 +27,11 @@
  public:
   /// Constructor
   /// @param type the resolved type of the expression
+  /// @param statement the statement that owns this expression
   /// @param is_swizzle true if this member access is for a vector swizzle
-  MemberAccessorExpression(type::Type* type, bool is_swizzle);
+  MemberAccessorExpression(type::Type* type,
+                           Statement* statement,
+                           bool is_swizzle);
 
   /// @return true if this member access is for a vector swizzle
   bool IsSwizzle() const { return is_swizzle_; }