Static source code analysis