@@ -52,25 +52,38 @@ public bool WrapConsoleReadLineGetBool()
52
52
return s == "hello" ;
53
53
}
54
54
55
- public class MyConsoleReader
55
+ public abstract class ValueReader
56
56
{
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 ( )
60
65
{
61
66
return Console . ReadLine ( ) ;
62
67
}
63
68
}
64
69
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
+ }
65
78
66
- public class MyContainer < T >
79
+ public class MyContainer < T > where T : ValueReader
67
80
{
68
81
public T Value { get ; set ; }
69
82
70
- // summary =Sources;NewSources+MyContainer<T>;false; Read;();;Argument[this];ReturnValue;taint ;df-generated
83
+ // neutral =Sources;NewSources+MyContainer<T>;Read;();summary ;df-generated
71
84
public string Read ( )
72
85
{
73
- return Value . ToString ( ) ;
86
+ return Value . GetValue ( ) ;
74
87
}
75
88
}
76
89
@@ -97,21 +110,38 @@ public abstract class DataReader
97
110
98
111
public class DataReaderKind1 : DataReader
99
112
{
100
- // source=Sources;NewSources+DataReaderKind1;true;Read;();;ReturnValue;source-kind-1;df-generated
101
113
// neutral=Sources;NewSources+DataReaderKind1;Read;();summary;df-generated
102
114
public override string Read ( )
103
115
{
104
116
return Source1 ( ) ;
105
117
}
106
118
}
107
119
108
- public class DataReaderKind2 : DataReader
120
+ public sealed class DataReaderKind2 : DataReader
109
121
{
110
- // source=Sources;NewSources+DataReaderKind2;true;Read;();;ReturnValue;source-kind-2;df-generated
111
122
// neutral=Sources;NewSources+DataReaderKind2;Read;();summary;df-generated
112
123
public override string Read ( )
113
124
{
114
125
return Source2 ( ) ;
115
126
}
116
127
}
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
+
117
147
}
0 commit comments