@@ -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 | |
|