suite à une remarque de Fil sur irc,
je relève le comportement étrange suivant :
test 1
#VAL{0} -> 0
[(#VAL{0}|oui) oui] ->
[(#VAL{0}|non) non] -> non
test 2
#VAL{'0'} -> 0
[(#VAL{'0'}|oui) oui] ->
[(#VAL{'0'}|non) non] -> non
test 3
#VAL{00} -> 00
[(#VAL{00}|oui) oui] -> oui
[(#VAL{00}|non) non] ->
test 4
#VAL{a} -> a
[(#VAL{a}|oui) oui] -> oui
[(#VAL{a}|non) non] ->
test 5
#VAL ->
[(#VAL|oui) oui] ->
[(#VAL|non) non] -> non
la question porte évidemment sur les tests 1 et 2
où #VAL, étant bien définie, devrait en toute logique
retourner le même résultat que le test 3.
compilation produite :
test 1
test 2
($t1 = strval((('0') ? ' ' : ''))) !== '' ? ($t1 . ' oui') : ''
($t1 = strval((('0') ? '' : ' '))) !== '' ? ($t1 . ' non') : ''
test 3
($t1 = strval((('00') ? ' ' : ''))) !== '' ?($t1 . ' oui') : ''
($t1 = strval((('00') ? '' : ' '))) !== '' ?($t1 . ' non') : ''
ça se passe dans ecrire/public/references.php ligne 442
(le strval() étant produit par ecrire/public/compiler.php ligne 710)