{"shas":[["b89045750e007d5c7ae2e72558ec6f68d1882ad8","46f1a0bd5592a2f9244ca321b129902a06b53e03@illusori.co.uk","Renamed UndefinedVariableSniff to wider-purpose VariableAnalysisSniff. Revert from using AbstractVariableSniff. Support detection and callback for scope close in prep for merge with UnusedVariableSniff.","Sam Graham"],["5a9baabd553a7d11aa94a46bd28381f8b2d88597","46f1a0bd5592a2f9244ca321b129902a06b53e03@illusori.co.uk","Add VariableInfo and ScopeInfo classes. Prep work for more in-depth analysis.","Sam Graham"],["779d08eb1e40943c12c894cd610e2f3f81dd3a90","46f1a0bd5592a2f9244ca321b129902a06b53e03@illusori.co.uk","Distinguish between declaration/initialization. Record variable reads. Add initial debug for scope close analysis.","Sam Graham"],["61dfa3cd03453ef5b08cd1d7be0521ba1e39d55f","46f1a0bd5592a2f9244ca321b129902a06b53e03@illusori.co.uk","Added unused variable warnings to VariableAnalysisSniff. Deleted Unused(Global)VariableSniff.","Sam Graham"],["d7ab92326cf6772d4eae72669c806ed54336b95f","46f1a0bd5592a2f9244ca321b129902a06b53e03@illusori.co.uk","Add violation code to warnings. Make warnings use formatted strings. Update README and ruleset.xml.","Sam Graham"]],"ref":"refs/heads/master","size":5,"head":"d7ab92326cf6772d4eae72669c806ed54336b95f","push_id":36696935}