<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Static Analysis</title><link>https://blog.ast.moe/en/tags/static-analysis/</link><description>Recent posts: Gorimuchu</description><generator>Hugo</generator><item><title>Static analysis of explicit purity constraints in Go: Design and verification of mikoto</title><link>https://blog.ast.moe/en/blog/2026-09-30-2/</link><pubDate>Wed, 30 Sep 2026 22:38:00 +0900</pubDate><guid>https://blog.ast.moe/en/blog/2026-09-30-2/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;I created mikoto (&lt;a href="https://github.com/ieee0824/mikoto"&gt;source&lt;/a&gt;), a tool that checks the length of Go functions and the purity constraints explicitly specified for functions. By annotating a function declaration with &lt;code&gt;//mikoto:pure&lt;/code&gt;, it inspects inputs and outputs that use only value types, access to package variables, modifications of referenced objects, pointer indirection, call targets, and so on. The implementation uses Go’s AST and type information, limiting the scope of inspection to function declarations within the same package.&lt;/p&gt;</description></item></channel></rss>