namespace rdar12240916 {
struct S2 {
S2(const S2&);
S2();
};
struct S { S x; S2 y;
};
S foo() {
S s;
return s;
}
struct S3;
struct S4 {
S3 x; S2 y;
};
struct S3 {
S4 x;
S2 y;
};
S4 foo2() {
S4 s;
return s;
}
}
namespace rdar12542261 {
template <class _Tp>
struct check_complete
{
static_assert(sizeof(_Tp) > 0, "Type must be complete.");
};
template<class _Rp>
class function {
public:
template<class _Fp>
function(_Fp, typename check_complete<_Fp>::type* = 0); };
void foobar()
{
auto LeftCanvas = new Canvas(); function<void()> m_OnChange = [&, LeftCanvas]() { }; }
}