You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by br...@apache.org on 2009/11/09 16:55:38 UTC
svn commit: r834119 - in /incubator/thrift/trunk:
compiler/cpp/src/generate/t_java_generator.cc lib/java/build.xml
test/DebugProtoTest.thrift
Author: bryanduxbury
Date: Mon Nov 9 15:55:22 2009
New Revision: 834119
URL: http://svn.apache.org/viewvc?rev=834119&view=rev
Log:
THRIFT-565. java: Structs containing typedefs for incomparable objects will be considered comparable
This patch causes the compiler to fully unwrap typedefs when determining comparability.
Modified:
incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
incubator/thrift/trunk/lib/java/build.xml
incubator/thrift/trunk/test/DebugProtoTest.thrift
Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=834119&r1=834118&r2=834119&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc (original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Mon Nov 9 15:55:22 2009
@@ -3523,7 +3523,7 @@
vector<t_field*>::const_iterator m_iter;
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
- if (!is_comparable((*m_iter)->get_type())) {
+ if (!is_comparable(get_true_type((*m_iter)->get_type()))) {
return false;
}
}
@@ -3533,7 +3533,7 @@
bool t_java_generator::is_comparable(t_type* type) {
if (type->is_container()) {
if (type->is_list()) {
- return is_comparable(((t_list*)type)->get_elem_type());
+ return is_comparable(get_true_type(((t_list*)type)->get_elem_type()));
} else {
return false;
}
@@ -3549,11 +3549,11 @@
vector<t_field*>::const_iterator m_iter;
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
- if (!type_can_be_null((*m_iter)->get_type())) {
+ if (!type_can_be_null(get_true_type((*m_iter)->get_type()))) {
return true;
}
}
- return false;
+ return false;
}
THRIFT_REGISTER_GENERATOR(java, "Java",
Modified: incubator/thrift/trunk/lib/java/build.xml
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/build.xml?rev=834119&r1=834118&r2=834119&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/build.xml (original)
+++ incubator/thrift/trunk/lib/java/build.xml Mon Nov 9 15:55:22 2009
@@ -187,16 +187,16 @@
</target>
<target name="generate">
- <exec executable="../../compiler/cpp/thrift">
+ <exec executable="../../compiler/cpp/thrift" failonerror="true">
<arg line="--gen java:hashcode ${test.thrift.home}/ThriftTest.thrift" />
</exec>
- <exec executable="../../compiler/cpp/thrift">
+ <exec executable="../../compiler/cpp/thrift" failonerror="true">
<arg line="--gen java:hashcode ${test.thrift.home}/DebugProtoTest.thrift" />
</exec>
- <exec executable="../../compiler/cpp/thrift">
+ <exec executable="../../compiler/cpp/thrift" failonerror="true">
<arg line="--gen java:hashcode ${test.thrift.home}/OptionalRequiredTest.thrift" />
</exec>
- <exec executable="../../compiler/cpp/thrift">
+ <exec executable="../../compiler/cpp/thrift" failonerror="true">
<arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift" />
</exec>
</target>
Modified: incubator/thrift/trunk/test/DebugProtoTest.thrift
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/test/DebugProtoTest.thrift?rev=834119&r1=834118&r2=834119&view=diff
==============================================================================
--- incubator/thrift/trunk/test/DebugProtoTest.thrift (original)
+++ incubator/thrift/trunk/test/DebugProtoTest.thrift Mon Nov 9 15:55:22 2009
@@ -271,4 +271,10 @@
1: i32 blah;
2: i32 blah2;
3: Backwards bw;
+}
+
+typedef map<i32,i32> SomeMap
+
+struct StructWithASomemap {
+ 1: required SomeMap somemap_field;
}
\ No newline at end of file