181b81b4a4
Former-commit-id: cf92446697332992ec36726e78eb8703e1f259d7
41 lines
478 B
C#
41 lines
478 B
C#
using System;
|
|
|
|
struct S
|
|
{
|
|
}
|
|
|
|
class C
|
|
{
|
|
public static int ConversionCalled;
|
|
|
|
public static implicit operator S (C c)
|
|
{
|
|
++ConversionCalled;
|
|
return new S ();
|
|
}
|
|
}
|
|
|
|
class Program
|
|
{
|
|
static C field;
|
|
|
|
static int Main ()
|
|
{
|
|
C c = new C ();
|
|
var x = c ?? new S ();
|
|
|
|
if (C.ConversionCalled != 1)
|
|
return 1;
|
|
|
|
c = null;
|
|
x = c ?? new S ();
|
|
if (C.ConversionCalled != 1)
|
|
return 2;
|
|
|
|
x = field ?? new S ();
|
|
if (C.ConversionCalled != 1)
|
|
return 3;
|
|
|
|
return 0;
|
|
}
|
|
} |