From 797df3e4144e7497d15df0661650a67ea90cdc92 Mon Sep 17 00:00:00 2001 From: Herman Venter Date: Mon, 3 Feb 2014 19:42:00 -0800 Subject: [PATCH] Always use type expressions whenever a class name may appear in the code. Since types can be generic instances it is always better to model a type as an expression than as a simple string. Reviewed By: @paroski Differential Revision: D1155406 --- hphp/compiler/expression/binary_op_expression.cpp | 2 +- hphp/compiler/expression/new_object_expression.cpp | 4 ++-- hphp/compiler/expression/static_class_name.cpp | 6 +++--- hphp/compiler/statement/catch_statement.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hphp/compiler/expression/binary_op_expression.cpp b/hphp/compiler/expression/binary_op_expression.cpp index 006a7639b3f..71c821b5216 100644 --- a/hphp/compiler/expression/binary_op_expression.cpp +++ b/hphp/compiler/expression/binary_op_expression.cpp @@ -929,7 +929,7 @@ TypePtr BinaryOpExpression::inferTypes(AnalysisResultPtr ar, TypePtr type, void BinaryOpExpression::outputCodeModel(CodeGenerator &cg) { if (m_op == T_COLLECTION) { cg.printObjectHeader("CollectionInitializerExpression", 3); - cg.printPropertyHeader("collection"); + cg.printPropertyHeader("class"); cg.printTypeExpression(m_exp1); cg.printPropertyHeader("arguments"); cg.printExpressionVector(static_pointer_cast(m_exp2)); diff --git a/hphp/compiler/expression/new_object_expression.cpp b/hphp/compiler/expression/new_object_expression.cpp index bbb06ba86a7..f425dee5f2a 100644 --- a/hphp/compiler/expression/new_object_expression.cpp +++ b/hphp/compiler/expression/new_object_expression.cpp @@ -157,8 +157,8 @@ TypePtr NewObjectExpression::inferTypes(AnalysisResultPtr ar, TypePtr type, void NewObjectExpression::outputCodeModel(CodeGenerator &cg) { cg.printObjectHeader("NewObjectExpression", m_params == nullptr ? 2 : 3); if (m_nameExp->is(Expression::KindOfScalarExpression)) { - cg.printPropertyHeader("className"); - cg.printValue(this->getOriginalName()); + cg.printPropertyHeader("class"); + cg.printTypeExpression(this->getOriginalName()); } else { cg.printPropertyHeader("classExpression"); m_nameExp->outputCodeModel(cg); diff --git a/hphp/compiler/expression/static_class_name.cpp b/hphp/compiler/expression/static_class_name.cpp index a9070eec577..eab991d05ec 100644 --- a/hphp/compiler/expression/static_class_name.cpp +++ b/hphp/compiler/expression/static_class_name.cpp @@ -170,14 +170,14 @@ bool StaticClassName::checkPresent() { void StaticClassName::outputCodeModel(CodeGenerator &cg) { if (isStatic() || !m_origClassName.empty()) { - cg.printPropertyHeader("className"); + cg.printPropertyHeader("class"); } else { cg.printPropertyHeader("classExpression"); } if (isStatic()) { - cg.printValue("static"); + cg.printTypeExpression("static"); } else if (!m_origClassName.empty()) { - cg.printValue(m_origClassName); + cg.printTypeExpression(m_origClassName); } else { m_class->outputCodeModel(cg); } diff --git a/hphp/compiler/statement/catch_statement.cpp b/hphp/compiler/statement/catch_statement.cpp index e0e5f4e0f0c..100b79ace96 100644 --- a/hphp/compiler/statement/catch_statement.cpp +++ b/hphp/compiler/statement/catch_statement.cpp @@ -138,8 +138,8 @@ void CatchStatement::inferTypes(AnalysisResultPtr ar) { void CatchStatement::outputCodeModel(CodeGenerator &cg) { cg.printObjectHeader("CatchStatement", 4); - cg.printPropertyHeader("className"); - cg.printValue(m_origClassName); + cg.printPropertyHeader("class"); + cg.printTypeExpression(m_origClassName); cg.printPropertyHeader("variableName"); cg.printValue(m_variable->getName()); cg.printPropertyHeader("block"); -- 2.11.4.GIT