Thank you for your comment.

Now it avoid the assign `array[pos..pos+to_insert] = tmp[];` in runtime.
But it still uses assignments in compile time.