diff options
| author | Michael Goulet <michael@errs.io> | 2023-03-29 23:28:27 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-03-29 23:28:44 +0000 |
| commit | 1ce6e2bd339d0ea4d292d3afde482050c1f34497 (patch) | |
| tree | 59cb94ebcd24956e816e3b3934a5ab661061636a /compiler/rustc_middle/src | |
| parent | 17c11672167827b0dd92c88ef69f24346d1286dd (diff) | |
Don't ICE on placeholder consts in deep reject
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/ty/fast_reject.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/ty/fast_reject.rs b/compiler/rustc_middle/src/ty/fast_reject.rs index 0a6e94248e6..61cde923e9a 100644 --- a/compiler/rustc_middle/src/ty/fast_reject.rs +++ b/compiler/rustc_middle/src/ty/fast_reject.rs @@ -312,6 +312,7 @@ impl DeepRejectCtxt { // Impls cannot contain these types as these cannot be named directly. ty::FnDef(..) | ty::Closure(..) | ty::Generator(..) => false, + // Placeholder types don't unify with anything on their own ty::Placeholder(..) | ty::Bound(..) => false, // Depending on the value of `treat_obligation_params`, we either @@ -359,6 +360,9 @@ impl DeepRejectCtxt { TreatParams::AsCandidateKey => true, }, + // Placeholder consts don't unify with anything on their own + ty::ConstKind::Placeholder(_) => false, + // As we don't necessarily eagerly evaluate constants, // they might unify with any value. ty::ConstKind::Expr(_) | ty::ConstKind::Unevaluated(_) | ty::ConstKind::Error(_) => { @@ -371,7 +375,7 @@ impl DeepRejectCtxt { ty::ConstKind::Infer(_) => true, - ty::ConstKind::Bound(..) | ty::ConstKind::Placeholder(_) => { + ty::ConstKind::Bound(..) => { bug!("unexpected obl const: {:?}", obligation_ct) } } |
