TypeVisitable
doesn't require Clone
.
`TypeFoldable` does, because it involves the production of new values. But `TypeVisitable` only involves the visiting of values.
This commit is contained in:
parent
e08cd3cf05
commit
17e4aec449
2 changed files with 2 additions and 2 deletions
|
@ -73,7 +73,7 @@ type Never = std::convert::Infallible;
|
||||||
/// which means in practice almost every foldable type needs to also be
|
/// which means in practice almost every foldable type needs to also be
|
||||||
/// visitable. (However, there are some types that are visitable without being
|
/// visitable. (However, there are some types that are visitable without being
|
||||||
/// foldable.)
|
/// foldable.)
|
||||||
pub trait TypeFoldable<I: Interner>: TypeVisitable<I> {
|
pub trait TypeFoldable<I: Interner>: TypeVisitable<I> + Clone {
|
||||||
/// The entry point for folding. To fold a value `t` with a folder `f`
|
/// The entry point for folding. To fold a value `t` with a folder `f`
|
||||||
/// call: `t.try_fold_with(f)`.
|
/// call: `t.try_fold_with(f)`.
|
||||||
///
|
///
|
||||||
|
|
|
@ -59,7 +59,7 @@ use crate::{self as ty, Interner, TypeFlags};
|
||||||
///
|
///
|
||||||
/// To implement this conveniently, use the derive macro located in
|
/// To implement this conveniently, use the derive macro located in
|
||||||
/// `rustc_macros`.
|
/// `rustc_macros`.
|
||||||
pub trait TypeVisitable<I: Interner>: fmt::Debug + Clone {
|
pub trait TypeVisitable<I: Interner>: fmt::Debug {
|
||||||
/// The entry point for visiting. To visit a value `t` with a visitor `v`
|
/// The entry point for visiting. To visit a value `t` with a visitor `v`
|
||||||
/// call: `t.visit_with(v)`.
|
/// call: `t.visit_with(v)`.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue