about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMark Simulacrum <mark.simulacrum@gmail.com>2017-05-27 20:54:00 -0600
committerGitHub <noreply@github.com>2017-05-27 20:54:00 -0600
commitf35ec6153b77e72cf3f49d7cf2e06ef58e23e8c1 (patch)
treeb22a5d6272b4cee41ec1ef5f80a2576023f20977 /src/test
parent5d2512ec5b03a1155054df881e40e35fc87d6351 (diff)
parenta563f350b0122da51a507037956858639b2aa106 (diff)
downloadrust-f35ec6153b77e72cf3f49d7cf2e06ef58e23e8c1.tar.gz
rust-f35ec6153b77e72cf3f49d7cf2e06ef58e23e8c1.zip
Rollup merge of #42207 - Nashenas88:remove_fragment_info, r=eddyb
Remove all instances of fragment_infos and fragment sets

Remove unused fragment structs. This was suggested by @eddyb in IRC: [botbot link](https://botbot.me/mozilla/rustc/2017-05-23/?msg=86016574&page=2).
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/feature-gate-rustc-attrs.rs1
-rw-r--r--src/test/compile-fail/move-fragments-1.rs58
-rw-r--r--src/test/compile-fail/move-fragments-2.rs87
-rw-r--r--src/test/compile-fail/move-fragments-3.rs49
-rw-r--r--src/test/compile-fail/move-fragments-4.rs41
-rw-r--r--src/test/compile-fail/move-fragments-5.rs94
-rw-r--r--src/test/compile-fail/move-fragments-6.rs61
-rw-r--r--src/test/compile-fail/move-fragments-7.rs48
-rw-r--r--src/test/compile-fail/move-fragments-8.rs41
-rw-r--r--src/test/compile-fail/move-fragments-9.rs49
10 files changed, 0 insertions, 529 deletions
diff --git a/src/test/compile-fail/feature-gate-rustc-attrs.rs b/src/test/compile-fail/feature-gate-rustc-attrs.rs
index bb5b70829a1..8cfd3e020c6 100644
--- a/src/test/compile-fail/feature-gate-rustc-attrs.rs
+++ b/src/test/compile-fail/feature-gate-rustc-attrs.rs
@@ -14,7 +14,6 @@
 
 #[rustc_variance] //~ ERROR the `#[rustc_variance]` attribute is just used for rustc unit tests and will never be stable
 #[rustc_error] //~ ERROR the `#[rustc_error]` attribute is just used for rustc unit tests and will never be stable
-#[rustc_move_fragments] //~ ERROR the `#[rustc_move_fragments]` attribute is just used for rustc unit tests and will never be stable
 #[rustc_foo]
 //~^ ERROR unless otherwise specified, attributes with the prefix `rustc_` are reserved for internal compiler diagnostics
 
diff --git a/src/test/compile-fail/move-fragments-1.rs b/src/test/compile-fail/move-fragments-1.rs
deleted file mode 100644
index 0219f5b6bec..00000000000
--- a/src/test/compile-fail/move-fragments-1.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// These are all fairly trivial cases: unused variables or direct
-// drops of substructure.
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-#[rustc_move_fragments]
-pub fn test_noop() {
-}
-
-#[rustc_move_fragments]
-pub fn test_take(_x: D) {
-    //~^ ERROR                  assigned_leaf_path: `$(local _x)`
-}
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_take_struct(_p: Pair<D, D>) {
-    //~^ ERROR                  assigned_leaf_path: `$(local _p)`
-}
-
-#[rustc_move_fragments]
-pub fn test_drop_struct_part(p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).x`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    drop(p.x);
-}
-
-#[rustc_move_fragments]
-pub fn test_drop_tuple_part(p: (D, D)) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).#0`
-    //~| ERROR                    unmoved_fragment: `$(local p).#1`
-    drop(p.0);
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-2.rs b/src/test/compile-fail/move-fragments-2.rs
deleted file mode 100644
index 15c28ec2713..00000000000
--- a/src/test/compile-fail/move-fragments-2.rs
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2014-2015 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// These are checking that enums are tracked; note that their output
-// paths include "downcasts" of the path to a particular enum.
-
-#![feature(rustc_attrs)]
-
-use self::Lonely::{Zero, One, Two};
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub enum Lonely<X,Y> { Zero, One(X), Two(X, Y) }
-
-#[rustc_move_fragments]
-pub fn test_match_partial(p: Lonely<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Zero)`
-    match p {
-        Zero => {}
-        _ => {}
-    }
-}
-
-#[rustc_move_fragments]
-pub fn test_match_full(p: Lonely<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Zero)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::One)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Two)`
-    match p {
-        Zero => {}
-        One(..) => {}
-        Two(..) => {}
-    }
-}
-
-#[rustc_move_fragments]
-pub fn test_match_bind_one(p: Lonely<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Zero)`
-    //~| ERROR                 parent_of_fragments: `($(local p) as Lonely::One)`
-    //~| ERROR                     moved_leaf_path: `($(local p) as Lonely::One).#0`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Two)`
-    //~| ERROR                  assigned_leaf_path: `$(local data)`
-    match p {
-        Zero => {}
-        One(data) => {}
-        Two(..) => {}
-    }
-}
-
-#[rustc_move_fragments]
-pub fn test_match_bind_many(p: Lonely<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Zero)`
-    //~| ERROR                 parent_of_fragments: `($(local p) as Lonely::One)`
-    //~| ERROR                     moved_leaf_path: `($(local p) as Lonely::One).#0`
-    //~| ERROR                  assigned_leaf_path: `$(local data)`
-    //~| ERROR                 parent_of_fragments: `($(local p) as Lonely::Two)`
-    //~| ERROR                     moved_leaf_path: `($(local p) as Lonely::Two).#0`
-    //~| ERROR                     moved_leaf_path: `($(local p) as Lonely::Two).#1`
-    //~| ERROR                  assigned_leaf_path: `$(local left)`
-    //~| ERROR                  assigned_leaf_path: `$(local right)`
-    match p {
-        Zero => {}
-        One(data) => {}
-        Two(left, right) => {}
-    }
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-3.rs b/src/test/compile-fail/move-fragments-3.rs
deleted file mode 100644
index a1152333900..00000000000
--- a/src/test/compile-fail/move-fragments-3.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2014-2015 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// This checks the handling of `_` within variants, especially when mixed
-// with bindings.
-
-#![feature(rustc_attrs)]
-
-use self::Lonely::{Zero, One, Two};
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub enum Lonely<X,Y> { Zero, One(X), Two(X, Y) }
-
-#[rustc_move_fragments]
-pub fn test_match_bind_and_underscore(p: Lonely<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::Zero)`
-    //~| ERROR                  assigned_leaf_path: `($(local p) as Lonely::One)`
-    //~| ERROR                 parent_of_fragments: `($(local p) as Lonely::Two)`
-    //~| ERROR                     moved_leaf_path: `($(local p) as Lonely::Two).#0`
-    //~| ERROR                    unmoved_fragment: `($(local p) as Lonely::Two).#1`
-    //~| ERROR                  assigned_leaf_path: `$(local left)`
-
-    match p {
-        Zero => {}
-
-        One(_) => {}       // <-- does not fragment `($(local p) as One)` ...
-
-        Two(left, _) => {} // <-- ... *does* fragment `($(local p) as Two)`.
-    }
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-4.rs b/src/test/compile-fail/move-fragments-4.rs
deleted file mode 100644
index 191e23a2863..00000000000
--- a/src/test/compile-fail/move-fragments-4.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// This checks that a move of deep structure is properly tracked. (An
-// early draft of the code did not properly traverse up through all of
-// the parents of the leaf fragment.)
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_move_substructure(pppp: Pair<Pair<Pair<Pair<D,D>, D>, D>, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local pppp)`
-    //~| ERROR                 parent_of_fragments: `$(local pppp).x`
-    //~| ERROR                 parent_of_fragments: `$(local pppp).x.x`
-    //~| ERROR                    unmoved_fragment: `$(local pppp).x.x.x`
-    //~| ERROR                     moved_leaf_path: `$(local pppp).x.x.y`
-    //~| ERROR                    unmoved_fragment: `$(local pppp).x.y`
-    //~| ERROR                    unmoved_fragment: `$(local pppp).y`
-    drop(pppp.x.x.y);
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-5.rs b/src/test/compile-fail/move-fragments-5.rs
deleted file mode 100644
index 38a385eacac..00000000000
--- a/src/test/compile-fail/move-fragments-5.rs
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// This is the first test that checks moving into local variables.
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_move_field_to_local(p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).x`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local _x)`
-    let _x = p.x;
-}
-
-#[rustc_move_fragments]
-pub fn test_move_field_to_local_to_local(p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).x`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local _x)`
-    //~| ERROR                     moved_leaf_path: `$(local _x)`
-    //~| ERROR                  assigned_leaf_path: `$(local _y)`
-    let _x = p.x;
-    let _y = _x;
-}
-
-// In the following fn's `test_move_field_to_local_delayed` and
-// `test_uninitialized_local` , the instrumentation reports that `_x`
-// is moved. This is unlike `test_move_field_to_local`, where `_x` is
-// just reported as an assigned_leaf_path. Presumably because this is
-// how we represent that it did not have an initializing expression at
-// the binding site.
-
-#[rustc_move_fragments]
-pub fn test_uninitialized_local(_p: Pair<D, D>) {
-    //~^ ERROR                  assigned_leaf_path: `$(local _p)`
-    //~| ERROR                     moved_leaf_path: `$(local _x)`
-    let _x: D;
-}
-
-#[rustc_move_fragments]
-pub fn test_move_field_to_local_delayed(p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).x`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local _x)`
-    //~| ERROR                     moved_leaf_path: `$(local _x)`
-    let _x;
-    _x = p.x;
-}
-
-#[rustc_move_fragments]
-pub fn test_move_field_mut_to_local(mut p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut p)`
-    //~| ERROR                     moved_leaf_path: `$(local mut p).x`
-    //~| ERROR                    unmoved_fragment: `$(local mut p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local _x)`
-    let _x = p.x;
-}
-
-#[rustc_move_fragments]
-pub fn test_move_field_to_local_to_local_mut(p: Pair<D, D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                     moved_leaf_path: `$(local p).x`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local mut _x)`
-    //~| ERROR                     moved_leaf_path: `$(local mut _x)`
-    //~| ERROR                  assigned_leaf_path: `$(local _y)`
-    let mut _x = p.x;
-    let _y = _x;
-}
-
-pub fn main() {}
diff --git a/src/test/compile-fail/move-fragments-6.rs b/src/test/compile-fail/move-fragments-6.rs
deleted file mode 100644
index 122727c3f6b..00000000000
--- a/src/test/compile-fail/move-fragments-6.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// Test that moving into a field (i.e. overwriting it) fragments the
-// receiver.
-
-#![feature(rustc_attrs)]
-
-use std::mem::drop;
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_overwrite_uninit_field<Z>(z: Z) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut p)`
-    //~| ERROR                  assigned_leaf_path: `$(local z)`
-    //~| ERROR                     moved_leaf_path: `$(local z)`
-    //~| ERROR                  assigned_leaf_path: `$(local mut p).x`
-    //~| ERROR                    unmoved_fragment: `$(local mut p).y`
-
-    let mut p: Pair<Z,Z>;
-    p.x = z;
-}
-
-#[rustc_move_fragments]
-pub fn test_overwrite_moved_field<Z>(mut p: Pair<Z,Z>, z: Z) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut p)`
-    //~| ERROR                  assigned_leaf_path: `$(local z)`
-    //~| ERROR                     moved_leaf_path: `$(local z)`
-    //~| ERROR                  assigned_leaf_path: `$(local mut p).y`
-    //~| ERROR                    unmoved_fragment: `$(local mut p).x`
-
-    drop(p);
-    p.y = z;
-}
-
-#[rustc_move_fragments]
-pub fn test_overwrite_same_field<Z>(mut p: Pair<Z,Z>) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut p)`
-    //~| ERROR                     moved_leaf_path: `$(local mut p).x`
-    //~| ERROR                  assigned_leaf_path: `$(local mut p).x`
-    //~| ERROR                    unmoved_fragment: `$(local mut p).y`
-
-    p.x = p.x;
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-7.rs b/src/test/compile-fail/move-fragments-7.rs
deleted file mode 100644
index a2a37208cd6..00000000000
--- a/src/test/compile-fail/move-fragments-7.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// Test that moving a Box<T> fragments its containing structure, for
-// both moving out of the structure (i.e. reading `*p.x`) and writing
-// into the container (i.e. writing `*p.x`).
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_deref_box_field(p: Pair<Box<D>, Box<D>>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                 parent_of_fragments: `$(local p).x`
-    //~| ERROR                     moved_leaf_path: `$(local p).x.*`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    //~| ERROR                  assigned_leaf_path: `$(local i)`
-    let i : D = *p.x;
-}
-
-#[rustc_move_fragments]
-pub fn test_overwrite_deref_box_field(mut p: Pair<Box<D>, Box<D>>) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut p)`
-    //~| ERROR                 parent_of_fragments: `$(local mut p).x`
-    //~| ERROR                  assigned_leaf_path: `$(local mut p).x.*`
-    //~| ERROR                    unmoved_fragment: `$(local mut p).y`
-    *p.x = D { d: 3 };
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-8.rs b/src/test/compile-fail/move-fragments-8.rs
deleted file mode 100644
index e57268dbfa3..00000000000
--- a/src/test/compile-fail/move-fragments-8.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2014 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.
-
-// Test that we correctly compute the move fragments for a fn.
-//
-// Note that the code below is not actually incorrect; the
-// `rustc_move_fragments` attribute is a hack that uses the error
-// reporting mechanisms as a channel for communicating from the
-// internals of the compiler.
-
-// Test that assigning into a `&T` within structured container does
-// *not* fragment its containing structure.
-//
-// Compare against the `Box<T>` handling in move-fragments-7.rs. Note
-// also that in this case we cannot do a move out of `&T`, so we only
-// test writing `*p.x` here.
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-pub struct Pair<X,Y> { x: X, y: Y }
-
-#[rustc_move_fragments]
-pub fn test_overwrite_deref_ampersand_field<'a>(p: Pair<&'a mut D, &'a D>) {
-    //~^ ERROR                 parent_of_fragments: `$(local p)`
-    //~| ERROR                 parent_of_fragments: `$(local p).x`
-    //~| ERROR                  assigned_leaf_path: `$(local p).x.*`
-    //~| ERROR                    unmoved_fragment: `$(local p).y`
-    *p.x = D { d: 3 };
-}
-
-pub fn main() { }
diff --git a/src/test/compile-fail/move-fragments-9.rs b/src/test/compile-fail/move-fragments-9.rs
deleted file mode 100644
index 350f4169034..00000000000
--- a/src/test/compile-fail/move-fragments-9.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2014 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.
-
-// Test moving array structures, e.g. `[T; 3]` as well as moving
-// elements in and out of such arrays.
-//
-// Note also that the `test_move_array_then_overwrite` tests represent
-// cases that we probably should make illegal.
-
-#![feature(rustc_attrs)]
-
-pub struct D { d: isize }
-impl Drop for D { fn drop(&mut self) { } }
-
-#[rustc_move_fragments]
-pub fn test_move_array_via_return(a: [D; 3]) -> [D; 3] {
-    //~^ ERROR                  assigned_leaf_path: `$(local a)`
-    //~| ERROR                     moved_leaf_path: `$(local a)`
-    return a;
-}
-
-#[rustc_move_fragments]
-pub fn test_move_array_into_recv(a: [D; 3], recv: &mut [D; 3]) {
-    //~^ ERROR                 parent_of_fragments: `$(local recv)`
-    //~| ERROR                  assigned_leaf_path: `$(local a)`
-    //~| ERROR                     moved_leaf_path: `$(local a)`
-    //~| ERROR                  assigned_leaf_path: `$(local recv).*`
-    *recv = a;
-}
-
-#[rustc_move_fragments]
-pub fn test_overwrite_array_elem(mut a: [D; 3], i: usize, d: D) {
-    //~^ ERROR                 parent_of_fragments: `$(local mut a)`
-    //~| ERROR                  assigned_leaf_path: `$(local i)`
-    //~| ERROR                  assigned_leaf_path: `$(local d)`
-    //~| ERROR                     moved_leaf_path: `$(local d)`
-    //~| ERROR                  assigned_leaf_path: `$(local mut a).[]`
-    //~| ERROR                    unmoved_fragment: `$(allbutone $(local mut a).[])`
-    a[i] = d;
-}
-
-pub fn main() { }