public function getTempNonTrackedVariable($type, CompilationContext $context, $initNonReferenced = false)
{
$variable = $this->reuseTempVariable($type, 'non-tracked');
if (is_object($variable)) {
$variable->increaseUses();
$variable->increaseMutates();
if ($initNonReferenced) {
$variable->initNonReferenced($context);
}
return $variable;
}
$tempVar = $this->getNextTempVar();
$variable = $this->addVariable($type, '_' . $tempVar, $context);
$variable->setIsInitialized(true, $context, array());
$variable->setTemporal(true);
$variable->setMemoryTracked(false);
$variable->increaseUses();
$variable->increaseMutates();
$this->registerTempVariable($type, 'non-tracked', $variable);
if ($initNonReferenced) {
$variable->initNonReferenced($context);
}
return $variable;
}