about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2025-02-06 10:06:07 +0100
committerRalf Jung <post@ralfj.de>2025-02-06 11:36:58 +0100
commit5934e0afeff267d58a6449f10a263f9f1ad8f847 (patch)
treed5879483313f02b93544e41084fca946c6ad7e79 /compiler/rustc_mir_transform/src
parent820bfffc25fee9866aa8176529091e04b8824f09 (diff)
downloadrust-5934e0afeff267d58a6449f10a263f9f1ad8f847.tar.gz
rust-5934e0afeff267d58a6449f10a263f9f1ad8f847.zip
MIR validation: add comment explaining the limitations of CfgChecker
Diffstat (limited to 'compiler/rustc_mir_transform/src')
-rw-r--r--compiler/rustc_mir_transform/src/validate.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/src/validate.rs b/compiler/rustc_mir_transform/src/validate.rs
index b7a3770fc6b..4ac3a268c9c 100644
--- a/compiler/rustc_mir_transform/src/validate.rs
+++ b/compiler/rustc_mir_transform/src/validate.rs
@@ -97,6 +97,12 @@ impl<'tcx> crate::MirPass<'tcx> for Validator {
     }
 }
 
+/// This checker covers basic properties of the control-flow graph, (dis)allowed statements and terminators.
+/// Everything checked here must be stable under substitution of generic parameters. In other words,
+/// this is about the *structure* of the MIR, not the *contents*.
+///
+/// Everything that depends on types, or otherwise can be affected by generic parameters,
+/// must be checked in `TypeChecker`.
 struct CfgChecker<'a, 'tcx> {
     when: &'a str,
     body: &'a Body<'tcx>,