[
https://issues.apache.org/jira/browse/THRIFT-2009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13719495#comment-13719495
]
Remo Hertig commented on THRIFT-2009:
-------------------------------------
this happens in Go because in the other languages we don't use a
NewStructName() identifier to create a new object.
But go does not allow two types with the same identifier: {quote} Given a set
of identifiers, an identifier is called unique if it is different from every
other in the set. Two identifiers are different if they are spelled
differently, or if they appear in different packages and are not exported.
Otherwise, they are the same. {quote}
a solution would be to rename the NewStruct function to something else like
CreateStruct
> Go redeclaration error
> ----------------------
>
> Key: THRIFT-2009
> URL: https://issues.apache.org/jira/browse/THRIFT-2009
> Project: Thrift
> Issue Type: Bug
> Components: Go - Compiler
> Reporter: Jens Geyer
>
> The following IDL code works perfectly with other languages:
> {code}
> namespace * Test
> struct Project {
> 1 : required string projectID
> }
> struct NewProject {
> 1 : required string name
> }
> service Sample {
> Project CreateNewProject( 1: NewProject project)
> }
> {code}
> The result I get here is
> {quote}
> gen-go\Test\Sample.go:455: missing argument to conversion to NewProject:
> NewProject()
> gen-go\Test\ttypes.go:191: NewProject redeclared in this block
> previous declaration at gen-go\Test\ttypes.go:25
> {quote}
> Seems as if the generated NewProject() method conflicts with the struct name.
> As my Go knowledge is somewhat limited, I'm not sure about whether or not
> this issue blocks the acceptance of THRIFT-1980, so I created a new ticket.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira