// run-pass #![allow(dead_code)] #![allow(non_snake_case)] #![allow(non_camel_case_types)] use std::cell::RefCell; static S: &'static str = "str"; struct list<T> { element: T, next: Option<Box<RefCell<list<T>>>> } impl<T:'static> list<T> { pub fn addEnd(&mut self, element: T) { let newList = list { element: element, next: None }; self.next = Some(Box::new(RefCell::new(newList))); } } pub fn main() { let ls = list { element: S, next: None }; println!("{}", ls.element); }