mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:32:45 +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:
		
							parent
							
								
									7de35118a9
								
							
						
					
					
						commit
						ddb5c995c6
					
				
					 1 changed files with 8 additions and 8 deletions
				
			
		|  | @ -189,7 +189,7 @@ enum class BinaryOp { | |||
| 
 | ||||
| class BinaryExpression : public Expression { | ||||
| public: | ||||
|     BinaryExpression(BinaryOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs) | ||||
|     BinaryExpression(BinaryOp op, NonnullOwnPtr<Expression> lhs, NonnullOwnPtr<Expression> rhs) | ||||
|         : m_op(op) | ||||
|         , m_lhs(move(lhs)) | ||||
|         , m_rhs(move(rhs)) | ||||
|  | @ -203,8 +203,8 @@ private: | |||
|     virtual const char* class_name() const override { return "BinaryExpression"; } | ||||
| 
 | ||||
|     BinaryOp m_op; | ||||
|     NonnullOwnPtr<ASTNode> m_lhs; | ||||
|     NonnullOwnPtr<ASTNode> m_rhs; | ||||
|     NonnullOwnPtr<Expression> m_lhs; | ||||
|     NonnullOwnPtr<Expression> m_rhs; | ||||
| }; | ||||
| 
 | ||||
| enum class LogicalOp { | ||||
|  | @ -271,7 +271,7 @@ private: | |||
|     Value m_value; | ||||
| }; | ||||
| 
 | ||||
| class Identifier final : public ASTNode { | ||||
| class Identifier final : public Expression { | ||||
| public: | ||||
|     explicit Identifier(String string) | ||||
|         : m_string(move(string)) | ||||
|  | @ -314,7 +314,7 @@ enum class AssignmentOp { | |||
| 
 | ||||
| class AssignmentExpression : public Expression { | ||||
| public: | ||||
|     AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs) | ||||
|     AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<Expression> rhs) | ||||
|         : m_op(op) | ||||
|         , m_lhs(move(lhs)) | ||||
|         , m_rhs(move(rhs)) | ||||
|  | @ -329,12 +329,12 @@ private: | |||
| 
 | ||||
|     AssignmentOp m_op; | ||||
|     NonnullOwnPtr<ASTNode> m_lhs; | ||||
|     NonnullOwnPtr<ASTNode> m_rhs; | ||||
|     NonnullOwnPtr<Expression> m_rhs; | ||||
| }; | ||||
| 
 | ||||
| class VariableDeclaration : public ASTNode { | ||||
| public: | ||||
|     VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<ASTNode> initializer) | ||||
|     VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<Expression> initializer) | ||||
|         : m_name(move(name)) | ||||
|         , m_initializer(move(initializer)) | ||||
|     { | ||||
|  | @ -349,7 +349,7 @@ private: | |||
|     virtual const char* class_name() const override { return "VariableDeclaration"; } | ||||
| 
 | ||||
|     NonnullOwnPtr<Identifier> m_name; | ||||
|     OwnPtr<ASTNode> m_initializer; | ||||
|     OwnPtr<Expression> m_initializer; | ||||
| }; | ||||
| 
 | ||||
| class ObjectExpression : public Expression { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling