<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Static-Analysis on Murat Useinov</title>
    <link>https://useinov.com/tags/static-analysis/</link>
    <description>Recent content in Static-Analysis on Murat Useinov</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 09 Sep 2017 15:30:00 +0300</lastBuildDate>
    <atom:link href="https://useinov.com/tags/static-analysis/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>First run of PHPStan on legacy code</title>
      <link>https://useinov.com/posts/2017/phpstan-first-run/</link>
      <pubDate>Sat, 09 Sep 2017 15:30:00 +0300</pubDate>
      <guid>https://useinov.com/posts/2017/phpstan-first-run/</guid>
      <description>&lt;p&gt;Level 0, a legacy codebase, a few hundred errors on the first run. That was my week with PHPStan. Most of the output was noise about magic the tool cannot see. But in the first hour of reading I found three real bugs, live in production for months.&lt;/p&gt;
&lt;p&gt;One: a repository method returns an entity or null, and a caller chains a method right on the result. The not-found branch was never written. It survived because that path needs a deleted record, and deleted records are rare. Rare is not never.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
