-
Notifications
You must be signed in to change notification settings - Fork 12.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lament the invincibility of the Turbofish
- Loading branch information
Showing
1 changed file
with
42 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT | ||
// file at the top-level directory of this distribution and at | ||
// http://rust-lang.org/COPYRIGHT. | ||
// | ||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | ||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | ||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | ||
// option. This file may not be copied, modified, or distributed | ||
// except according to those terms. | ||
|
||
// compile-pass | ||
|
||
// Bastion of the Turbofish | ||
// ------------------------ | ||
// Beware travellers, lest you venture into waters callous and unforgiving, | ||
// where hope must be abandoned, ere it is cruelly torn from you. For here | ||
// stands the bastion of the Turbofish: an impenetrable fortress holding | ||
// unshaking against those who would dare suggest the supererogation of the | ||
// Turbofish. | ||
// | ||
// Once I was young and foolish and had the impudence to imagine that I could | ||
// shake free from the coils by which that creature had us tightly bound. I | ||
// dared to suggest that there was a better way: a brighter future, in which | ||
// Rustaceans both new and old could be rid of that vile beast. But alas! In | ||
// my foolhardiness my ignorance was unveiled and my dreams were dashed | ||
// unforgivingly against the rock of syntactic ambiguity. | ||
// | ||
// This humble program, small and insignificant though it might seem, | ||
// demonstrates that to which we had previously cast a blind eye: an ambiguity | ||
// in permitting generic arguments to be provided without the consent of the | ||
// Great Turbofish. Should you be so naïve as to try to revolt against its | ||
// mighty clutches, here shall its wrath be indomitably displayed. This | ||
// program must pass for all eternity, fundamentally at odds with an impetuous | ||
// rebellion against the Turbofish. | ||
// | ||
// My heart aches in sorrow, for I know I am defeated. Let this be a warning | ||
// to all those who come after. Here stands the bastion of the Turbofish. | ||
|
||
fn main() { | ||
let (oh, woe, is, me) = ("the", "Turbofish", "remains", "undefeated"); | ||
let _: (bool, bool) = (oh<woe, is>(me)); | ||
} |