ast: Make all non-semantic fields const

Annotate those that are set by the TypeDeterminer as "Semantic Info"

Bug: tint:396
Bug: tint:390
Change-Id: I0705c64e8e23d97a6430230728f82e64dd92efb7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35165
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/ast/binary_expression.h b/src/ast/binary_expression.h
index 8283a5d..9bce548 100644
--- a/src/ast/binary_expression.h
+++ b/src/ast/binary_expression.h
@@ -127,9 +127,9 @@
  private:
   BinaryExpression(const BinaryExpression&) = delete;
 
-  BinaryOp op_ = BinaryOp::kNone;
-  Expression* lhs_ = nullptr;
-  Expression* rhs_ = nullptr;
+  BinaryOp const op_;
+  Expression* const lhs_;
+  Expression* const rhs_;
 };
 
 inline std::ostream& operator<<(std::ostream& out, BinaryOp op) {