1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-21 17:55:07 +00:00

LibJS: Let's say that Identifier is an Expression for now

This allows us to tighten typing in various other classes.
This commit is contained in:
Andreas Kling 2020-03-10 11:48:49 +01:00
parent 7de35118a9
commit ddb5c995c6

View file

@ -189,7 +189,7 @@ enum class BinaryOp {
class BinaryExpression : public Expression { class BinaryExpression : public Expression {
public: public:
BinaryExpression(BinaryOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs) BinaryExpression(BinaryOp op, NonnullOwnPtr<Expression> lhs, NonnullOwnPtr<Expression> rhs)
: m_op(op) : m_op(op)
, m_lhs(move(lhs)) , m_lhs(move(lhs))
, m_rhs(move(rhs)) , m_rhs(move(rhs))
@ -203,8 +203,8 @@ private:
virtual const char* class_name() const override { return "BinaryExpression"; } virtual const char* class_name() const override { return "BinaryExpression"; }
BinaryOp m_op; BinaryOp m_op;
NonnullOwnPtr<ASTNode> m_lhs; NonnullOwnPtr<Expression> m_lhs;
NonnullOwnPtr<ASTNode> m_rhs; NonnullOwnPtr<Expression> m_rhs;
}; };
enum class LogicalOp { enum class LogicalOp {
@ -271,7 +271,7 @@ private:
Value m_value; Value m_value;
}; };
class Identifier final : public ASTNode { class Identifier final : public Expression {
public: public:
explicit Identifier(String string) explicit Identifier(String string)
: m_string(move(string)) : m_string(move(string))
@ -314,7 +314,7 @@ enum class AssignmentOp {
class AssignmentExpression : public Expression { class AssignmentExpression : public Expression {
public: public:
AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs) AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<Expression> rhs)
: m_op(op) : m_op(op)
, m_lhs(move(lhs)) , m_lhs(move(lhs))
, m_rhs(move(rhs)) , m_rhs(move(rhs))
@ -329,12 +329,12 @@ private:
AssignmentOp m_op; AssignmentOp m_op;
NonnullOwnPtr<ASTNode> m_lhs; NonnullOwnPtr<ASTNode> m_lhs;
NonnullOwnPtr<ASTNode> m_rhs; NonnullOwnPtr<Expression> m_rhs;
}; };
class VariableDeclaration : public ASTNode { class VariableDeclaration : public ASTNode {
public: public:
VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<ASTNode> initializer) VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<Expression> initializer)
: m_name(move(name)) : m_name(move(name))
, m_initializer(move(initializer)) , m_initializer(move(initializer))
{ {
@ -349,7 +349,7 @@ private:
virtual const char* class_name() const override { return "VariableDeclaration"; } virtual const char* class_name() const override { return "VariableDeclaration"; }
NonnullOwnPtr<Identifier> m_name; NonnullOwnPtr<Identifier> m_name;
OwnPtr<ASTNode> m_initializer; OwnPtr<Expression> m_initializer;
}; };
class ObjectExpression : public Expression { class ObjectExpression : public Expression {