<p dir="auto">Feature gates are generally checked before expansion so feature gates are defeated by code inside macros.</p>
<p dir="auto">This uses the <code class="notranslate">log_syntax!</code> macro without the <code class="notranslate">log_syntax</code> feature gate:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="#[feature(macro_rules)];
// This should be required
// #[feature(log_syntax)];

macro_rules! hey ( () =&gt; { log_syntax!() } )

fn main() {
    hey!()                                                                                         
}"><pre class="notranslate"><code class="notranslate">#[feature(macro_rules)];
// This should be required
// #[feature(log_syntax)];

macro_rules! hey ( () =&gt; { log_syntax!() } )

fn main() {
    hey!()                                                                                         
}
</code></pre></div>
<p dir="auto">Nominating.</p>