summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2022-09-10 14:30:15 +0200
committerJens Geyer <jensg@apache.org>2022-09-10 23:17:47 +0200
commit154d1548a8e75df49f9958845dd98b13aa2258ec (patch)
tree7f3984b66f63eafb2a7ba92b68ebb65779e1dd08 /test
parentc96c044cf85e5e0b89451b9f2a06e2fd5b901f72 (diff)
downloadthrift-154d1548a8e75df49f9958845dd98b13aa2258ec.tar.gz
THRIFT-5626 Parser should not confuse data types and field names
Patch: Jens Geyer
Diffstat (limited to 'test')
-rw-r--r--test/NameConflictTest.thrift14
-rw-r--r--test/v0.16/NameConflictTest.thrift124
2 files changed, 138 insertions, 0 deletions
diff --git a/test/NameConflictTest.thrift b/test/NameConflictTest.thrift
index d3efb474c..ea51b507c 100644
--- a/test/NameConflictTest.thrift
+++ b/test/NameConflictTest.thrift
@@ -97,6 +97,20 @@ exception Problem_ {
2: bool Problem
}
+struct Thrift5626 {
+ 1: i8 i8
+ 2: i16 i16
+ 3: i32 i32
+ 4: i64 i64
+ 5: uuid uuid
+ 6: string string
+ 7: binary binary
+ 8: bool bool
+ 9: byte byte
+ 10: list<string> list
+ 11: set<string> set
+ 12: map<string,string> map
+}
service extern {
delegate event(1: partial get)
diff --git a/test/v0.16/NameConflictTest.thrift b/test/v0.16/NameConflictTest.thrift
new file mode 100644
index 000000000..7130d8a40
--- /dev/null
+++ b/test/v0.16/NameConflictTest.thrift
@@ -0,0 +1,124 @@
+// Naming testcases, sepcifically for these tickets (but not limited to them)
+// THRIFT-2508 Uncompileable C# code due to language keywords in IDL
+// THRIFT-2557 error CS0542 member names cannot be the same as their enclosing type
+
+
+struct using {
+ 1: double single
+ 2: double integer
+}
+
+struct delegate {
+ 1: string partial
+ 2: delegate delegate
+}
+
+struct get {
+ 1: bool sbyte
+}
+
+struct partial {
+ 1: using using
+ 2: bool read
+ 3: bool write
+}
+
+enum Maybe {
+ JUST = 1,
+ TRUE = 2,
+ FALSE = 3
+}
+
+enum Either {
+ LEFT = 1,
+ RIGHT = 2
+}
+
+struct foldr {
+ 1: string id
+}
+
+struct of {
+ 1: string let
+ 2: string where
+}
+
+struct ofOf {
+ 1: of Of
+}
+
+
+struct ClassAndProp {
+ 1: bool ClassAndProp
+ 2: bool ClassAndProp_
+ 3: bool ClassAndProp__
+ 4: bool ClassAndProper
+}
+
+struct second_chance {
+ 1: bool SECOND_CHANCE
+ 2: bool SECOND_CHANCE_
+ 3: bool SECOND_CHANCE__
+ 4: bool SECOND_CHANCES
+}
+
+struct NOW_EAT_THIS {
+ 1: bool now_eat_this
+ 2: bool now_eat_this_
+ 3: bool now_eat_this__
+ 4: bool now_eat_this_and_this
+}
+
+struct TheEdgeCase {
+ 1: bool theEdgeCase
+ 2: bool theEdgeCase_
+ 3: bool theEdgeCase__
+ 4: bool TheEdgeCase
+ 5: bool TheEdgeCase_
+ 6: bool TheEdgeCase__
+}
+
+struct Tricky_ {
+ 1: bool tricky
+ 2: bool Tricky
+}
+
+struct Nested {
+ 1: ClassAndProp ClassAndProp
+ 2: second_chance second_chance
+ 3: NOW_EAT_THIS NOW_EAT_THIS
+ 4: TheEdgeCase TheEdgeCase
+ 5: Tricky_ Tricky_
+ 6: Nested Nested
+}
+
+exception Problem_ {
+ 1: bool problem
+ 2: bool Problem
+}
+
+struct Thrift5626 {
+ 1: i8 i8
+ 2: i16 i16
+ 3: i32 i32
+ 4: i64 i64
+ //5: uuid uuid
+ 6: string string
+ 7: binary binary
+ 8: bool bool
+ 9: byte byte
+ 10: list<string> list
+ 11: set<string> set
+ 12: map<string,string> map
+}
+
+service extern {
+ delegate event(1: partial get)
+ void Foo(1: Nested Foo_args) throws (1: Problem_ Foo_result)
+}
+
+service qualified {
+ Maybe maybe(1: Maybe foldr)
+ Either either(1: foldr of)
+}
+// eof