Issue ID: 16504
Summary: `dup` can't use storage calss `scope` for its
parameter in general
Currently `scope` is documented  as
> references in the parameter cannot be escaped
and `dup` is called for unrestricted set of types so type's postblit can assign
references from the parameter to global variable thus violating `scope` storage
class assumptions as there is no such restrictions for postblits.
This issues is cause by druntime pull #1637 .