To fix #894, a defensive copy is required to an `in` parameter of a non-`readonly` struct type to invoke a member. C# 8 adds `readonly` members to non-readonly structs. A defensive copy isn't required to invoke a `readonly` member. See #927 (desccription)