compiler: resolve importing ambiguity for more complex function calls

Tweak the exporter for inlinable function bodies to work around a
problem with importing of function calls whose function expressions
are not simple function names. In the bug in question, the function
body exporter was writing out a function call of the form

       (*(*FuncTyp)(var))(arg)

which produced an export data representation of

       *$convert(<type 5>, var)(x)

which is hard to parse unambiguously. Fix: change the export data
emitter to introduce parens around the function expression for more
complex calls.

Testcase for this bug is in CL 197217.

Fixes golang/go#34503.

Change-Id: I54bb01b261c54770751fb150d54aa64765b94f09
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197122
Reviewed-by: Ian Lance Taylor <iant@golang.org>
1 file changed