@@ -52,25 +52,39 @@ 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+ // source=Sources;NewSources+MyConsoleReader;true;GetValue;();;ReturnValue;local;df-generated
64+ // neutral=Sources;NewSources+MyConsoleReader;GetValue;();summary;df-generated
65+ public override string GetValue ( )
6066 {
6167 return Console . ReadLine ( ) ;
6268 }
6369 }
6470
71+ public class MyOtherReader : ValueReader
72+ {
73+ // neutral=Sources;NewSources+MyOtherReader;GetValue;();summary;df-generated
74+ public override string GetValue ( )
75+ {
76+ return "" ;
77+ }
78+ }
6579
66- public class MyContainer < T >
80+ public class MyContainer < T > where T : ValueReader
6781 {
6882 public T Value { get ; set ; }
6983
70- // summary =Sources;NewSources+MyContainer<T>;false; Read;();;Argument[this];ReturnValue;taint ;df-generated
84+ // neutral =Sources;NewSources+MyContainer<T>;Read;();summary ;df-generated
7185 public string Read ( )
7286 {
73- return Value . ToString ( ) ;
87+ return Value . GetValue ( ) ;
7488 }
7589 }
7690
@@ -105,13 +119,34 @@ public override string Read()
105119 }
106120 }
107121
108- public class DataReaderKind2 : DataReader
122+ public sealed class DataReaderKind2 : DataReader
109123 {
110- // source=Sources;NewSources+DataReaderKind2;true ;Read;();;ReturnValue;source-kind-2;df-generated
124+ // source=Sources;NewSources+DataReaderKind2;false ;Read;();;ReturnValue;source-kind-2;df-generated
111125 // neutral=Sources;NewSources+DataReaderKind2;Read;();summary;df-generated
112126 public override string Read ( )
113127 {
114128 return Source2 ( ) ;
115129 }
116130 }
131+
132+ public class C1
133+ {
134+ // source=Sources;NewSources+C1;false;ToString;();;ReturnValue;source-kind-1;df-generated
135+ // neutral=Sources;NewSources+C1;ToString;();summary;df-generated
136+ public override string ToString ( )
137+ {
138+ return Source1 ( ) ;
139+ }
140+ }
141+
142+ public sealed class C2
143+ {
144+ // source=Sources;NewSources+C2;false;ToString;();;ReturnValue;source-kind-1;df-generated
145+ // neutral=Sources;NewSources+C2;ToString;();summary;df-generated
146+ public override string ToString ( )
147+ {
148+ return Source1 ( ) ;
149+ }
150+ }
151+
117152}
0 commit comments