Skip to content

Commit

Permalink
Add tests for #16602
Browse files Browse the repository at this point in the history
Closes #16602
  • Loading branch information
lgrz committed Apr 11, 2015
1 parent c87ec1e commit 1175123
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/test/run-pass/issue-16602-1.rs
@@ -0,0 +1,15 @@
// Copyright 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.

fn main() {
let mut t = [1; 2];
t = [t[1] * 2, t[0] * 2];
assert_eq!(&t[..], &[2, 2]);
}
21 changes: 21 additions & 0 deletions src/test/run-pass/issue-16602-2.rs
@@ -0,0 +1,21 @@
// Copyright 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.

struct A {
pub x: u32,
pub y: u32,
}

fn main() {
let mut a = A { x: 1, y: 1 };
a = A { x: a.y * 2, y: a.x * 2 };
assert_eq!(a.x, 2);
assert_eq!(a.y, 2);
}
34 changes: 34 additions & 0 deletions src/test/run-pass/issue-16602-3.rs
@@ -0,0 +1,34 @@
// Copyright 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.

#[derive(Debug)]
enum Foo {
Bar(u32, u32),
Baz(&'static u32, &'static u32)
}

static NUM: u32 = 100;

fn main () {
let mut b = Foo::Baz(&NUM, &NUM);
b = Foo::Bar(f(&b), g(&b));
}

static FNUM: u32 = 1;

fn f (b: &Foo) -> u32 {
FNUM
}

static GNUM: u32 = 2;

fn g (b: &Foo) -> u32 {
GNUM
}

0 comments on commit 1175123

Please sign in to comment.