diff --git a/hphp/compiler/expression/constant_expression.cpp b/hphp/compiler/expression/constant_expression.cpp index 7f920f8a2..5c0c89869 100644 --- a/hphp/compiler/expression/constant_expression.cpp +++ b/hphp/compiler/expression/constant_expression.cpp @@ -14,8 +14,8 @@ +----------------------------------------------------------------------+ */ -#include "hphp/compiler/analysis/file_scope.h" #include "hphp/compiler/expression/constant_expression.h" +#include "hphp/compiler/analysis/file_scope.h" #include "hphp/compiler/analysis/block_scope.h" #include "hphp/compiler/analysis/class_scope.h" #include "hphp/compiler/analysis/function_scope.h" @@ -117,11 +117,9 @@ bool ConstantExpression::canonCompare(ExpressionPtr e) const { // static analysis functions Symbol *ConstantExpression::resolveNS(AnalysisResultConstPtr ar) { - bool ns = m_name[0] == '\\'; - if (ns) m_name = m_name.substr(1); BlockScopeConstPtr block = ar->findConstantDeclarer(m_name); if (!block) { - if (ns) { + if (hadBackslash()) { int pos = m_name.rfind('\\'); m_name = m_name.substr(pos + 1); block = ar->findConstantDeclarer(m_name); diff --git a/hphp/compiler/expression/simple_function_call.cpp b/hphp/compiler/expression/simple_function_call.cpp index defea17c9..f6f8d40d2 100644 --- a/hphp/compiler/expression/simple_function_call.cpp +++ b/hphp/compiler/expression/simple_function_call.cpp @@ -247,12 +247,8 @@ void SimpleFunctionCall::setupScopes(AnalysisResultConstPtr ar) { FunctionScopePtr func; if (!m_class && m_className.empty()) { if (!m_dynamicInvoke) { - bool namespaced = (m_name[0] == '\\'); - if (namespaced) { - m_name = m_name.substr(1); - } func = ar->findFunction(m_name); - if (!func && namespaced) { + if (!func && hadBackslash()) { int pos = m_name.rfind('\\'); m_name = m_name.substr(pos + 1); func = ar->findFunction(m_name);