detect External indices more generally in internalize_constant (#2395)
This commit is contained in:
@@ -1017,6 +1017,13 @@ fn generate_instruction_preface() -> TokenStream {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_external(&self) -> bool {
|
||||
matches!(
|
||||
self,
|
||||
IndexingCodePtr::External(_) | IndexingCodePtr::DynamicExternal(_)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl IndexingInstruction {
|
||||
|
||||
@@ -114,13 +114,13 @@ impl<'a> IndexingCodeMergingPtr<'a> {
|
||||
Some(OptArgIndexKey::Literal(_, _, constant, _)) => {
|
||||
constants.insert(*constant, constant_ptr);
|
||||
}
|
||||
_ if constant_ptr.is_external() => {
|
||||
// this must be a defunct clause, because it's been deleted
|
||||
// from the skeleton.
|
||||
debug_assert!(constant_key.is_none());
|
||||
}
|
||||
_ => {
|
||||
if let IndexingCodePtr::DynamicExternal(_) = constant_ptr {
|
||||
// this must be a defunct clause, because it's been deleted
|
||||
// from the skeleton.
|
||||
} else {
|
||||
unreachable!()
|
||||
}
|
||||
unreachable!()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user