<p dir="auto">I have seen evidence that both tuple indexing and slicing syntax are silently allowed by <code class="notranslate">rustc</code>, rather than requiring the feature gate turned on to enable them.</p>
<p dir="auto">It could be that I missed some step along the way where these features were officially enabled.  But I think its more likely that someone has accidentally turned them both on somehow, especially since the team discussion from last Thursday on <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="45643411" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/18006" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/18006/hovercard" href="https://github.com/rust-lang/rust/issues/18006">#18006</a> included statements that tuple-indexing is meant to be feature gated.</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="% cat /tmp/f.rs 
fn main() {
    let t = ('a', 'b', 'c');
    let v = vec!['x', 'y', 'z'];
    println!(&quot;t: {} v: {}&quot;, t.1, v[]);
}
% rustc-0.12-x64 --version=verbose
rustc 0.12.0 (ba4081a5a 2014-10-07 13:44:41 -0700)
binary: rustc
commit-hash: ba4081a5a8573875fed17545846f6f6902c8ba8d
commit-date: 2014-10-07 13:44:41 -0700
host: x86_64-apple-darwin
release: 0.12.0
% rustc-0.12-x64 /tmp/f.rs 
% rustc --version
rustc 0.13.0-dev (4480caf2a 2014-10-18 06:22:15 +0000)
% rustc /tmp/f.rs 
% ./f
t: b v: [x, y, z]
% "><pre class="notranslate">% cat /tmp/f<span class="pl-kos">.</span><span class="pl-en">rs</span> 
fn main<span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> t = <span class="pl-kos">(</span><span class="pl-s">'a'</span><span class="pl-kos">,</span> <span class="pl-s">'b'</span><span class="pl-kos">,</span> <span class="pl-s">'c'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> v = <span class="pl-en">vec</span><span class="pl-en">!</span><span class="pl-kos">[</span><span class="pl-s">'x'</span>, <span class="pl-s">'y'</span>, <span class="pl-s">'z'</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
    <span class="pl-en">println</span><span class="pl-en">!</span><span class="pl-kos">(</span><span class="pl-s">"t: {} v: {}"</span>, t.<span class="pl-c1">1</span>, v<span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
% rustc-<span class="pl-c1">0.12</span>-x64 --version=verbose
rustc <span class="pl-c1">0.12</span><span class="pl-kos">.</span><span class="pl-c1">0</span> <span class="pl-kos">(</span>ba4081a5a <span class="pl-c1">2014</span>-<span class="pl-c1">10</span>-<span class="pl-c1">07</span> <span class="pl-c1">13</span><span class="pl-kos">:</span><span class="pl-c1">44</span><span class="pl-kos">:</span><span class="pl-c1">41</span> -<span class="pl-c1">0700</span><span class="pl-kos">)</span>
binary<span class="pl-kos">:</span> rustc
commit-hash<span class="pl-kos">:</span> ba4081a5a8573875fed17545846f6f6902c8ba8d
commit-date<span class="pl-kos">:</span> <span class="pl-c1">2014</span>-<span class="pl-c1">10</span>-<span class="pl-c1">07</span> <span class="pl-c1">13</span><span class="pl-kos">:</span><span class="pl-c1">44</span><span class="pl-kos">:</span><span class="pl-c1">41</span> -<span class="pl-c1">0700</span>
host<span class="pl-kos">:</span> x86_64-apple-darwin
release<span class="pl-kos">:</span> <span class="pl-c1">0.12</span><span class="pl-kos">.</span><span class="pl-c1">0</span>
% rustc-<span class="pl-c1">0.12</span>-x64 /tmp/f<span class="pl-kos">.</span><span class="pl-c1">rs</span> 
% rustc --version
rustc <span class="pl-c1">0.13</span><span class="pl-kos">.</span><span class="pl-c1">0</span>-<span class="pl-en">dev</span> <span class="pl-kos">(</span><span class="pl-c1">4480</span>caf2a <span class="pl-c1">2014</span>-<span class="pl-c1">10</span>-<span class="pl-c1">18</span> <span class="pl-c1">06</span><span class="pl-kos">:</span><span class="pl-c1">22</span><span class="pl-kos">:</span><span class="pl-c1">15</span> +<span class="pl-c1">0000</span><span class="pl-kos">)</span>
% rustc /tmp/f<span class="pl-kos">.</span><span class="pl-c1">rs</span> 
% <span class="pl-kos">.</span>/f
t<span class="pl-kos">:</span> b v<span class="pl-kos">:</span> <span class="pl-kos">[</span>x<span class="pl-kos">,</span> y<span class="pl-kos">,</span> z<span class="pl-kos">]</span>
% </pre></div>
<p dir="auto">Feature gates are generally checked before expansion so feature gates are defeated by code inside macros.</p>