@@ -138,6 +138,152 @@ End Sub
138138End Class" ) ;
139139 }
140140
141+
142+ [ Fact ]
143+ public void OperatorOverloads ( )
144+ {
145+ // Note a couple map to the same thing in C# so occasionally the result won't compile. The user can manually decide what to do in such scenarios.
146+ TestConversionCSharpToVisualBasic ( @"public class AcmeClass
147+ {
148+ public static AcmeClass operator +(int i, AcmeClass ac)
149+ {
150+ return ac;
151+ }
152+ public static AcmeClass operator +(string s, AcmeClass ac)
153+ {
154+ return ac;
155+ }
156+ public static AcmeClass operator -(int i, AcmeClass ac)
157+ {
158+ return ac;
159+ }
160+ public static AcmeClass operator !(AcmeClass ac)
161+ {
162+ return ac;
163+ }
164+ public static AcmeClass operator *(int i, AcmeClass ac)
165+ {
166+ return ac;
167+ }
168+ public static AcmeClass operator /(int i, AcmeClass ac)
169+ {
170+ return ac;
171+ }
172+ public static AcmeClass operator %(string s, AcmeClass ac)
173+ {
174+ return ac;
175+ }
176+ public static AcmeClass operator <<(AcmeClass ac, int i)
177+ {
178+ return ac;
179+ }
180+ public static AcmeClass operator >>(AcmeClass ac, int i)
181+ {
182+ return ac;
183+ }
184+ public static AcmeClass operator ==(string s, AcmeClass ac)
185+ {
186+ return ac;
187+ }
188+ public static AcmeClass operator !=(string s, AcmeClass ac)
189+ {
190+ return ac;
191+ }
192+ public static AcmeClass operator <(string s, AcmeClass ac)
193+ {
194+ return ac;
195+ }
196+ public static AcmeClass operator >(string s, AcmeClass ac)
197+ {
198+ return ac;
199+ }
200+ public static AcmeClass operator <=(string s, AcmeClass ac)
201+ {
202+ return ac;
203+ }
204+ public static AcmeClass operator >=(string s, AcmeClass ac)
205+ {
206+ return ac;
207+ }
208+ public static AcmeClass operator &(string s, AcmeClass ac)
209+ {
210+ return ac;
211+ }
212+ public static AcmeClass operator |(string s, AcmeClass ac)
213+ {
214+ return ac;
215+ }
216+ }" , @"Public Class AcmeClass
217+ Public Shared Operator +(ByVal i As Integer, ByVal ac As AcmeClass) As AcmeClass
218+ Return ac
219+ End Operator
220+
221+ Public Shared Operator &(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
222+ Return ac
223+ End Operator
224+
225+ Public Shared Operator -(ByVal i As Integer, ByVal ac As AcmeClass) As AcmeClass
226+ Return ac
227+ End Operator
228+
229+ Public Shared Operator Not(ByVal ac As AcmeClass) As AcmeClass
230+ Return ac
231+ End Operator
232+
233+ Public Shared Operator *(ByVal i As Integer, ByVal ac As AcmeClass) As AcmeClass
234+ Return ac
235+ End Operator
236+
237+ Public Shared Operator /(ByVal i As Integer, ByVal ac As AcmeClass) As AcmeClass
238+ Return ac
239+ End Operator
240+
241+ Public Shared Operator Mod(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
242+ Return ac
243+ End Operator
244+
245+ Public Shared Operator <<(ByVal ac As AcmeClass, ByVal i As Integer) As AcmeClass
246+ Return ac
247+ End Operator
248+
249+ Public Shared Operator >>(ByVal ac As AcmeClass, ByVal i As Integer) As AcmeClass
250+ Return ac
251+ End Operator
252+
253+ Public Shared Operator =(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
254+ Return ac
255+ End Operator
256+
257+ Public Shared Operator <>(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
258+ Return ac
259+ End Operator
260+
261+ Public Shared Operator <(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
262+ Return ac
263+ End Operator
264+
265+ Public Shared Operator >(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
266+ Return ac
267+ End Operator
268+
269+ Public Shared Operator <=(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
270+ Return ac
271+ End Operator
272+
273+ Public Shared Operator >=(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
274+ Return ac
275+ End Operator
276+
277+ Public Shared Operator And(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
278+ Return ac
279+ End Operator
280+
281+ Public Shared Operator Or(ByVal s As String, ByVal ac As AcmeClass) As AcmeClass
282+ Return ac
283+ End Operator
284+ End Class" ) ;
285+ }
286+
141287 [ Fact ]
142288 public void TestSealedMethod ( )
143289 {
0 commit comments