[
https://issues.apache.org/jira/browse/THRIFT-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Connor Gorman updated THRIFT-3700:
----------------------------------
Description:
Template:
{code}
struct TaskQuery {
4: optional set<string> taskIds
}
{code}
renders in Golang as :
{code}
TaskIds map[string]bool `thrift:"taskIds,4" json:"taskIds,omitempty"`
{code}
In Golang, the default value for a map is simply an empty map and not nil, but
the optional check
{code}
func (p *TaskQuery) IsSetTaskIds() bool {
return p.TaskIds != nil
}
{code}
checks against nil instead if an empty map
was:
Template:
{code}
struct TaskQuery {
4: optional set<string> taskIds
}
{code}
renders in Golang as :
{code}
TaskIds map[string]bool `thrift:"taskIds,4" json:"taskIds,omitempty"`
{code}
In Golang, the default value for a map is simply an empty map and not nil, but
the optional check
{code}
func (p *TaskQuery) IsSetTaskIds() bool {
return p.TaskIds != nil
}
{code}
checks against nil
> Go Map has wrong default value when optional
> --------------------------------------------
>
> Key: THRIFT-3700
> URL: https://issues.apache.org/jira/browse/THRIFT-3700
> Project: Thrift
> Issue Type: Bug
> Components: Go - Compiler
> Affects Versions: 0.9.3
> Reporter: Connor Gorman
>
> Template:
> {code}
> struct TaskQuery {
> 4: optional set<string> taskIds
> }
> {code}
> renders in Golang as :
> {code}
> TaskIds map[string]bool `thrift:"taskIds,4" json:"taskIds,omitempty"`
> {code}
> In Golang, the default value for a map is simply an empty map and not nil,
> but the optional check
> {code}
> func (p *TaskQuery) IsSetTaskIds() bool {
> return p.TaskIds != nil
> }
> {code}
> checks against nil instead if an empty map
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)