@@ -1752,30 +1752,9 @@ impl<'tcx> ParamEnv<'tcx> {
1752
1752
Self :: new ( List :: empty ( ) , self . reveal ( ) )
1753
1753
}
1754
1754
1755
- /// Creates a suitable environment in which to perform trait
1756
- /// queries on the given value. When type-checking, this is simply
1757
- /// the pair of the environment plus value. But when reveal is set to
1758
- /// All, then if `value` does not reference any type parameters, we will
1759
- /// pair it with the empty environment. This improves caching and is generally
1760
- /// invisible.
1761
- ///
1762
- /// N.B., we preserve the environment when type-checking because it
1763
- /// is possible for the user to have wacky where-clauses like
1764
- /// `where Box<u32>: Copy`, which are clearly never
1765
- /// satisfiable. We generally want to behave as if they were true,
1766
- /// although the surrounding function is never reachable.
1755
+ /// Creates a pair of param-env and value for use in queries.
1767
1756
pub fn and < T : TypeVisitable < TyCtxt < ' tcx > > > ( self , value : T ) -> ParamEnvAnd < ' tcx , T > {
1768
- match self . reveal ( ) {
1769
- Reveal :: UserFacing => ParamEnvAnd { param_env : self , value } ,
1770
-
1771
- Reveal :: All => {
1772
- if value. is_global ( ) {
1773
- ParamEnvAnd { param_env : self . without_caller_bounds ( ) , value }
1774
- } else {
1775
- ParamEnvAnd { param_env : self , value }
1776
- }
1777
- }
1778
- }
1757
+ ParamEnvAnd { param_env : self , value }
1779
1758
}
1780
1759
}
1781
1760
0 commit comments