Skip to content
The Go programming language
Go HTML Assembly C Shell Perl
Branch: master
Clone or download

Latest commit

mvdan encoding/xml: only initialize nil struct fields when decoding
fieldInfo.value used to initialize nil anonymous struct fields if they
were encountered. This behavior is wanted when decoding, but not when
encoding. When encoding, the value should never be modified, and these
nil fields should be skipped entirely.

To fix the bug, add a bool argument to the function which tells the
code whether we are encoding or decoding.

Finally, add a couple of tests to cover the edge cases pointed out in
the original issue.

Fixes #27240.

Change-Id: Ic97ae4bfe5f2062c8518e03d1dec07c3875e18f6
Run-TryBot: Daniel Martí <>
TryBot-Result: Gobot Gobot <>
Reviewed-by: Emmanuel Odeke <>
Latest commit 8f4151e Sep 24, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github .github: add link to questions in ISSUE_TEMPLATE Jan 6, 2020
api all: remove scattered remnants of darwin/386 Apr 8, 2020
doc doc/go1.15: document no language changes May 28, 2020
lib/time lib/time, time/tzdata: update tz data to 2020a Apr 30, 2020
misc syscall/js: prepare IDs for the preset objects May 12, 2020
src encoding/xml: only initialize nil struct fields when decoding May 28, 2020
test cmd/compile: add test for issue 37246 May 14, 2020
.gitattributes build: force all Windows batch files to CRLF Mar 22, 2020
.gitignore .gitignore: ignore src/cmd/dist/dist Oct 28, 2017
AUTHORS A+C: add Prasanga Siripala (individual CLA) May 12, 2020 all: restore changes from faulty merge/revert Feb 12, 2018
CONTRIBUTORS A+C: add Prasanga Siripala (individual CLA) May 12, 2020
LICENSE doc: revert copyright date to 2009 Jun 1, 2016
PATENTS LICENSE: separate, change PATENTS text Dec 6, 2010 README: linkify some paths Jun 6, 2018 update go versions Sep 26, 2019
favicon.ico website: recreate 16px and 32px favicon Aug 25, 2016
robots.txt godoc: serve robots.txt raw Feb 18, 2011

The Go Programming Language

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Gopher image Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.

Our canonical Git repository is located at There is a mirror of the repository at

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Download and Install

Binary Distributions

Official binary distributions are available at

After downloading a binary release, visit or load doc/install.html in your web browser for installation instructions.

Install From Source

If a binary distribution is not available for your combination of operating system and architecture, visit or load doc/install-source.html in your web browser for source installation instructions.


Go is the work of thousands of contributors. We appreciate your help!

To contribute, please read the contribution guidelines:

Note that the Go project uses the issue tracker for bug reports and proposals only. See for a list of places to ask questions about the Go language.

You can’t perform that action at this time.