From 10b8941bce6d678fafe437bacaf25499d8c6ecf9 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 21 Aug 2015 11:44:20 -0400 Subject: [PATCH] fix accidental reversal of 'static, and add a test --- src/librustc/middle/free_region.rs | 2 +- ...on-outlives-static-outlives-free-region.rs | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/test/run-pass/regions-free-region-outlives-static-outlives-free-region.rs diff --git a/src/librustc/middle/free_region.rs b/src/librustc/middle/free_region.rs index 787303231b0..98c3c390d33 100644 --- a/src/librustc/middle/free_region.rs +++ b/src/librustc/middle/free_region.rs @@ -93,7 +93,7 @@ pub fn sub_free_region(&self, sub: FreeRegion, sup: FreeRegion) -> bool { let result = sub == sup || { let sub = ty::ReFree(sub); let sup = ty::ReFree(sup); - self.relation.contains(&sub, &sup) || self.relation.contains(&sup, &ty::ReStatic) + self.relation.contains(&sub, &sup) || self.relation.contains(&ty::ReStatic, &sup) }; debug!("sub_free_region(sub={:?}, sup={:?}) = {:?}", sub, sup, result); result diff --git a/src/test/run-pass/regions-free-region-outlives-static-outlives-free-region.rs b/src/test/run-pass/regions-free-region-outlives-static-outlives-free-region.rs new file mode 100644 index 00000000000..09c8d1f23a2 --- /dev/null +++ b/src/test/run-pass/regions-free-region-outlives-static-outlives-free-region.rs @@ -0,0 +1,25 @@ +// Copyright 2012 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Test that we recognize that if you have +// +// 'a : 'static +// +// then +// +// 'a : 'b + +fn test<'a,'b>(x: &'a i32) -> &'b i32 + where 'a: 'static +{ + x +} + +fn main() { } -- GitLab