2017-01-15 19:50:27 -06:00
|
|
|
// rustfmt-normalize_comments: true
|
2015-08-14 03:00:22 -05:00
|
|
|
// Match expressions.
|
|
|
|
|
|
|
|
fn foo() {
|
|
|
|
// A match expression.
|
|
|
|
match x {
|
|
|
|
// Some comment.
|
|
|
|
a => foo(),
|
|
|
|
b if 0 < 42 => foo(),
|
2015-10-19 14:41:47 -05:00
|
|
|
c => {
|
|
|
|
// Another comment.
|
2015-08-14 03:00:22 -05:00
|
|
|
// Comment.
|
|
|
|
an_expression;
|
|
|
|
foo()
|
|
|
|
}
|
2015-11-20 14:05:10 -06:00
|
|
|
Foo(ref bar) => {
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
}
|
2015-08-14 03:00:22 -05:00
|
|
|
Pattern1 | Pattern2 | Pattern3 => false,
|
2017-11-16 01:42:11 -06:00
|
|
|
Paternnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
|
|
|
|
| Paternnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn => blah,
|
|
|
|
Patternnnnnnnnnnnnnnnnnnn
|
|
|
|
| Patternnnnnnnnnnnnnnnnnnn
|
|
|
|
| Patternnnnnnnnnnnnnnnnnnn
|
|
|
|
| Patternnnnnnnnnnnnnnnnnnn => meh,
|
2015-08-14 03:00:22 -05:00
|
|
|
|
2017-07-09 12:25:26 -05:00
|
|
|
Patternnnnnnnnnnnnnnnnnnn | Patternnnnnnnnnnnnnnnnnnn if looooooooooooooooooong_guard => {
|
2015-11-20 14:05:10 -06:00
|
|
|
meh
|
|
|
|
}
|
2015-08-16 16:41:45 -05:00
|
|
|
|
2017-07-09 12:25:26 -05:00
|
|
|
Patternnnnnnnnnnnnnnnnnnnnnnnnn | Patternnnnnnnnnnnnnnnnnnnnnnnnn
|
2017-07-19 10:01:38 -05:00
|
|
|
if looooooooooooooooooooooooooooooooooooooooong_guard =>
|
|
|
|
{
|
|
|
|
meh
|
|
|
|
}
|
2017-07-09 12:25:26 -05:00
|
|
|
|
2015-08-16 16:41:45 -05:00
|
|
|
// Test that earlier patterns can take the guard space
|
2017-11-16 01:42:11 -06:00
|
|
|
(aaaa, bbbbb, ccccccc, aaaaa, bbbbbbbb, cccccc, aaaa, bbbbbbbb, cccccc, dddddd)
|
|
|
|
| Patternnnnnnnnnnnnnnnnnnnnnnnnn
|
|
|
|
if loooooooooooooooooooooooooooooooooooooooooong_guard => {}
|
2015-08-16 16:41:45 -05:00
|
|
|
|
2015-08-14 03:00:22 -05:00
|
|
|
_ => {}
|
2017-06-14 06:39:07 -05:00
|
|
|
ast::PathParameters::AngleBracketedParameters(ref data)
|
|
|
|
if data.lifetimes.len() > 0 || data.types.len() > 0 || data.bindings.len() > 0 => {}
|
2015-08-14 03:00:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
let whatever = match something {
|
|
|
|
/// DOC COMMENT!
|
|
|
|
Some(_) => 42,
|
2015-08-18 22:15:54 -05:00
|
|
|
// Comment on an attribute.
|
2015-08-14 03:00:22 -05:00
|
|
|
#[an_attribute]
|
2015-08-16 16:41:45 -05:00
|
|
|
// Comment after an attribute.
|
2015-08-14 03:00:22 -05:00
|
|
|
None => 0,
|
2018-05-13 23:25:10 -05:00
|
|
|
#[rustfmt::skip]
|
2015-08-16 16:41:45 -05:00
|
|
|
Blurb => { }
|
2015-08-14 03:00:22 -05:00
|
|
|
};
|
|
|
|
}
|
2015-09-01 21:29:47 -05:00
|
|
|
|
|
|
|
// Test that a match on an overflow line is laid out properly.
|
|
|
|
fn main() {
|
|
|
|
let sub_span =
|
2015-09-09 16:15:37 -05:00
|
|
|
match xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
|
2015-09-01 21:29:47 -05:00
|
|
|
Some(sub_span) => Some(sub_span),
|
|
|
|
None => sub_span,
|
|
|
|
};
|
|
|
|
}
|
2015-09-01 21:45:56 -05:00
|
|
|
|
|
|
|
// Test that one-line bodies align.
|
|
|
|
fn main() {
|
|
|
|
match r {
|
2017-06-11 23:01:41 -05:00
|
|
|
Variableeeeeeeeeeeeeeeeee => (
|
|
|
|
"variable",
|
|
|
|
vec!["id", "name", "qualname", "value", "type", "scopeid"],
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
),
|
|
|
|
Enummmmmmmmmmmmmmmmmmmmm => (
|
|
|
|
"enum",
|
|
|
|
vec!["id", "qualname", "scopeid", "value"],
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
),
|
|
|
|
Variantttttttttttttttttttttttt => (
|
|
|
|
"variant",
|
2017-06-16 04:56:38 -05:00
|
|
|
vec!["id", "name", "qualname", "type", "value", "scopeid"],
|
2017-06-11 23:01:41 -05:00
|
|
|
true,
|
|
|
|
true,
|
|
|
|
),
|
2015-11-14 14:59:04 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
match x {
|
2017-01-15 21:37:58 -06:00
|
|
|
y => { /*Block with comment. Preserve me.*/ }
|
2015-11-14 14:59:04 -06:00
|
|
|
z => {
|
|
|
|
stmt();
|
|
|
|
}
|
2015-09-26 11:16:07 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn matches() {
|
|
|
|
match 1 {
|
2015-10-17 08:56:53 -05:00
|
|
|
-1 => 10,
|
2015-09-26 11:16:07 -05:00
|
|
|
1 => 1, // foo
|
|
|
|
2 => 2,
|
|
|
|
// bar
|
|
|
|
3 => 3,
|
|
|
|
_ => 0, // baz
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-01-08 02:03:41 -06:00
|
|
|
fn match_skip() {
|
|
|
|
let _ = match Some(1) {
|
2018-05-13 23:25:10 -05:00
|
|
|
#[rustfmt::skip]
|
2016-01-08 02:03:41 -06:00
|
|
|
Some( n ) => n,
|
|
|
|
None => 1,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2015-09-26 11:16:07 -05:00
|
|
|
fn issue339() {
|
|
|
|
match a {
|
|
|
|
b => {}
|
|
|
|
c => {}
|
|
|
|
d => {}
|
|
|
|
e => {}
|
|
|
|
// collapsing here is safe
|
|
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff => {}
|
|
|
|
// collapsing here exceeds line length
|
|
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg => {
|
|
|
|
}
|
2019-07-17 09:07:12 -05:00
|
|
|
h => { // comment above block
|
2015-09-26 11:16:07 -05:00
|
|
|
}
|
2017-11-14 19:56:26 -06:00
|
|
|
i => {} // comment below block
|
2015-09-26 11:16:07 -05:00
|
|
|
j => {
|
|
|
|
// comment inside block
|
|
|
|
}
|
|
|
|
j2 => {
|
|
|
|
// comments inside...
|
2017-11-14 19:56:26 -06:00
|
|
|
} // ... and after
|
2015-09-26 11:16:07 -05:00
|
|
|
// TODO uncomment when vertical whitespace is handled better
|
|
|
|
// k => {
|
|
|
|
//
|
|
|
|
// // comment with WS above
|
|
|
|
// }
|
|
|
|
// l => {
|
|
|
|
// // comment with ws below
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
m => {}
|
|
|
|
n => {}
|
|
|
|
o => {}
|
2019-07-17 09:07:12 -05:00
|
|
|
p => { // Don't collapse me
|
2015-09-26 11:16:07 -05:00
|
|
|
}
|
|
|
|
q => {}
|
|
|
|
r => {}
|
|
|
|
s => 0, // s comment
|
|
|
|
// t comment
|
|
|
|
t => 1,
|
|
|
|
u => 2,
|
2017-08-18 09:20:12 -05:00
|
|
|
v => {} /* funky block
|
|
|
|
* comment */
|
|
|
|
/* final comment */
|
2015-09-26 11:16:07 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn issue355() {
|
|
|
|
match mac {
|
|
|
|
a => println!("a", b),
|
2015-10-16 15:54:32 -05:00
|
|
|
b => vec![1, 2],
|
2017-05-19 05:25:53 -05:00
|
|
|
c => vec![3; 4],
|
2020-10-27 17:52:02 -05:00
|
|
|
d => {
|
|
|
|
println!("a", b)
|
|
|
|
}
|
|
|
|
e => {
|
|
|
|
vec![1, 2]
|
|
|
|
}
|
|
|
|
f => {
|
|
|
|
vec![3; 4]
|
|
|
|
}
|
2015-09-26 11:16:07 -05:00
|
|
|
h => println!("a", b), // h comment
|
2017-08-18 09:20:12 -05:00
|
|
|
i => vec![1, 2], // i comment
|
|
|
|
j => vec![3; 4], // j comment
|
2015-09-26 11:16:07 -05:00
|
|
|
// k comment
|
|
|
|
k => println!("a", b),
|
|
|
|
// l comment
|
2015-10-16 15:54:32 -05:00
|
|
|
l => vec![1, 2],
|
2015-09-26 11:16:07 -05:00
|
|
|
// m comment
|
2017-05-19 05:25:53 -05:00
|
|
|
m => vec![3; 4],
|
2015-09-26 11:16:07 -05:00
|
|
|
// Rewrite splits macro
|
2015-11-20 14:05:10 -06:00
|
|
|
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn => {
|
|
|
|
println!("a", b)
|
|
|
|
}
|
2015-09-26 11:16:07 -05:00
|
|
|
// Rewrite splits macro
|
2015-11-20 14:05:10 -06:00
|
|
|
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo => {
|
|
|
|
vec![1, 2]
|
|
|
|
}
|
2017-11-01 01:33:55 -05:00
|
|
|
// Macro support fails to recognise this macro as splittable
|
2015-09-26 11:16:07 -05:00
|
|
|
// We push the whole expr to a new line, TODO split this macro as well
|
2015-11-20 14:05:10 -06:00
|
|
|
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp => {
|
2017-05-19 05:25:53 -05:00
|
|
|
vec![3; 4]
|
2015-11-20 14:05:10 -06:00
|
|
|
}
|
2015-09-26 11:16:07 -05:00
|
|
|
// q, r and s: Rewrite splits match arm
|
2015-11-20 14:05:10 -06:00
|
|
|
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq => {
|
|
|
|
println!("a", b)
|
|
|
|
}
|
|
|
|
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr => {
|
|
|
|
vec![1, 2]
|
|
|
|
}
|
|
|
|
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss => {
|
2017-05-19 05:25:53 -05:00
|
|
|
vec![3; 4]
|
2015-11-20 14:05:10 -06:00
|
|
|
}
|
2015-09-26 11:16:07 -05:00
|
|
|
// Funky bracketing styles
|
2018-11-17 12:53:11 -06:00
|
|
|
t => println! {"a", b},
|
2015-10-16 15:54:32 -05:00
|
|
|
u => vec![1, 2],
|
2017-05-19 05:25:53 -05:00
|
|
|
v => vec![3; 4],
|
2015-09-26 11:16:07 -05:00
|
|
|
w => println!["a", b],
|
|
|
|
x => vec![1, 2],
|
|
|
|
y => vec![3; 4],
|
|
|
|
// Brackets with comments
|
2018-11-17 12:53:11 -06:00
|
|
|
tc => println! {"a", b}, // comment
|
|
|
|
uc => vec![1, 2], // comment
|
|
|
|
vc => vec![3; 4], // comment
|
|
|
|
wc => println!["a", b], // comment
|
|
|
|
xc => vec![1, 2], // comment
|
|
|
|
yc => vec![3; 4], // comment
|
2017-07-11 07:53:48 -05:00
|
|
|
yd => looooooooooooooooooooooooooooooooooooooooooooooooooooooooong_func(
|
2018-03-25 17:38:39 -05:00
|
|
|
aaaaaaaaaa, bbbbbbbbbb, cccccccccc, dddddddddd,
|
2017-07-11 07:53:48 -05:00
|
|
|
),
|
2015-09-01 21:45:56 -05:00
|
|
|
}
|
|
|
|
}
|
2015-09-27 04:58:26 -05:00
|
|
|
|
|
|
|
fn issue280() {
|
|
|
|
{
|
|
|
|
match x {
|
2017-07-09 12:25:26 -05:00
|
|
|
CompressionMode::DiscardNewline | CompressionMode::CompressWhitespaceNewline => {
|
|
|
|
ch == '\n'
|
|
|
|
}
|
2015-11-20 14:05:10 -06:00
|
|
|
ast::ItemConst(ref typ, ref expr) => {
|
|
|
|
self.process_static_or_const_item(item, &typ, &expr)
|
|
|
|
}
|
2015-09-27 04:58:26 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-09-27 15:11:17 -05:00
|
|
|
|
|
|
|
fn issue383() {
|
|
|
|
match resolution.last_private {
|
2016-02-11 19:59:13 -06:00
|
|
|
LastImport { .. } => false,
|
2015-09-27 15:11:17 -05:00
|
|
|
_ => true,
|
2015-11-08 18:23:19 -06:00
|
|
|
};
|
2015-09-27 15:11:17 -05:00
|
|
|
}
|
2015-10-21 16:35:45 -05:00
|
|
|
|
|
|
|
fn issue507() {
|
|
|
|
match 1 {
|
|
|
|
1 => unsafe { std::intrinsics::abort() },
|
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn issue508() {
|
|
|
|
match s.type_id() {
|
2017-11-29 02:37:56 -06:00
|
|
|
Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
|
|
|
|
HTMLElementTypeId::HTMLCanvasElement,
|
|
|
|
))) => true,
|
|
|
|
Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
|
|
|
|
HTMLElementTypeId::HTMLObjectElement,
|
|
|
|
))) => s.has_object_data(),
|
2015-10-21 16:35:45 -05:00
|
|
|
Some(NodeTypeId::Element(_)) => false,
|
|
|
|
}
|
|
|
|
}
|
2015-10-23 14:20:43 -05:00
|
|
|
|
|
|
|
fn issue496() {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
{
|
|
|
|
match def {
|
2017-07-09 12:25:26 -05:00
|
|
|
def::DefConst(def_id) | def::DefAssociatedConst(def_id) => {
|
2015-10-23 14:20:43 -05:00
|
|
|
match const_eval::lookup_const_by_id(cx.tcx, def_id, Some(self.pat.id)) {
|
2015-11-14 14:57:31 -06:00
|
|
|
Some(const_expr) => x,
|
2015-11-20 14:05:10 -06:00
|
|
|
}
|
|
|
|
}
|
2015-10-23 14:20:43 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn issue494() {
|
|
|
|
{
|
|
|
|
match stmt.node {
|
2017-07-09 12:25:26 -05:00
|
|
|
hir::StmtExpr(ref expr, id) | hir::StmtSemi(ref expr, id) => {
|
2015-10-23 14:20:43 -05:00
|
|
|
result.push(StmtRef::Mirror(Box::new(Stmt {
|
2017-06-11 23:01:41 -05:00
|
|
|
span: stmt.span,
|
|
|
|
kind: StmtKind::Expr {
|
|
|
|
scope: cx.tcx.region_maps.node_extent(id),
|
|
|
|
expr: expr.to_ref(),
|
|
|
|
},
|
|
|
|
})))
|
2015-11-20 14:05:10 -06:00
|
|
|
}
|
2015-10-23 14:20:43 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2016-04-09 01:40:00 -05:00
|
|
|
|
|
|
|
fn issue386() {
|
|
|
|
match foo {
|
|
|
|
BiEq | BiLt | BiLe | BiNe | BiGt | BiGe => true,
|
2017-11-16 02:37:01 -06:00
|
|
|
BiAnd | BiOr | BiAdd | BiSub | BiMul | BiDiv | BiRem | BiBitXor | BiBitAnd | BiBitOr
|
|
|
|
| BiShl | BiShr => false,
|
2016-04-09 01:40:00 -05:00
|
|
|
}
|
|
|
|
}
|
2016-04-11 17:30:57 -05:00
|
|
|
|
|
|
|
fn guards() {
|
|
|
|
match foo {
|
2017-06-14 06:39:07 -05:00
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
if foooooooooooooo && barrrrrrrrrrrr => {}
|
2017-11-16 01:42:11 -06:00
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2017-06-14 06:39:07 -05:00
|
|
|
if foooooooooooooo && barrrrrrrrrrrr => {}
|
2016-04-11 17:30:57 -05:00
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2017-09-14 22:20:58 -05:00
|
|
|
if fooooooooooooooooooooo
|
|
|
|
&& (bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
|
|
|| cccccccccccccccccccccccccccccccccccccccc) => {}
|
2016-04-11 17:30:57 -05:00
|
|
|
}
|
|
|
|
}
|
2017-04-18 20:14:27 -05:00
|
|
|
|
|
|
|
fn issue1371() {
|
|
|
|
Some(match type_ {
|
2017-06-11 23:01:41 -05:00
|
|
|
sfEvtClosed => Closed,
|
|
|
|
sfEvtResized => {
|
|
|
|
let e = unsafe { *event.size.as_ref() };
|
2017-04-18 20:14:27 -05:00
|
|
|
|
2017-06-11 23:01:41 -05:00
|
|
|
Resized {
|
|
|
|
width: e.width,
|
|
|
|
height: e.height,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sfEvtLostFocus => LostFocus,
|
|
|
|
sfEvtGainedFocus => GainedFocus,
|
2017-07-11 07:53:48 -05:00
|
|
|
sfEvtTextEntered => TextEntered {
|
|
|
|
unicode: unsafe {
|
|
|
|
::std::char::from_u32((*event.text.as_ref()).unicode)
|
|
|
|
.expect("Invalid unicode encountered on TextEntered event")
|
|
|
|
},
|
|
|
|
},
|
2017-06-11 23:01:41 -05:00
|
|
|
sfEvtKeyPressed => {
|
|
|
|
let e = unsafe { event.key.as_ref() };
|
2017-04-18 20:14:27 -05:00
|
|
|
|
2017-06-11 23:01:41 -05:00
|
|
|
KeyPressed {
|
|
|
|
code: unsafe { ::std::mem::transmute(e.code) },
|
|
|
|
alt: e.alt.to_bool(),
|
|
|
|
ctrl: e.control.to_bool(),
|
|
|
|
shift: e.shift.to_bool(),
|
|
|
|
system: e.system.to_bool(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sfEvtKeyReleased => {
|
|
|
|
let e = unsafe { event.key.as_ref() };
|
2017-04-18 20:14:27 -05:00
|
|
|
|
2017-06-11 23:01:41 -05:00
|
|
|
KeyReleased {
|
|
|
|
code: unsafe { ::std::mem::transmute(e.code) },
|
|
|
|
alt: e.alt.to_bool(),
|
|
|
|
ctrl: e.control.to_bool(),
|
|
|
|
shift: e.shift.to_bool(),
|
|
|
|
system: e.system.to_bool(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
2017-04-18 20:14:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn issue1395() {
|
|
|
|
let bar = Some(true);
|
|
|
|
let foo = Some(true);
|
|
|
|
let mut x = false;
|
|
|
|
bar.and_then(|_| match foo {
|
2017-06-11 23:01:41 -05:00
|
|
|
None => None,
|
|
|
|
Some(b) => {
|
|
|
|
x = true;
|
|
|
|
Some(b)
|
|
|
|
}
|
|
|
|
});
|
2017-04-18 20:14:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn issue1456() {
|
|
|
|
Ok(Recording {
|
2017-08-06 08:56:51 -05:00
|
|
|
artists: match reader.evaluate(".//mb:recording/mb:artist-credit/mb:name-credit")? {
|
2017-06-11 23:01:41 -05:00
|
|
|
Nodeset(nodeset) => {
|
|
|
|
let res: Result<Vec<ArtistRef>, ReadError> = nodeset
|
|
|
|
.iter()
|
|
|
|
.map(|node| {
|
|
|
|
XPathNodeReader::new(node, &context).and_then(|r| ArtistRef::from_xml(&r))
|
2018-09-19 09:19:24 -05:00
|
|
|
})
|
|
|
|
.collect();
|
2017-06-11 23:01:41 -05:00
|
|
|
res?
|
|
|
|
}
|
|
|
|
_ => Vec::new(),
|
|
|
|
},
|
|
|
|
})
|
2017-04-18 20:14:27 -05:00
|
|
|
}
|
2017-05-01 06:00:21 -05:00
|
|
|
|
|
|
|
fn issue1460() {
|
|
|
|
let _ = match foo {
|
|
|
|
REORDER_BUFFER_CHANGE_INTERNAL_SPEC_INSERT => {
|
|
|
|
"internal_spec_insert_internal_spec_insert_internal_spec_insert"
|
|
|
|
}
|
|
|
|
_ => "reorder_something",
|
|
|
|
};
|
|
|
|
}
|
2017-05-08 18:28:05 -05:00
|
|
|
|
|
|
|
fn issue525() {
|
2017-06-11 23:01:41 -05:00
|
|
|
foobar(
|
|
|
|
f,
|
|
|
|
"{}",
|
|
|
|
match *self {
|
|
|
|
TaskState::Started => "started",
|
|
|
|
TaskState::Success => "success",
|
|
|
|
TaskState::Failed => "failed",
|
|
|
|
},
|
|
|
|
);
|
2017-05-08 18:28:05 -05:00
|
|
|
}
|
2017-07-31 02:24:18 -05:00
|
|
|
|
|
|
|
// #1838, #1839
|
|
|
|
fn match_with_near_max_width() {
|
|
|
|
let (this_line_uses_99_characters_and_is_formatted_properly, x012345) = match some_expression {
|
|
|
|
_ => unimplemented!(),
|
|
|
|
};
|
|
|
|
|
|
|
|
let (should_be_formatted_like_the_line_above_using_100_characters, x0) = match some_expression {
|
|
|
|
_ => unimplemented!(),
|
|
|
|
};
|
|
|
|
|
|
|
|
let (should_put_the_brace_on_the_next_line_using_101_characters, x0000) = match some_expression
|
|
|
|
{
|
|
|
|
_ => unimplemented!(),
|
|
|
|
};
|
|
|
|
match m {
|
2017-11-16 01:42:11 -06:00
|
|
|
Variant::Tag
|
|
|
|
| Variant::Tag2
|
|
|
|
| Variant::Tag3
|
|
|
|
| Variant::Tag4
|
|
|
|
| Variant::Tag5
|
|
|
|
| Variant::Tag6 => {}
|
2017-07-31 02:24:18 -05:00
|
|
|
}
|
|
|
|
}
|
2017-08-05 01:24:20 -05:00
|
|
|
|
|
|
|
fn match_with_trailing_spaces() {
|
|
|
|
match x {
|
|
|
|
#![allow(simple_match)]
|
|
|
|
Some(..) => 0,
|
|
|
|
None => 1,
|
|
|
|
}
|
|
|
|
}
|
2017-10-30 09:31:08 -05:00
|
|
|
|
|
|
|
fn issue_2099() {
|
|
|
|
let a = match x {};
|
|
|
|
let b = match x {};
|
|
|
|
|
|
|
|
match x {}
|
|
|
|
}
|
2017-11-11 08:14:01 -06:00
|
|
|
|
|
|
|
// #2021
|
|
|
|
impl<'tcx> Const<'tcx> {
|
|
|
|
pub fn from_constval<'a>() -> Const<'tcx> {
|
|
|
|
let val = match *cv {
|
|
|
|
ConstVal::Variant(_) | ConstVal::Aggregate(..) | ConstVal::Unevaluated(..) => bug!(
|
|
|
|
"MIR must not use `{:?}` (aggregates are expanded to MIR rvalues)",
|
|
|
|
cv
|
|
|
|
),
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
2017-11-14 19:36:42 -06:00
|
|
|
|
2017-11-14 19:44:51 -06:00
|
|
|
// #2151
|
|
|
|
fn issue_2151() {
|
|
|
|
match either {
|
|
|
|
x => {}
|
|
|
|
y => (),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-11-14 19:36:42 -06:00
|
|
|
// #2152
|
|
|
|
fn issue_2152() {
|
|
|
|
match m {
|
|
|
|
"aaaaaaaaaaaaa" | "bbbbbbbbbbbbb" | "cccccccccccccccccccccccccccccccccccccccccccc"
|
|
|
|
if true => {}
|
|
|
|
"bind" | "writev" | "readv" | "sendmsg" | "recvmsg" if android && (aarch64 || x86_64) => {
|
|
|
|
true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-02-17 19:31:11 -06:00
|
|
|
|
2018-03-21 08:20:03 -05:00
|
|
|
// #2376
|
|
|
|
// Preserve block around expressions with condition.
|
|
|
|
fn issue_2376() {
|
|
|
|
let mut x = None;
|
|
|
|
match x {
|
|
|
|
Some(0) => {
|
|
|
|
for i in 1..11 {
|
|
|
|
x = Some(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Some(ref mut y) => {
|
|
|
|
while *y < 10 {
|
|
|
|
*y += 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
None => {
|
|
|
|
while let None = x {
|
|
|
|
x = Some(10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-04-14 04:21:54 -05:00
|
|
|
|
|
|
|
// #2621
|
|
|
|
// Strip leading `|` in match arm patterns
|
|
|
|
fn issue_2621() {
|
|
|
|
let x = Foo::A;
|
|
|
|
match x {
|
|
|
|
Foo::A => println!("No vert single condition"),
|
|
|
|
Foo::B | Foo::C => println!("Center vert two conditions"),
|
|
|
|
Foo::D => println!("Preceding vert single condition"),
|
|
|
|
Foo::E | Foo::F => println!("Preceding vert over two lines"),
|
|
|
|
Foo::G | Foo::H => println!("Trailing vert over two lines"),
|
|
|
|
// Comment on its own line
|
|
|
|
Foo::I => println!("With comment"), // Comment after line
|
|
|
|
}
|
|
|
|
}
|
2018-06-24 19:16:17 -05:00
|
|
|
|
|
|
|
fn issue_2377() {
|
|
|
|
match tok {
|
|
|
|
Tok::Not
|
|
|
|
| Tok::BNot
|
|
|
|
| Tok::Plus
|
|
|
|
| Tok::Minus
|
|
|
|
| Tok::PlusPlus
|
|
|
|
| Tok::MinusMinus
|
|
|
|
| Tok::Void
|
|
|
|
| Tok::Delete
|
|
|
|
if prec <= 16 =>
|
|
|
|
{
|
|
|
|
// code here...
|
|
|
|
}
|
|
|
|
Tok::TypeOf if prec <= 16 => {}
|
|
|
|
}
|
|
|
|
}
|
2018-09-20 10:57:46 -05:00
|
|
|
|
|
|
|
// #3040
|
|
|
|
fn issue_3040() {
|
|
|
|
{
|
|
|
|
match foo {
|
|
|
|
DevtoolScriptControlMsg::WantsLiveNotifications(id, to_send) => {
|
|
|
|
match documents.find_window(id) {
|
|
|
|
Some(window) => {
|
|
|
|
devtools::handle_wants_live_notifications(window.upcast(), to_send)
|
|
|
|
}
|
|
|
|
None => return warn!("Message sent to closed pipeline {}.", id),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-09-30 10:06:37 -05:00
|
|
|
|
|
|
|
// #3030
|
|
|
|
fn issue_3030() {
|
|
|
|
match input.trim().parse::<f64>() {
|
|
|
|
Ok(val)
|
|
|
|
if !(
|
|
|
|
// A valid number is the same as what rust considers to be valid,
|
|
|
|
// except for +1., NaN, and Infinity.
|
|
|
|
val.is_infinite() || val.is_nan() || input.ends_with(".") || input.starts_with("+")
|
|
|
|
) => {}
|
|
|
|
}
|
|
|
|
}
|
2018-10-14 20:09:31 -05:00
|
|
|
|
|
|
|
fn issue_3005() {
|
|
|
|
match *token {
|
|
|
|
Token::Dimension {
|
|
|
|
value, ref unit, ..
|
|
|
|
} if num_context.is_ok(context.parsing_mode, value) => {
|
|
|
|
return NoCalcLength::parse_dimension(context, value, unit)
|
|
|
|
.map(LengthOrPercentage::Length)
|
2018-11-29 13:39:07 -06:00
|
|
|
.map_err(|()| location.new_unexpected_token_error(token.clone()));
|
2018-10-14 20:09:31 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-09-04 21:15:46 -05:00
|
|
|
|
|
|
|
// #3774
|
|
|
|
fn issue_3774() {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
{
|
|
|
|
match foo {
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => unreachab(),
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => unreacha!(),
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => {
|
|
|
|
unreachabl()
|
|
|
|
}
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => {
|
|
|
|
unreachae!()
|
|
|
|
}
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => {
|
|
|
|
unreachable()
|
|
|
|
}
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => {
|
|
|
|
unreachable!()
|
|
|
|
}
|
|
|
|
Lam(_, _, _) | Pi(_, _, _) | Let(_, _, _, _) | Embed(_) | Var(_) => {
|
|
|
|
rrunreachable!()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|