diff options
| author | Lukas Markeffsky <@> | 2024-03-24 22:49:31 +0100 |
|---|---|---|
| committer | Lukas Markeffsky <@> | 2024-04-04 18:33:38 +0200 |
| commit | fcc477fbd0871d8fab045bd7e9524172ab10e51c (patch) | |
| tree | 93228137d55cb47036e4fa42f6088bb9844ed88f /compiler/rustc_middle/src/ty/flags.rs | |
| parent | 4c6c6298664fff9f3549f05ba2b689bcd30b0fc7 (diff) | |
| download | rust-fcc477fbd0871d8fab045bd7e9524172ab10e51c.tar.gz rust-fcc477fbd0871d8fab045bd7e9524172ab10e51c.zip | |
cache type info for ParamEnv
Diffstat (limited to 'compiler/rustc_middle/src/ty/flags.rs')
| -rw-r--r-- | compiler/rustc_middle/src/ty/flags.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/ty/flags.rs b/compiler/rustc_middle/src/ty/flags.rs index ca9c762611e..5feb6ef76d5 100644 --- a/compiler/rustc_middle/src/ty/flags.rs +++ b/compiler/rustc_middle/src/ty/flags.rs @@ -35,6 +35,15 @@ impl FlagComputation { result } + pub fn for_clauses(clauses: &[ty::Clause<'_>]) -> FlagComputation { + let mut result = FlagComputation::new(); + for c in clauses { + result.add_flags(c.as_predicate().flags()); + result.add_exclusive_binder(c.as_predicate().outer_exclusive_binder()); + } + result + } + fn add_flags(&mut self, flags: TypeFlags) { self.flags = self.flags | flags; } |
