Fix regression in defined test for GetAttr. Fixes #319

This commit is contained in:
nikic
2011-05-03 18:56:57 +02:00
committed by Fabien Potencier
parent 5fd8f1f2f9
commit b0a94baebd
2 changed files with 4 additions and 1 deletions
+2 -1
View File
@@ -33,8 +33,9 @@ class Twig_Node_Expression_Test extends Twig_Node_Expression
} elseif ($this->getNode('node') instanceof Twig_Node_Expression_GetAttr) {
$this->getNode('node')->setAttribute('is_defined_test', true);
$compiler
->raw('null !== ')
->raw('(null !== ')
->subcompile($this->getNode('node'))
->raw(')')
;
} else {
throw new Twig_Error_Syntax('The "defined" test only works with simple variables', $this->getLine());
@@ -6,6 +6,7 @@
{{ foobar is not defined ? 'ok' : 'ko' }}
{{ zero is defined ? 'ok' : 'ko' }}
{{ nested.foo is defined ? 'ok' : 'ko' }}
{{ nested.foo is not defined ? 'ok' : 'ko' }}
{{ nested.bar is not defined ? 'ok' : 'ko' }}
{{ nested.zero is defined ? 'ok' : 'ko' }}
--DATA--
@@ -16,5 +17,6 @@ ok
ok
ok
ok
ko
ok
ok