@@ -701,3 +701,140 @@ public NestedFieldFlow ReverseFields()
701
701
return new NestedFieldFlow ( ) { FieldA = x } ;
702
702
}
703
703
}
704
+
705
+ public class SyntheticFields
706
+ {
707
+ private string value1 ;
708
+ private string value2 ;
709
+ private string value3 ;
710
+
711
+ private string chainBegin ;
712
+ private string chainEnd ;
713
+
714
+ private string brokenChainBegin ;
715
+ private string brokenChainEnd ;
716
+
717
+ // summary=Models;SyntheticFields;false;SyntheticFields;(System.String);;Argument[0];Argument[this];taint;df-generated
718
+ // contentbased-summary=Models;SyntheticFields;false;SyntheticFields;(System.String);;Argument[0];Argument[this].SyntheticField[Models.SyntheticFields.value1];value;df-generated
719
+ public SyntheticFields ( string v1 )
720
+ {
721
+ value1 = v1 ;
722
+ }
723
+
724
+ // summary=Models;SyntheticFields;false;GetValue1;();;Argument[this];ReturnValue;taint;df-generated
725
+ // contentbased-summary=Models;SyntheticFields;false;GetValue1;();;Argument[this].SyntheticField[Models.SyntheticFields.value1];ReturnValue;value;df-generated
726
+ public string GetValue1 ( )
727
+ {
728
+ return value1 ;
729
+ }
730
+
731
+ // summary=Models;SyntheticFields;false;GetValue2;();;Argument[this];ReturnValue;taint;df-generated
732
+ // contentbased-summary=Models;SyntheticFields;false;GetValue2;();;Argument[this].SyntheticField[Models.SyntheticFields.value2];ReturnValue;value;df-generated
733
+ public string GetValue2 ( )
734
+ {
735
+ return value2 ;
736
+ }
737
+
738
+ // summary=Models;SyntheticFields;false;SetValue2;(System.String);;Argument[0];Argument[this];taint;df-generated
739
+ // contentbased-summary=Models;SyntheticFields;false;SetValue2;(System.String);;Argument[0];Argument[this].SyntheticField[Models.SyntheticFields.value2];value;df-generated
740
+ public void SetValue2 ( string v2 )
741
+ {
742
+ value2 = v2 ;
743
+ }
744
+
745
+ // summary=Models;SyntheticFields;false;SetValue3;(System.String);;Argument[0];Argument[this];taint;df-generated
746
+ // No content based summary as value3 is a dead synthetic field.
747
+ public void SetValue3 ( string v3 )
748
+ {
749
+ value3 = v3 ;
750
+ }
751
+
752
+ // summary=Models;SyntheticFields;false;SetChainBegin;(System.String);;Argument[0];Argument[this];taint;df-generated
753
+ // contentbased-summary=Models;SyntheticFields;false;SetChainBegin;(System.String);;Argument[0];Argument[this].SyntheticField[Models.SyntheticFields.chainBegin];value;df-generated
754
+ public void SetChainBegin ( string v )
755
+ {
756
+ chainBegin = v ;
757
+ }
758
+
759
+ // neutral=Models;SyntheticFields;CopyChainValue;();summary;df-generated
760
+ // contentbased-summary=Models;SyntheticFields;false;CopyChainValue;();;Argument[this].SyntheticField[Models.SyntheticFields.chainBegin];Argument[this].SyntheticField[Models.SyntheticFields.chainEnd];value;df-generated
761
+ public void CopyChainValue ( )
762
+ {
763
+ chainEnd = chainBegin ;
764
+ }
765
+
766
+ // summary=Models;SyntheticFields;false;GetChainEnd;();;Argument[this];ReturnValue;taint;df-generated
767
+ // contentbased-summary=Models;SyntheticFields;false;GetChainEnd;();;Argument[this].SyntheticField[Models.SyntheticFields.chainEnd];ReturnValue;value;df-generated
768
+ public string GetChainEnd ( )
769
+ {
770
+ return chainEnd ;
771
+ }
772
+
773
+ // summary=Models;SyntheticFields;false;SetBrokenChainBegin;(System.String);;Argument[0];Argument[this];taint;df-generated
774
+ // No content based summary as brokenChainBegin is a dead synthetic field.
775
+ public void SetBrokenChainBegin ( string v )
776
+ {
777
+ brokenChainBegin = v ;
778
+ }
779
+
780
+ // summary=Models;SyntheticFields;false;GetBrokenChainEnd;();;Argument[this];ReturnValue;taint;df-generated
781
+ // No content based summary as brokenChainEnd is a dead synthetic field.
782
+ public string GetBrokenChainEnd ( )
783
+ {
784
+ return brokenChainEnd ;
785
+ }
786
+
787
+ public class InnerSyntheticFields
788
+ {
789
+ private readonly string value ;
790
+
791
+ // summary=Models;SyntheticFields+InnerSyntheticFields;false;InnerSyntheticFields;(System.String);;Argument[0];Argument[this];taint;df-generated
792
+ // contentbased-summary=Models;SyntheticFields+InnerSyntheticFields;false;InnerSyntheticFields;(System.String);;Argument[0];Argument[this].SyntheticField[Models.SyntheticFields+InnerSyntheticFields.value];value;df-generated
793
+ public InnerSyntheticFields ( string v )
794
+ {
795
+ value = v ;
796
+ }
797
+
798
+ // summary=Models;SyntheticFields+InnerSyntheticFields;false;GetValue;();;Argument[this];ReturnValue;taint;df-generated
799
+ // contentbased-summary=Models;SyntheticFields+InnerSyntheticFields;false;GetValue;();;Argument[this].SyntheticField[Models.SyntheticFields+InnerSyntheticFields.value];ReturnValue;value;df-generated
800
+ public string GetValue ( )
801
+ {
802
+ return value ;
803
+ }
804
+ }
805
+
806
+ // summary=Models;SyntheticFields;false;MakeInner;(System.String);;Argument[0];ReturnValue;taint;df-generated
807
+ // contentbased-summary=Models;SyntheticFields;false;MakeInner;(System.String);;Argument[0];ReturnValue.SyntheticField[Models.SyntheticFields+InnerSyntheticFields.value];value;df-generated
808
+ public InnerSyntheticFields MakeInner ( string v )
809
+ {
810
+ return new InnerSyntheticFields ( v ) ;
811
+ }
812
+ }
813
+
814
+ public class SyntheticProperties
815
+ {
816
+ private string Prop1 { get ; set ; }
817
+
818
+ private string Prop2 { get ; set ; }
819
+
820
+ // summary=Models;SyntheticProperties;false;SyntheticProperties;(System.String);;Argument[0];Argument[this];taint;df-generated
821
+ // contentbased-summary=Models;SyntheticProperties;false;SyntheticProperties;(System.String);;Argument[0];Argument[this].SyntheticField[Models.SyntheticProperties.Prop1];value;df-generated
822
+ public SyntheticProperties ( string v1 )
823
+ {
824
+ Prop1 = v1 ;
825
+ }
826
+
827
+ // summary=Models;SyntheticProperties;false;GetProp1;();;Argument[this];ReturnValue;taint;df-generated
828
+ // contentbased-summary=Models;SyntheticProperties;false;GetProp1;();;Argument[this].SyntheticField[Models.SyntheticProperties.Prop1];ReturnValue;value;df-generated
829
+ public string GetProp1 ( )
830
+ {
831
+ return Prop1 ;
832
+ }
833
+
834
+ // summary=Models;SyntheticProperties;false;SetProp2;(System.String);;Argument[0];Argument[this];taint;df-generated
835
+ // No content based summary as Prop2 is a dead synthetic field.
836
+ public void SetProp2 ( string v )
837
+ {
838
+ Prop2 = v ;
839
+ }
840
+ }
0 commit comments