<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>E0015 on ErrorVault — Developer Error Code Dictionary</title>
    <link>https://errorvault.dev/tags/e0015/</link>
    <description>Recent content in E0015 on ErrorVault — Developer Error Code Dictionary</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 23 Jul 2026 19:56:04 +0800</lastBuildDate>
    <atom:link href="https://errorvault.dev/tags/e0015/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Fix E0015: Cannot Call Non-Const Fn in Const Context</title>
      <link>https://errorvault.dev/rust/rust-e0015-cannot-call-non-const-fn/</link>
      <pubDate>Thu, 23 Jul 2026 19:56:04 +0800</pubDate>
      <guid>https://errorvault.dev/rust/rust-e0015-cannot-call-non-const-fn/</guid>
      <description>&lt;h2 id=&#34;1-symptoms&#34;&gt;1. Symptoms&lt;/h2&gt;&#xA;&lt;p&gt;When your Rust code triggers error E0015, the compiler produces output similar to the following:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-mysql&#34; data-lang=&#34;mysql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error[E0015]: cannot &lt;span style=&#34;color:#ff79c6&#34;&gt;call&lt;/span&gt; non&lt;span style=&#34;color:#ff79c6&#34;&gt;-&lt;/span&gt;const fn &lt;span style=&#34;color:#ff79c6&#34;&gt;`&lt;/span&gt;some_function&lt;span style=&#34;color:#ff79c6&#34;&gt;`&lt;/span&gt; &lt;span style=&#34;color:#ff79c6&#34;&gt;in&lt;/span&gt; a constant&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ff79c6&#34;&gt;--&amp;gt;&lt;/span&gt; src&lt;span style=&#34;color:#ff79c6&#34;&gt;/&lt;/span&gt;main.rs:&lt;span style=&#34;color:#bd93f9&#34;&gt;5&lt;/span&gt;:&lt;span style=&#34;color:#bd93f9&#34;&gt;5&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;|&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bd93f9&#34;&gt;5&lt;/span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;|&lt;/span&gt;     &lt;span style=&#34;color:#50fa7b&#34;&gt;some_function&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;|&lt;/span&gt;     &lt;span style=&#34;color:#ff79c6&#34;&gt;^^^^^^^^^^^^^^^&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;|&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ff79c6&#34;&gt;=&lt;/span&gt; note: non&lt;span style=&#34;color:#ff79c6&#34;&gt;-&lt;/span&gt;const functions may only be called at runtime, &lt;span style=&#34;color:#ff79c6&#34;&gt;in&lt;/span&gt; constant&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    expressions &lt;span style=&#34;color:#ff79c6&#34;&gt;in&lt;/span&gt; the &lt;span style=&#34;color:#ff79c6&#34;&gt;right&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;-&lt;/span&gt;hand side of &lt;span style=&#34;color:#ff79c6&#34;&gt;`&lt;/span&gt;let&lt;span style=&#34;color:#ff79c6&#34;&gt;`&lt;/span&gt; statements &lt;span style=&#34;color:#ff79c6&#34;&gt;with&lt;/span&gt; no patterns&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This error typically manifests when you attempt to use a runtime function inside a &lt;code&gt;const&lt;/code&gt; context, whether that context is a &lt;code&gt;const fn&lt;/code&gt;, a &lt;code&gt;static&lt;/code&gt; variable, or a &lt;code&gt;const&lt;/code&gt; variable declaration. The compiler explicitly rejects the operation because constant evaluation in Rust occurs entirely at compile time, and certain operations—including function calls that the compiler cannot evaluate—are not permitted in this phase.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
