This whole block is quite wrong. It should always resolve to an array; here, sometimes it resolves to `top_stmt`, sometimes to `error`, sometimes to `s(:compstmt)`