On 17.07.2012, at 23:20, Stas Malyshev wrote: > Hi! > >> That would be: tokenizer + static analysis (with type inference) + replacing >> some of the tokens. >> Not a trivial task, but definitely doable. > > So what would this tool do with this code? > > $a = getFirstArrayName(); > $b = getSecondArrayName(); > $$a = $$b; > $b[1] = 0;
Something like this: $a = getFirstArrayName(); $b = getSecondArrayName(); if ($$b instanceof ArrayObject) { $$a = clone $$b; } else { $$a = $$b; } $b[1] = 0; > Or this: > > include 'a.inc'; > $a = $b; > include 'b.inc'; > > where a.inc has array $a and b.inc has something like $b[1] = 0; but you > have no way of knowing it since by the time you run the tool a.inc and > b.inc are not available to it (think config files). well, the same as above. not pretty, but that's a safe fallback when type inference is not available.
signature.asc
Description: Message signed with OpenPGP using GPGMail