diff --git a/hphp/compiler/analysis/emitter.cpp b/hphp/compiler/analysis/emitter.cpp index 245ea70d9..67c9b51b5 100644 --- a/hphp/compiler/analysis/emitter.cpp +++ b/hphp/compiler/analysis/emitter.cpp @@ -3382,6 +3382,13 @@ bool EmitterVisitor::visitImpl(ConstructPtr node) { } e.FCall(numParams); + if (Option::WholeProgram) { + FunctionScopePtr fs = ne->getFuncScope(); + if (fs && !fs->getReturnType()) { + m_evalStack.setKnownType(KindOfNull, false /* inferred */); + m_evalStack.setNotRef(); + } + } e.PopR(); return true; }