THRIFT-5261 Support for deprecated methods (via annotation)
Client: Delphi
Patch: Jens Geyer

This closes #2213
diff --git a/lib/delphi/test/keywords/ReservedIncluded.thrift b/lib/delphi/test/keywords/ReservedIncluded.thrift
index 8b47a50..1d94dd9 100644
--- a/lib/delphi/test/keywords/ReservedIncluded.thrift
+++ b/lib/delphi/test/keywords/ReservedIncluded.thrift
@@ -22,4 +22,11 @@
 
 const i32 integer = 42
 
+service deprecate_included_inner {
+  void Foo( ) ( deprecated = "This method has neither 'x' nor \"y\"" )
+  void Bar( ) ( deprecated = "Fails to deliver 中文 колбаса" )
+  void Baz( ) ( deprecated = "Need this to work with tabs (\t) or Umlauts (äöüÄÖÜß) too" )
+  void Deprecated() ( deprecated ) // no comment
+}
+
 // EOF
diff --git a/lib/delphi/test/keywords/ReservedKeywords.dpr b/lib/delphi/test/keywords/ReservedKeywords.dpr
index 1fbc8c1..3742b19 100644
--- a/lib/delphi/test/keywords/ReservedKeywords.dpr
+++ b/lib/delphi/test/keywords/ReservedKeywords.dpr
@@ -3,7 +3,7 @@
 {$APPTYPE CONSOLE}
 
 uses
-  SysUtils, System_;
+  SysUtils, System_, AnnotationTest;
 
 begin
   try
diff --git a/lib/delphi/test/keywords/ReservedKeywords.dproj b/lib/delphi/test/keywords/ReservedKeywords.dproj
index 6bd9544..cc36988 100644
--- a/lib/delphi/test/keywords/ReservedKeywords.dproj
+++ b/lib/delphi/test/keywords/ReservedKeywords.dproj
@@ -65,7 +65,9 @@
 		<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/>
 		<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/>
 		<PropertyGroup>
-			<PreBuildEvent><![CDATA[thrift -r  -gen delphi ReservedKeywords.thrift]]></PreBuildEvent>
+			<PreBuildEvent><![CDATA[if exist gen-delphi del gen-delphi\* /s /q
+thrift -r  -gen delphi ReservedKeywords.thrift
+thrift -r  -gen delphi ..\..\..\..\test\AnnotationTest.thrift]]></PreBuildEvent>
 		</PropertyGroup>
 		<ProjectExtensions>
 			<Borland.Personality>Delphi.Personality.12</Borland.Personality>
diff --git a/lib/delphi/test/keywords/ReservedKeywords.thrift b/lib/delphi/test/keywords/ReservedKeywords.thrift
index 2f49d74..08a4d75 100644
--- a/lib/delphi/test/keywords/ReservedKeywords.thrift
+++ b/lib/delphi/test/keywords/ReservedKeywords.thrift
@@ -134,5 +134,9 @@
   4 : optional Thrift4554_Enum Foo
 }
 
+service deprecate_included_outer extends ReservedIncluded.deprecate_included_inner {
+  void FooBarBaz()
+}
+
 
 // EOF