You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
When such an alias name was used to define an embedded field, we handled that case gracefully via the code using: tf.info.Uses[node].(*types.TypeName) Unfortunately, when the same field name was used elsewhere, such as a composite literal, tf.Info.Uses gave us a *types.Var, not a *types.TypeName, meaning we could no longer tell if this was an alias, or what it pointed to. Thus, we failed to obfuscate the name properly in the added test case: > garble build [stderr] # test/main/sub xxWZf66u.go:36: unknown field 'foreignAlias' in struct literal of type smhWelwn It doesn't seem like any of the go/types APIs allows us to obtain the *types.TypeName directly in this scenario. Thus, use a trick that we used before: after typechecking, but before obfuscating, record all embedded struct field *types.Var which are aliases via a map, where the value holds the *types.TypeName for the alias. Updates #349. |
4 years ago | |
---|---|---|
.. | ||
asm.txt | 4 years ago | |
basic.txt | 4 years ago | |
cgo.txt | 4 years ago | |
crossbuild.txt | 4 years ago | |
debugdir.txt | 4 years ago | |
embed.txt | 4 years ago | |
goprivate.txt | 4 years ago | |
goversion.txt | 4 years ago | |
help.txt | 4 years ago | |
implement.txt | 4 years ago | |
imports.txt | 4 years ago | |
init.txt | 4 years ago | |
ldflags.txt | 4 years ago | |
linkname.txt | 4 years ago | |
literals.txt | 4 years ago | |
modinfo.txt | 4 years ago | |
plugin.txt | 4 years ago | |
position.txt | 4 years ago | |
reflect.txt | 4 years ago | |
reverse.txt | 4 years ago | |
seed.txt | 4 years ago | |
syntax.txt | 4 years ago | |
test.txt | 4 years ago | |
tiny.txt | 4 years ago |