diff options
Diffstat (limited to 'src/test/ui/regions/regions-close-over-type-parameter-successfully.rs')
-rw-r--r-- | src/test/ui/regions/regions-close-over-type-parameter-successfully.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/regions/regions-close-over-type-parameter-successfully.rs b/src/test/ui/regions/regions-close-over-type-parameter-successfully.rs new file mode 100644 index 000000000..48aad9481 --- /dev/null +++ b/src/test/ui/regions/regions-close-over-type-parameter-successfully.rs @@ -0,0 +1,21 @@ +// run-pass +// A test where we (successfully) close over a reference into +// an object. + +trait SomeTrait { fn get(&self) -> isize; } + +impl<'a> SomeTrait for &'a isize { + fn get(&self) -> isize { + **self + } +} + +fn make_object<'a,A:SomeTrait+'a>(v: A) -> Box<dyn SomeTrait+'a> { + Box::new(v) as Box<dyn SomeTrait+'a> +} + +fn main() { + let i: isize = 22; + let obj = make_object(&i); + assert_eq!(22, obj.get()); +} |