@@ -52,25 +52,38 @@ public bool WrapConsoleReadLineGetBool()
5252 return s == "hello" ;
5353 }
5454
55- public class MyConsoleReader
55+ public abstract class ValueReader
5656 {
57- // source=Sources;NewSources+MyConsoleReader;false;ToString;();;ReturnValue;local;df-generated
58- // neutral=Sources;NewSources+MyConsoleReader;ToString;();summary;df-generated
59- public override string ToString ( )
57+ // neutral=Sources;NewSources+ValueReader;GetValue;();summary;df-generated
58+ public abstract string GetValue ( ) ;
59+ }
60+
61+ public class MyConsoleReader : ValueReader
62+ {
63+ // neutral=Sources;NewSources+MyConsoleReader;GetValue;();summary;df-generated
64+ public override string GetValue ( )
6065 {
6166 return Console . ReadLine ( ) ;
6267 }
6368 }
6469
70+ public class MyOtherReader : ValueReader
71+ {
72+ // neutral=Sources;NewSources+MyOtherReader;GetValue;();summary;df-generated
73+ public override string GetValue ( )
74+ {
75+ return "" ;
76+ }
77+ }
6578
66- public class MyContainer < T >
79+ public class MyContainer < T > where T : ValueReader
6780 {
6881 public T Value { get ; set ; }
6982
70- // summary =Sources;NewSources+MyContainer<T>;false; Read;();;Argument[this];ReturnValue;taint ;df-generated
83+ // neutral =Sources;NewSources+MyContainer<T>;Read;();summary ;df-generated
7184 public string Read ( )
7285 {
73- return Value . ToString ( ) ;
86+ return Value . GetValue ( ) ;
7487 }
7588 }
7689
@@ -97,21 +110,38 @@ public abstract class DataReader
97110
98111 public class DataReaderKind1 : DataReader
99112 {
100- // source=Sources;NewSources+DataReaderKind1;true;Read;();;ReturnValue;source-kind-1;df-generated
101113 // neutral=Sources;NewSources+DataReaderKind1;Read;();summary;df-generated
102114 public override string Read ( )
103115 {
104116 return Source1 ( ) ;
105117 }
106118 }
107119
108- public class DataReaderKind2 : DataReader
120+ public sealed class DataReaderKind2 : DataReader
109121 {
110- // source=Sources;NewSources+DataReaderKind2;true;Read;();;ReturnValue;source-kind-2;df-generated
111122 // neutral=Sources;NewSources+DataReaderKind2;Read;();summary;df-generated
112123 public override string Read ( )
113124 {
114125 return Source2 ( ) ;
115126 }
116127 }
128+
129+ public class C1
130+ {
131+ // neutral=Sources;NewSources+C1;ToString;();summary;df-generated
132+ public override string ToString ( )
133+ {
134+ return Source1 ( ) ;
135+ }
136+ }
137+
138+ public sealed class C2
139+ {
140+ // neutral=Sources;NewSources+C2;ToString;();summary;df-generated
141+ public override string ToString ( )
142+ {
143+ return Source1 ( ) ;
144+ }
145+ }
146+
117147}
0 commit comments