error[E0277]: the size for values of type `(dyn Fn(&'a Something) -> Result<(), ()> + Send + Sync + 'a)` cannot be known at compilation time
  --> $DIR/issue-91801.rs:8:77
   |
LL | fn or<'a>(first: &'static Validator<'a>, second: &'static Validator<'a>) -> Validator<'a> {
   |                                                                             ^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `(dyn Fn(&'a Something) -> Result<(), ()> + Send + Sync + 'a)`
note: this type alias is unsized
  --> $DIR/issue-91801.rs:3:1
   |
LL | type Validator<'a> = dyn 'a + Send + Sync + Fn(&'a Something) -> Result<(), ()>;
   | ^^^^^^^^^^^^^^^^^^
   = note: the return type of a function must have a statically known size
help: consider boxing the return type, and wrapping all of the returned values in `Box::new`
   |
LL | fn or<'a>(first: &'static Validator<'a>, second: &'static Validator<'a>) -> Box<Validator<'a>> {
   |                                                                             ++++             +

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0277`.
