Introduce opaque type to hidden type projection
This commit is contained in:
parent
116819f54f
commit
84a444a1f4
23 changed files with 97 additions and 6 deletions
|
@ -1397,6 +1397,7 @@ impl<V, T> ProjectionElem<V, T> {
|
|||
|
||||
Self::Field(_, _)
|
||||
| Self::Index(_)
|
||||
| Self::OpaqueCast(_)
|
||||
| Self::ConstantIndex { .. }
|
||||
| Self::Subslice { .. }
|
||||
| Self::Downcast(_, _) => false,
|
||||
|
@ -1574,7 +1575,9 @@ impl Debug for Place<'_> {
|
|||
fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
for elem in self.projection.iter().rev() {
|
||||
match elem {
|
||||
ProjectionElem::Downcast(_, _) | ProjectionElem::Field(_, _) => {
|
||||
ProjectionElem::OpaqueCast(_)
|
||||
| ProjectionElem::Downcast(_, _)
|
||||
| ProjectionElem::Field(_, _) => {
|
||||
write!(fmt, "(").unwrap();
|
||||
}
|
||||
ProjectionElem::Deref => {
|
||||
|
@ -1590,6 +1593,9 @@ impl Debug for Place<'_> {
|
|||
|
||||
for elem in self.projection.iter() {
|
||||
match elem {
|
||||
ProjectionElem::OpaqueCast(ty) => {
|
||||
write!(fmt, " as {})", ty)?;
|
||||
}
|
||||
ProjectionElem::Downcast(Some(name), _index) => {
|
||||
write!(fmt, " as {})", name)?;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue