about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/ty/flags.rs
diff options
context:
space:
mode:
authorLukas Markeffsky <@>2024-03-24 22:49:31 +0100
committerLukas Markeffsky <@>2024-04-04 18:33:38 +0200
commitfcc477fbd0871d8fab045bd7e9524172ab10e51c (patch)
tree93228137d55cb47036e4fa42f6088bb9844ed88f /compiler/rustc_middle/src/ty/flags.rs
parent4c6c6298664fff9f3549f05ba2b689bcd30b0fc7 (diff)
downloadrust-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.rs9
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;
     }