rust/src/test/run-pass/binding
Mazdak Farrokhzad c4b8735872
Rollup merge of #56044 - matthewjasper:function-param-drop-order, r=cramertj
Drop partially bound function parameters in the expected order

Given the function

```rust
fn foo((_x, _): (LogDrop, LogDrop), (_, _y): (LogDrop, LogDrop)) {}
```

Prior to 1.12.0 we dropped both `_x` and `_y` before the rest of their
respective parameters, since then we dropped `_x` and `_y` after. The
original order appears to be the correct order, as the value created
later is dropped first, so we revert to that order and add a test for
it.

While this is technically a breaking change, I can't work out how
anyone could be relying on this without making their code very
brittle. If this is considered to be too likely to break real world code
then I can revert the change and change the test to check for the
current order.
2019-01-15 12:42:04 +01:00
..
bind-field-short-with-modifiers.rs Remove licenses 2018-12-25 21:08:33 -07:00
borrowed-ptr-pattern-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
borrowed-ptr-pattern-3.rs Remove licenses 2018-12-25 21:08:33 -07:00
borrowed-ptr-pattern-infallible.rs Remove licenses 2018-12-25 21:08:33 -07:00
borrowed-ptr-pattern-option.rs Remove licenses 2018-12-25 21:08:33 -07:00
borrowed-ptr-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
empty-types-in-patterns.rs Remove licenses 2018-12-25 21:08:33 -07:00
exhaustive-bool-match-sanity.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-generic-unique1.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-generic-unique2.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-generic.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-panic-all.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-panic.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match-unique.rs Remove licenses 2018-12-25 21:08:33 -07:00
expr-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
fat-arrow-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
fn-arg-incomplete-pattern-drop-order.rs Drop function parameters in expected order 2018-11-30 19:43:41 +00:00
fn-pattern-expected-type-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
fn-pattern-expected-type.rs Remove licenses 2018-12-25 21:08:33 -07:00
func-arg-incomplete-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
func-arg-ref-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
func-arg-wild-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
if-let.rs Remove licenses 2018-12-25 21:08:33 -07:00
inconsistent-lifetime-mismatch.rs Remove licenses 2018-12-25 21:08:33 -07:00
inferred-suffix-in-pattern-range.rs Remove licenses 2018-12-25 21:08:33 -07:00
irrefutable-slice-patterns.rs Remove licenses 2018-12-25 21:08:33 -07:00
let-assignability.rs Remove licenses 2018-12-25 21:08:33 -07:00
let-destruct-ref.rs Remove licenses 2018-12-25 21:08:33 -07:00
let-var-hygiene.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-arm-statics.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-beginning-vert.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-borrowed_str.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-bot-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-bot.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-byte-array-patterns.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-enum-struct-0.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-enum-struct-1.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-implicit-copy-unique.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-in-macro.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-join.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-larger-const.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-naked-record-expr.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-naked-record.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-path.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-pattern-bindings.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-pattern-lit.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-pattern-no-type-params.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-pattern-simple.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-phi.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-pipe-binding.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-range-infer.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-range-static.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-range.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-reassign.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-ref-binding-in-guard-3256.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-ref-binding-mut-option.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-ref-binding-mut.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-ref-binding.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-ref-unsized.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-str.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-struct-0.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-tag.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-unique-bind.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-unsized.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-value-binding-in-guard-3291.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-var-hygiene.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-vec-alternatives.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-vec-rvalue.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-with-ret-arm.rs Remove licenses 2018-12-25 21:08:33 -07:00
multi-let.rs Remove licenses 2018-12-25 21:08:33 -07:00
mut-in-ident-patterns.rs Remove licenses 2018-12-25 21:08:33 -07:00
nested-exhaustive-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
nested-matchs.rs Remove licenses 2018-12-25 21:08:33 -07:00
nested-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
nil-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
nullary-or-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
optional_comma_in_match_arm.rs Remove licenses 2018-12-25 21:08:33 -07:00
or-pattern.rs Remove licenses 2018-12-25 21:08:33 -07:00
order-drop-with-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-ranges.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-1.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-3.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-4.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-5.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-6.rs Remove licenses 2018-12-25 21:08:33 -07:00
pat-tuple-7.rs Remove licenses 2018-12-25 21:08:33 -07:00
pattern-bound-var-in-for-each.rs Remove licenses 2018-12-25 21:08:33 -07:00
pattern-in-closure.rs Remove licenses 2018-12-25 21:08:33 -07:00
range-inclusive-pattern-precedence.rs Remove licenses 2018-12-25 21:08:33 -07:00
simple-generic-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
use-uninit-match.rs Remove licenses 2018-12-25 21:08:33 -07:00
use-uninit-match2.rs Remove licenses 2018-12-25 21:08:33 -07:00
zero_sized_subslice_match.rs Remove licenses 2018-12-25 21:08:33 -07:00