Protect sem::MemberAccessorExpression constructor.
This CL moves the constructor for a sem::MemberAccessorExpression to
protected to make it clear that only Swizzle and StructMemberAccess
classes can be created.
Change-Id: I85eef6c6f41c4c36192d88b84150f15205f1bf22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/107361
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/sem/member_accessor_expression.h b/src/tint/sem/member_accessor_expression.h
index b8144f1..2541f33 100644
--- a/src/tint/sem/member_accessor_expression.h
+++ b/src/tint/sem/member_accessor_expression.h
@@ -33,6 +33,13 @@
/// ast::MemberAccessorExpression node.
class MemberAccessorExpression : public Castable<MemberAccessorExpression, Expression> {
public:
+ /// Destructor
+ ~MemberAccessorExpression() override;
+
+ /// @returns the object that holds the member being accessed
+ const Expression* Object() const { return object_; }
+
+ protected:
/// Constructor
/// @param declaration the AST node
/// @param type the resolved type of the expression
@@ -51,12 +58,6 @@
bool has_side_effects,
const Variable* source_var = nullptr);
- /// Destructor
- ~MemberAccessorExpression() override;
-
- /// @returns the object that holds the member being accessed
- const Expression* Object() const { return object_; }
-
private:
Expression const* const object_;
};