contract c { struct S { uint x; } mapping(S => uint) data; } // ---- // TypeError: (47-48): Only elementary types, contract types or enums are allowed as mapping keys.