diff options
author | Jens Geyer <jensg@apache.org> | 2022-09-10 14:30:15 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2022-09-10 23:17:47 +0200 |
commit | 154d1548a8e75df49f9958845dd98b13aa2258ec (patch) | |
tree | 7f3984b66f63eafb2a7ba92b68ebb65779e1dd08 /test | |
parent | c96c044cf85e5e0b89451b9f2a06e2fd5b901f72 (diff) | |
download | thrift-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.thrift | 14 | ||||
-rw-r--r-- | test/v0.16/NameConflictTest.thrift | 124 |
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 |