| // run-pass | |
| #![allow(non_camel_case_types)] | |
| use std::cell::Cell; | |
| #[derive(Copy, Clone)] | |
| enum newtype { | |
| newvar(isize) | |
| } | |
| pub fn main() { | |
| // Test that borrowck treats enums with a single variant | |
| // specially. | |
| let x = &Cell::new(5); | |
| let y = &Cell::new(newtype::newvar(3)); | |
| let z = match y.get() { | |
| newtype::newvar(b) => { | |
| x.set(x.get() + 1); | |
| x.get() * b | |
| } | |
| }; | |
| assert_eq!(z, 18); | |
| } |