File tree 1 file changed +40
-0
lines changed
1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ // xfail-test
12
+
13
+ struct Wrapper ( ~str ) ;
14
+
15
+ impl Wrapper {
16
+ pub fn new ( wrapped : ~str ) -> Wrapper {
17
+ Wrapper ( wrapped)
18
+ }
19
+
20
+ pub fn say_hi ( & self ) {
21
+ println ( fmt ! ( "hello %s" , * * self ) ) ;
22
+ }
23
+ }
24
+
25
+ impl Drop for Wrapper {
26
+ fn drop ( & mut self ) { }
27
+ }
28
+
29
+ fn main ( ) {
30
+ {
31
+ // This runs without complaint.
32
+ let x = Wrapper :: new ( ~"Bob ") ;
33
+ x. say_hi ( ) ;
34
+ }
35
+ {
36
+ // This fails to compile, circa 0.8-89-gc635fba.
37
+ // error: internal compiler error: drop_ty_immediate: non-box ty
38
+ Wrapper :: new ( ~"Bob ") . say_hi ( ) ;
39
+ }
40
+ }
You can’t perform that action at this time.
0 commit comments