<p dir="auto">Rust should support a no extra attribute and flag. This would be useful for me so I could:</p>
<ul dir="auto">
<li>compile my own hacked version of extra like <code class="notranslate">rustc rust/src/libextra/extra.rs --output-dir .</code></li>
<li>compile a regressing benchmark like <code class="notranslate">rustc -L . -Z no-extra rust/src/test/bench/msgsend-mutex-arcs.rs -o mutex-bench</code></li>
<li>and then run the benchmark file like <code class="notranslate">./mutex-bench</code></li>
</ul>
<p dir="auto">This would greatly speed up time hunting for the regression in mutex performance for my pull request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="16607468" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/7701" data-hovercard-type="pull_request" data-hovercard-url="/rust-lang/rust/pull/7701/hovercard" href="https://github.com/rust-lang/rust/pull/7701">#7701</a> .</p>
<p dir="auto">Once we can declare lifetime parameters, there is no reason not to permit them in type bounds.  Also, I am not entirely sure if the way we are handling them is correct/sound.  I've tagged places where such bounds appear with FIXMEs so that I can look into them later.</p>
<hr>
<p dir="auto">Example:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="trait Iterable&lt;'a&gt; {
    fn my_iter(&amp;'a self);
}

fn foo&lt;'a, C: Iterable&lt;'a&gt;&gt;(c: C) {
    c.my_iter();
}

fn main() { }"><pre class="notranslate"><span class="pl-k">trait</span> <span class="pl-smi">Iterable</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-k">fn</span> <span class="pl-en">my_iter</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-smi">self</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">foo</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">,</span> <span class="pl-smi">C</span><span class="pl-kos">:</span> <span class="pl-smi">Iterable</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-s1">c</span><span class="pl-kos">:</span> <span class="pl-smi">C</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    c<span class="pl-kos">.</span><span class="pl-en">my_iter</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-kos">}</span></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="5121.rs:6:5: 6:6 error: internal compiler error: Cannot relate bound region: ReLateBound(12, BrNamed(syntax::ast::DefId{crate: 0u32, node: 21u32}, a)) &lt;= ReInfer(1)
This message reflects a bug in the Rust compiler. 
We would appreciate a bug report: https://github.com/mozilla/rust/wiki/HOWTO-submit-a-Rust-bug-report
5121.rs:6     c.my_iter();
              ^
task 'rustc' failed at 'explicit failure', /home/huon/rust/src/libsyntax/diagnostic.rs:41
task '&lt;main&gt;' failed at 'explicit failure', /home/huon/rust/src/librustc/lib.rs:440"><pre class="notranslate"><code class="notranslate">5121.rs:6:5: 6:6 error: internal compiler error: Cannot relate bound region: ReLateBound(12, BrNamed(syntax::ast::DefId{crate: 0u32, node: 21u32}, a)) &lt;= ReInfer(1)
This message reflects a bug in the Rust compiler. 
We would appreciate a bug report: https://github.com/mozilla/rust/wiki/HOWTO-submit-a-Rust-bug-report
5121.rs:6     c.my_iter();
              ^
task 'rustc' failed at 'explicit failure', /home/huon/rust/src/libsyntax/diagnostic.rs:41
task '&lt;main&gt;' failed at 'explicit failure', /home/huon/rust/src/librustc/lib.rs:440
</code></pre></div>
<hr>
<p dir="auto">pnkfelix: I am adding a checklist to the bottom of this bug, where the unchecked issues represent problems that still remain unfixed (and the entire list of issues were closed as duplicates of this ticket).</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="22395368" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/10391" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/10391/hovercard" href="https://github.com/rust-lang/rust/issues/10391">#10391</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="22630846" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/10467" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/10467/hovercard" href="https://github.com/rust-lang/rust/issues/10467">#10467</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="23893691" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/10841" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/10841/hovercard" href="https://github.com/rust-lang/rust/issues/10841">#10841</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="23939524" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/10868" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/10868/hovercard" href="https://github.com/rust-lang/rust/issues/10868">#10868</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="24399843" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/11016" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/11016/hovercard" href="https://github.com/rust-lang/rust/issues/11016">#11016</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="25389050" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/11446" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/11446/hovercard" href="https://github.com/rust-lang/rust/issues/11446">#11446</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="26453035" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/11881" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/11881/hovercard" href="https://github.com/rust-lang/rust/issues/11881">#11881</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="26778222" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/12008" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/12008/hovercard" href="https://github.com/rust-lang/rust/issues/12008">#12008</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="29299812" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/12851" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/12851/hovercard" href="https://github.com/rust-lang/rust/issues/12851">#12851</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="12788148" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/5715" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/5715/hovercard" href="https://github.com/rust-lang/rust/issues/5715">#5715</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="26739071" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/11971" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/11971/hovercard" href="https://github.com/rust-lang/rust/issues/11971">#11971</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="29319894" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/12856" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/12856/hovercard" href="https://github.com/rust-lang/rust/issues/12856">#12856</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="29321161" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/12857" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/12857/hovercard" href="https://github.com/rust-lang/rust/issues/12857">#12857</a></li>
</ul>