error[E0746]: return type cannot have an unboxed trait object
  --> $DIR/issue-18107.rs:4:5
   |
LL |     dyn AbstractRenderer
   |     ^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
help: use some type `T` that is `T: Sized` as the return type if all return paths have the same type
   |
LL |     T
   |
help: use `impl AbstractRenderer` as the return type if all return paths have the same type but you want to expose only the trait in the signature
   |
LL |     impl AbstractRenderer
   |
help: use a boxed trait object if all return paths implement trait `AbstractRenderer`
   |
LL |     Box<dyn AbstractRenderer>
   |

error: aborting due to previous error

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