blob: e355f2d392a12d94071176f935f3ac0a91a78d7b [file] [log] [blame]
// Test for proper handling of type lookup for conversion operator names.
// Build don't link:
// Test 1: Only at file scope
typedef int B;
struct A
{
int B;
operator B *();
};
A::operator B * ()
{
return 0;
}
// Test 2: Only at class scope
struct C
{
typedef int D;
operator D *();
};
int D;
C::operator D * ()
{
return 0;
}
// Test 3: Matching
struct E
{
typedef int F;
operator F *();
};
typedef int F;
E::operator F * ()
{
return 0;
}
// Test 4: Conflicting
struct G
{
typedef int H;
operator H *();
};
typedef double H;
G::operator H * () // ERROR - mismatch
{
return 0;
}