public function testReferenceToChange()
{
/**
* $a = 1;
* $b = &$a;
*/
$parentVariable = new Variable('a', 1, CompiledExpression::INTEGER);
$variable = new Variable('b', $parentVariable->getValue(), $parentVariable->getType());
static::assertFalse($variable->isReferenced());
$variable->setReferencedTo($parentVariable);
static::assertTrue($variable->isReferenced());
static::assertSame($parentVariable, $variable->getReferencedTo());
/**
* $b = 55.00
*/
$variable->modify(CompiledExpression::DOUBLE, 55.0);
static::assertSame($variable->getValue(), $parentVariable->getValue());
static::assertSame($variable->getType(), $parentVariable->getType());
}