pragma abicoder               v2;
contract C {
    struct S {
        uint a;
        function() external returns (S memory) sub;
    }
    function f() public pure returns (S memory) {
    }
}
// ----
