When you have a non-inlined ufunction, UHT fails to parse the restrict keyword in its parameter list.
Note: The following compiles (notice that the only change is the use of the FORCEINLINE keyword):
The following would also compile (notice the removal the UFUNCTION() specifier):
Result: error : Missing ')' in parameter list
Expected: No error expected
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-76843 in the post.