Descriptionexp/ssa: reimplement logic for field selection.
The previous approach desugared the ast.SelectorExpr
to make implicit field selections explicit. But:
1) it was clunky since it required allocating temporary
syntax trees.
2) it was not thread-safe since it required poking
types into the shared type map for the new ASTs.
3) the desugared syntax had no place to represent the
package lexically enclosing each implicit field
selection, so it was as if they all occurred in the
same package as the explicit field selection.
This meant unexported field names changed meaning.
This CL does what I should have done all along: just
generate the SSA instructions directly from the original
AST and the promoted field information.
Also:
- add logStack util for paired start/end log messages.
Useful for debugging crashes.
Patch Set 1 #Patch Set 2 : diff -r 365c7549ba99 https://code.google.com/p/go/ #Patch Set 3 : diff -r 365c7549ba99 https://code.google.com/p/go/ #Patch Set 4 : diff -r 365c7549ba99 https://code.google.com/p/go/ #
Total comments: 4
Patch Set 5 : diff -r 77d278b771f0 https://code.google.com/p/go/ #
MessagesTotal messages: 3
|